The remote host is affected by the vulnerability described in GLSA-201702-21 (Opus: User-assisted execution of arbitrary code)
A large NLSF values could cause the stabilization code in silk/NLSF_stabilize.c to wrap-around and have the last value in NLSF_Q15[] to be negative, close to -32768.
Under normal circumstances, the code will simply read from the wrong table resulting in an unstable LPC filter. The filter would then go through the LPC stabilization code at the end of silk_NLSF2A().
Ultimately, the output audio would be garbage, but no worse than with any other harmless bad packet.
Please see the referenced upstream patch and Debian bug report below for a detailed analysis.
However, the original report was about a successful exploitation of Android’s Mediaserver in conjunction with this vulnerability.
Impact :
A remote attacker could entice a user to open a specially crafted media stream, possibly resulting in execution of arbitrary code with the privileges of the process, or a Denial of Service condition.
Workaround :
There is no known workaround at this time.
#%NASL_MIN_LEVEL 70300
#
# (C) Tenable Network Security, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Gentoo Linux Security Advisory GLSA 201702-21.
#
# The advisory text is Copyright (C) 2001-2017 Gentoo Foundation, Inc.
# and licensed under the Creative Commons - Attribution / Share Alike
# license. See http://creativecommons.org/licenses/by-sa/3.0/
#
include('deprecated_nasl_level.inc');
include('compat.inc');
if (description)
{
script_id(97264);
script_version("3.2");
script_set_attribute(attribute:"plugin_modification_date", value:"2021/01/11");
script_cve_id("CVE-2017-0381");
script_xref(name:"GLSA", value:"201702-21");
script_name(english:"GLSA-201702-21 : Opus: User-assisted execution of arbitrary code");
script_summary(english:"Checks for updated package(s) in /var/db/pkg");
script_set_attribute(
attribute:"synopsis",
value:
"The remote Gentoo host is missing one or more security-related
patches."
);
script_set_attribute(
attribute:"description",
value:
"The remote host is affected by the vulnerability described in GLSA-201702-21
(Opus: User-assisted execution of arbitrary code)
A large NLSF values could cause the stabilization code in
silk/NLSF_stabilize.c to wrap-around and have the last value in
NLSF_Q15[] to be negative, close to -32768.
Under normal circumstances, the code will simply read from the wrong
table resulting in an unstable LPC filter. The filter would then go
through the LPC stabilization code at the end of silk_NLSF2A().
Ultimately, the output audio would be garbage, but no worse than with
any other harmless bad packet.
Please see the referenced upstream patch and Debian bug report below for
a detailed analysis.
However, the original report was about a successful exploitation of
Android’s Mediaserver in conjunction with this vulnerability.
Impact :
A remote attacker could entice a user to open a specially crafted media
stream, possibly resulting in execution of arbitrary code with the
privileges of the process, or a Denial of Service condition.
Workaround :
There is no known workaround at this time."
);
script_set_attribute(
attribute:"see_also",
value:"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=851612#10"
);
script_set_attribute(
attribute:"see_also",
value:"https://git.xiph.org/?p=opus.git;a=commitdiff;h=70a3d641b"
);
script_set_attribute(
attribute:"see_also",
value:"https://security.gentoo.org/glsa/201702-21"
);
script_set_attribute(
attribute:"solution",
value:
"All Opus users should upgrade to the latest version:
# emerge --sync
# emerge --ask --oneshot --verbose '>=media-libs/opus-1.1.3-r1'"
);
script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:C/I:C/A:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:gentoo:linux:opus");
script_set_attribute(attribute:"cpe", value:"cpe:/o:gentoo:linux");
script_set_attribute(attribute:"patch_publication_date", value:"2017/02/20");
script_set_attribute(attribute:"plugin_publication_date", value:"2017/02/21");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_copyright(english:"This script is Copyright (C) 2017-2021 Tenable Network Security, Inc.");
script_family(english:"Gentoo Local Security Checks");
script_dependencies("ssh_get_info.nasl");
script_require_keys("Host/local_checks_enabled", "Host/Gentoo/release", "Host/Gentoo/qpkg-list");
exit(0);
}
include("audit.inc");
include("global_settings.inc");
include("qpkg.inc");
if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
if (!get_kb_item("Host/Gentoo/release")) audit(AUDIT_OS_NOT, "Gentoo");
if (!get_kb_item("Host/Gentoo/qpkg-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
flag = 0;
if (qpkg_check(package:"media-libs/opus", unaffected:make_list("ge 1.1.3-r1"), vulnerable:make_list("lt 1.1.3-r1"))) flag++;
if (flag)
{
if (report_verbosity > 0) security_hole(port:0, extra:qpkg_report_get());
else security_hole(0);
exit(0);
}
else
{
tested = qpkg_tests_get();
if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
else audit(AUDIT_PACKAGE_NOT_INSTALLED, "Opus");
}