Vulnerabilities > CVE-2019-11339 - Out-of-bounds Read vulnerability in Ffmpeg

047910
CVSS 6.8 - MEDIUM
Attack vector
NETWORK
Attack complexity
MEDIUM
Privileges required
NONE
Confidentiality impact
PARTIAL
Integrity impact
PARTIAL
Availability impact
PARTIAL
network
ffmpeg
CWE-125
nessus

Summary

The studio profile decoder in libavcodec/mpeg4videodec.c in FFmpeg 4.0 before 4.0.4 and 4.1 before 4.1.2 allows remote attackers to cause a denial of service (out-of-array access) or possibly have unspecified other impact via crafted MPEG-4 video data.

Common Weakness Enumeration (CWE)

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Overread Buffers
    An adversary attacks a target by providing input that causes an application to read beyond the boundary of a defined buffer. This typically occurs when a value influencing where to start or stop reading is set to reflect positions outside of the valid memory location of the buffer. This type of attack may result in exposure of sensitive information, a system crash, or arbitrary code execution.

Nessus

  • NASL familySuSE Local Security Checks
    NASL idOPENSUSE-2020-24.NASL
    descriptionThis update for ffmpeg-4 fixes the following issues : ffmpeg-4 was updated to version 4.0.5, fixes boo#1133153 - CVE-2019-11339: The studio profile decoder in libavcodec/mpeg4videodec.c in FFmpeg 4.0 allowed remote attackers to cause a denial of service (out-of-array access) or possibly have unspecified. (bsc#1133153) - For other changes see /usr/share/doc/packages/libavcodec58/Changelog Update to version 4.2.1 : - Stable bug fix release, mainly codecs and format fixes. - CVE-2019-15942: Conditional jump or move depends on uninitialised value
    last seen2020-06-01
    modified2020-06-02
    plugin id132910
    published2020-01-15
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/132910
    titleopenSUSE Security Update : ffmpeg-4 (openSUSE-2020-24)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from openSUSE Security Update openSUSE-2020-24.
    #
    # The text description of this plugin is (C) SUSE LLC.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(132910);
      script_version("1.2");
      script_cvs_date("Date: 2020/01/17");
    
      script_cve_id("CVE-2017-17555", "CVE-2018-13305", "CVE-2019-11338", "CVE-2019-11339", "CVE-2019-15942");
    
      script_name(english:"openSUSE Security Update : ffmpeg-4 (openSUSE-2020-24)");
      script_summary(english:"Check for the openSUSE-2020-24 patch");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote openSUSE host is missing a security update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "This update for ffmpeg-4 fixes the following issues :
    
    ffmpeg-4 was updated to version 4.0.5, fixes boo#1133153 
    
      - CVE-2019-11339: The studio profile decoder in
        libavcodec/mpeg4videodec.c in FFmpeg 4.0 allowed remote
        attackers to cause a denial of service (out-of-array
        access) or possibly have unspecified. (bsc#1133153)
    
      - For other changes see
        /usr/share/doc/packages/libavcodec58/Changelog
    
    Update to version 4.2.1 :
    
      - Stable bug fix release, mainly codecs and format fixes.
    
      - CVE-2019-15942: Conditional jump or move depends on
        uninitialised value' issue in h2645_parse (boo#1149839)
    
    Update to FFmpeg 4.2 'Ada'
    
      - tpad filter
    
      - AV1 decoding support through libdav1d
    
      - dedot filter
    
      - chromashift and rgbashift filters
    
      - freezedetect filter
    
      - truehd_core bitstream filter
    
      - dhav demuxer
    
      - PCM-DVD encoder
    
      - GIF parser
    
      - vividas demuxer
    
      - hymt decoder
    
      - anlmdn filter
    
      - maskfun filter
    
      - hcom demuxer and decoder
    
      - ARBC decoder
    
      - libaribb24 based ARIB STD-B24 caption support (profiles
        A and C)
    
      - Support decoding of HEVC 4:4:4 content in nvdec and
        cuviddec
    
      - removed libndi-newtek
    
      - agm decoder
    
      - KUX demuxer
    
      - AV1 frame split bitstream filter
    
      - lscr decoder
    
      - lagfun filter
    
      - asoftclip filter
    
      - Support decoding of HEVC 4:4:4 content in vdpau
    
      - colorhold filter
    
      - xmedian filter
    
      - asr filter
    
      - showspatial multimedia filter
    
      - VP4 video decoder
    
      - IFV demuxer
    
      - derain filter
    
      - deesser filter
    
      - mov muxer writes tracks with unspecified language
        instead of English by default
    
      - added support for using clang to compile CUDA kernels
    
      - See /usr/share/doc/packages/ffmpeg-4/Changelog for the
        complete changelog.
    
    Update to version 4.1.4
    
      - See /usr/share/doc/packages/ffmpeg-4/Changelog for the
        complete changelog.
    
      - Enable runtime enabling for fdkaac via
        --enable-libfdk-aac-dlopen
    
    Update to version 4.1.3 :
    
      - Updates and bug fixes for codecs, filters and formats.
        [boo#1133153, boo#1133155, CVE-2019-11338,
        CVE-2019-11339]
    
    Update to version 4.1.2 :
    
      - Updates and bug fixes for codecs, filters and formats.
    
    Update to version 4.1.1 :
    
      - Various filter and codec fixes and enhancements.
    
      - configure: Add missing xlib dependency for VAAPI X11
        code.
    
      - For complete changelog, see
        /usr/share/doc/packages/ffmpeg-4/Changelog
    
      - enable AV1 support on x86_64
    
    Update ffmpeg to 4.1 :
    
      - Lots of filter updates as usual: deblock, tmix, aplify,
        fftdnoiz, aderivative, aintegral, pal75bars, pal100bars,
        adeclick, adeclip, lensfun (wrapper), colorconstancy, 1D
        LUT filter (lut1d), cue, acue, transpose_npp, amultiply,
        Block-Matching 3d (bm3d) denoising filter, acrossover
        filter, audio denoiser as afftdn filter, sinc audio
        filter source, chromahold, setparams, vibrance, xstack,
        (a)graphmonitor filter yadif_cuda filter.
    
      - AV1 parser
    
      - Support for AV1 in MP4
    
      - PCM VIDC decoder and encoder
    
      - libtensorflow backend for DNN based filters like srcnn
    
      - -- The following only enabled in third-party builds :
    
      - ATRAC9 decoder
    
      - AVS2 video decoder via libdavs2
    
      - IMM4 video decoder
    
      - Brooktree ProSumer video decoder
    
      - MatchWare Screen Capture Codec decoder
    
      - WinCam Motion Video decoder
    
      - RemotelyAnywhere Screen Capture decoder
    
      - AVS2 video encoder via libxavs2
    
      - ILBC decoder
    
      - SER demuxer
    
      - Decoding S12M timecode in H264
    
      - For complete changelog, see
        https://git.ffmpeg.org/gitweb/ffmpeg.git/shortlog/n4.1
    
    Update ffmpeg to 4.0.3 :
    
      - For complete changelog, see
        https://git.ffmpeg.org/gitweb/ffmpeg.git/shortlog/n4.0.3
    
      - CVE-2018-13305: Added a missing check for negative
        values of mqaunt variable (boo#1100345)."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1100345"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1133123"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1133153"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1133155"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.opensuse.org/show_bug.cgi?id=1149839"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://git.ffmpeg.org/gitweb/ffmpeg.git/shortlog/n4.0.3"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://git.ffmpeg.org/gitweb/ffmpeg.git/shortlog/n4.1"
      );
      script_set_attribute(
        attribute:"solution", 
        value:"Update the affected ffmpeg-4 packages."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:P");
      script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
      script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H");
      script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
      script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ffmpeg-4-debugsource");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ffmpeg-4-libavcodec-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ffmpeg-4-libavdevice-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ffmpeg-4-libavfilter-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ffmpeg-4-libavformat-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ffmpeg-4-libavresample-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ffmpeg-4-libavutil-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ffmpeg-4-libpostproc-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ffmpeg-4-libswresample-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ffmpeg-4-libswscale-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:ffmpeg-4-private-devel");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavcodec58");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavcodec58-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavcodec58-32bit-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavcodec58-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavdevice58");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavdevice58-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavdevice58-32bit-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavdevice58-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavfilter7");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavfilter7-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavfilter7-32bit-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavfilter7-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavformat58");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavformat58-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavformat58-32bit-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavformat58-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavresample4");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavresample4-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavresample4-32bit-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavresample4-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavutil56");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavutil56-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavutil56-32bit-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libavutil56-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libpostproc55");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libpostproc55-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libpostproc55-32bit-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libpostproc55-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libswresample3");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libswresample3-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libswresample3-32bit-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libswresample3-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libswscale5");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libswscale5-32bit");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libswscale5-32bit-debuginfo");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libswscale5-debuginfo");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:novell:opensuse:15.1");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2017/12/12");
      script_set_attribute(attribute:"patch_publication_date", value:"2020/01/13");
      script_set_attribute(attribute:"plugin_publication_date", value:"2020/01/15");
      script_set_attribute(attribute:"generated_plugin", value:"current");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.");
      script_family(english:"SuSE Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/SuSE/release", "Host/SuSE/rpm-list", "Host/cpu");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("global_settings.inc");
    include("rpm.inc");
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    release = get_kb_item("Host/SuSE/release");
    if (isnull(release) || release =~ "^(SLED|SLES)") audit(AUDIT_OS_NOT, "openSUSE");
    if (release !~ "^(SUSE15\.1)$") audit(AUDIT_OS_RELEASE_NOT, "openSUSE", "15.1", release);
    if (!get_kb_item("Host/SuSE/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    ourarch = get_kb_item("Host/cpu");
    if (!ourarch) audit(AUDIT_UNKNOWN_ARCH);
    if (ourarch !~ "^(i586|i686|x86_64)$") audit(AUDIT_ARCH_NOT, "i586 / i686 / x86_64", ourarch);
    
    flag = 0;
    
    if ( rpm_check(release:"SUSE15.1", reference:"ffmpeg-4-debugsource-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"ffmpeg-4-libavcodec-devel-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"ffmpeg-4-libavdevice-devel-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"ffmpeg-4-libavfilter-devel-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"ffmpeg-4-libavformat-devel-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"ffmpeg-4-libavresample-devel-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"ffmpeg-4-libavutil-devel-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"ffmpeg-4-libpostproc-devel-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"ffmpeg-4-libswresample-devel-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"ffmpeg-4-libswscale-devel-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"ffmpeg-4-private-devel-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libavcodec58-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libavcodec58-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libavdevice58-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libavdevice58-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libavfilter7-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libavfilter7-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libavformat58-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libavformat58-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libavresample4-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libavresample4-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libavutil56-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libavutil56-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libpostproc55-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libpostproc55-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libswresample3-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libswresample3-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libswscale5-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", reference:"libswscale5-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libavcodec58-32bit-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libavcodec58-32bit-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libavdevice58-32bit-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libavdevice58-32bit-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libavfilter7-32bit-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libavfilter7-32bit-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libavformat58-32bit-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libavformat58-32bit-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libavresample4-32bit-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libavresample4-32bit-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libavutil56-32bit-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libavutil56-32bit-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libpostproc55-32bit-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libpostproc55-32bit-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libswresample3-32bit-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libswresample3-32bit-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libswscale5-32bit-4.2.1-lp151.2.3.1") ) flag++;
    if ( rpm_check(release:"SUSE15.1", cpu:"x86_64", reference:"libswscale5-32bit-debuginfo-4.2.1-lp151.2.3.1") ) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_warning(port:0, extra:rpm_report_get());
      else security_warning(0);
      exit(0);
    }
    else
    {
      tested = pkg_tests_get();
      if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
      else audit(AUDIT_PACKAGE_NOT_INSTALLED, "ffmpeg-4-debugsource / ffmpeg-4-libavcodec-devel / etc");
    }
    
  • NASL familyUbuntu Local Security Checks
    NASL idUBUNTU_USN-3967-1.NASL
    descriptionIt was discovered that FFmpeg contained multiple security issues when handling certain multimedia files. If a user were tricked into opening a crafted multimedia file, an attacker could cause a denial of service via application crash. Note that Tenable Network Security has extracted the preceding description block directly from the Ubuntu security advisory. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-06-01
    modified2020-06-02
    plugin id124678
    published2019-05-07
    reporterUbuntu Security Notice (C) 2019-2020 Canonical, Inc. / NASL script (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/124678
    titleUbuntu 18.04 LTS / 18.10 / 19.04 : FFmpeg vulnerabilities (USN-3967-1)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from Ubuntu Security Notice USN-3967-1. The text 
    # itself is copyright (C) Canonical, Inc. See 
    # <http://www.ubuntu.com/usn/>. Ubuntu(R) is a registered 
    # trademark of Canonical, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(124678);
      script_version("1.3");
      script_cvs_date("Date: 2020/01/21");
    
      script_cve_id("CVE-2018-15822", "CVE-2019-11338", "CVE-2019-11339", "CVE-2019-9718", "CVE-2019-9721");
      script_xref(name:"USN", value:"3967-1");
    
      script_name(english:"Ubuntu 18.04 LTS / 18.10 / 19.04 : FFmpeg vulnerabilities (USN-3967-1)");
      script_summary(english:"Checks dpkg output for updated packages.");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:
    "The remote Ubuntu host is missing one or more security-related
    patches."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "It was discovered that FFmpeg contained multiple security issues when
    handling certain multimedia files. If a user were tricked into opening
    a crafted multimedia file, an attacker could cause a denial of service
    via application crash.
    
    Note that Tenable Network Security has extracted the preceding
    description block directly from the Ubuntu security advisory. Tenable
    has attempted to automatically clean and format it as much as possible
    without introducing additional issues."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://usn.ubuntu.com/3967-1/"
      );
      script_set_attribute(attribute:"solution", value:"Update the affected packages.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:P");
      script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
      script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H");
      script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
      script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:ffmpeg");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libavcodec-extra57");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libavcodec-extra58");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libavcodec57");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libavcodec58");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libavdevice57");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libavdevice58");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libavfilter-extra6");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libavfilter-extra7");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libavfilter6");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libavfilter7");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libavformat57");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libavformat58");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libavresample3");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libavresample4");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libavutil55");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libavutil56");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libpostproc54");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libpostproc55");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libswresample2");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libswresample3");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libswscale4");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:canonical:ubuntu_linux:libswscale5");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:18.04:-:lts");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:18.10");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:19.04");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2018/08/23");
      script_set_attribute(attribute:"patch_publication_date", value:"2019/05/06");
      script_set_attribute(attribute:"plugin_publication_date", value:"2019/05/07");
      script_set_attribute(attribute:"generated_plugin", value:"current");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"Ubuntu Security Notice (C) 2019-2020 Canonical, Inc. / NASL script (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.");
      script_family(english:"Ubuntu Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/cpu", "Host/Ubuntu", "Host/Ubuntu/release", "Host/Debian/dpkg-l");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("ubuntu.inc");
    include("misc_func.inc");
    
    if ( ! get_kb_item("Host/local_checks_enabled") ) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    release = get_kb_item("Host/Ubuntu/release");
    if ( isnull(release) ) audit(AUDIT_OS_NOT, "Ubuntu");
    release = chomp(release);
    if (! preg(pattern:"^(18\.04|18\.10|19\.04)$", string:release)) audit(AUDIT_OS_NOT, "Ubuntu 18.04 / 18.10 / 19.04", "Ubuntu " + release);
    if ( ! get_kb_item("Host/Debian/dpkg-l") ) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    cpu = get_kb_item("Host/cpu");
    if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
    if ("x86_64" >!< cpu && cpu !~ "^i[3-6]86$") audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "Ubuntu", cpu);
    
    flag = 0;
    
    if (ubuntu_check(osver:"18.04", pkgname:"ffmpeg", pkgver:"7:3.4.6-0ubuntu0.18.04.1")) flag++;
    if (ubuntu_check(osver:"18.04", pkgname:"libavcodec-extra57", pkgver:"7:3.4.6-0ubuntu0.18.04.1")) flag++;
    if (ubuntu_check(osver:"18.04", pkgname:"libavcodec57", pkgver:"7:3.4.6-0ubuntu0.18.04.1")) flag++;
    if (ubuntu_check(osver:"18.04", pkgname:"libavdevice57", pkgver:"7:3.4.6-0ubuntu0.18.04.1")) flag++;
    if (ubuntu_check(osver:"18.04", pkgname:"libavfilter-extra6", pkgver:"7:3.4.6-0ubuntu0.18.04.1")) flag++;
    if (ubuntu_check(osver:"18.04", pkgname:"libavfilter6", pkgver:"7:3.4.6-0ubuntu0.18.04.1")) flag++;
    if (ubuntu_check(osver:"18.04", pkgname:"libavformat57", pkgver:"7:3.4.6-0ubuntu0.18.04.1")) flag++;
    if (ubuntu_check(osver:"18.04", pkgname:"libavresample3", pkgver:"7:3.4.6-0ubuntu0.18.04.1")) flag++;
    if (ubuntu_check(osver:"18.04", pkgname:"libavutil55", pkgver:"7:3.4.6-0ubuntu0.18.04.1")) flag++;
    if (ubuntu_check(osver:"18.04", pkgname:"libpostproc54", pkgver:"7:3.4.6-0ubuntu0.18.04.1")) flag++;
    if (ubuntu_check(osver:"18.04", pkgname:"libswresample2", pkgver:"7:3.4.6-0ubuntu0.18.04.1")) flag++;
    if (ubuntu_check(osver:"18.04", pkgname:"libswscale4", pkgver:"7:3.4.6-0ubuntu0.18.04.1")) flag++;
    if (ubuntu_check(osver:"18.10", pkgname:"ffmpeg", pkgver:"7:4.0.4-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"18.10", pkgname:"libavcodec-extra58", pkgver:"7:4.0.4-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"18.10", pkgname:"libavcodec58", pkgver:"7:4.0.4-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"18.10", pkgname:"libavdevice58", pkgver:"7:4.0.4-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"18.10", pkgname:"libavfilter-extra7", pkgver:"7:4.0.4-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"18.10", pkgname:"libavfilter7", pkgver:"7:4.0.4-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"18.10", pkgname:"libavformat58", pkgver:"7:4.0.4-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"18.10", pkgname:"libavresample4", pkgver:"7:4.0.4-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"18.10", pkgname:"libavutil56", pkgver:"7:4.0.4-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"18.10", pkgname:"libpostproc55", pkgver:"7:4.0.4-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"18.10", pkgname:"libswresample3", pkgver:"7:4.0.4-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"18.10", pkgname:"libswscale5", pkgver:"7:4.0.4-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"19.04", pkgname:"ffmpeg", pkgver:"7:4.1.3-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"19.04", pkgname:"libavcodec-extra58", pkgver:"7:4.1.3-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"19.04", pkgname:"libavcodec58", pkgver:"7:4.1.3-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"19.04", pkgname:"libavdevice58", pkgver:"7:4.1.3-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"19.04", pkgname:"libavfilter-extra7", pkgver:"7:4.1.3-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"19.04", pkgname:"libavfilter7", pkgver:"7:4.1.3-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"19.04", pkgname:"libavformat58", pkgver:"7:4.1.3-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"19.04", pkgname:"libavresample4", pkgver:"7:4.1.3-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"19.04", pkgname:"libavutil56", pkgver:"7:4.1.3-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"19.04", pkgname:"libpostproc55", pkgver:"7:4.1.3-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"19.04", pkgname:"libswresample3", pkgver:"7:4.1.3-0ubuntu1")) flag++;
    if (ubuntu_check(osver:"19.04", pkgname:"libswscale5", pkgver:"7:4.1.3-0ubuntu1")) flag++;
    
    if (flag)
    {
      security_report_v4(
        port       : 0,
        severity   : SECURITY_WARNING,
        extra      : ubuntu_report_get()
      );
      exit(0);
    }
    else
    {
      tested = ubuntu_pkg_tests_get();
      if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
      else audit(AUDIT_PACKAGE_NOT_INSTALLED, "ffmpeg / libavcodec-extra57 / libavcodec-extra58 / libavcodec57 / etc");
    }