The remote Debian 10 host has packages installed that are affected by multiple vulnerabilities as referenced in the dla-3395 advisory.
Code injection in the go command with cgo before Go 1.14.12 and Go 1.15.5 allows arbitrary code execution at build time via malicious gcc flags specified via a #cgo directive. (CVE-2020-28367)
In archive/zip in Go before 1.15.13 and 1.16.x before 1.16.5, a crafted file count (in an archive’s header) can cause a NewReader or OpenReader panic. (CVE-2021-33196)
Go before 1.15.15 and 1.16.x before 1.16.7 has a race condition that can lead to a net/http/httputil ReverseProxy panic upon an ErrAbortHandler abort. (CVE-2021-36221)
Go before 1.16.9 and 1.17.x before 1.17.2 has a Buffer Overflow via large arguments in a function invocation from a WASM module, when GOARCH=wasm GOOS=js is used. (CVE-2021-38297)
In archive/zip in Go before 1.16.8 and 1.17.x before 1.17.1, a crafted archive header (falsely designating that many files are present) can cause a NewReader or OpenReader panic. NOTE: this issue exists because of an incomplete fix for CVE-2021-33196. (CVE-2021-39293)
ImportedSymbols in debug/macho (for Open or OpenFat) in Go before 1.16.10 and 1.17.x before 1.17.3 Accesses a Memory Location After the End of a Buffer, aka an out-of-bounds slice situation.
(CVE-2021-41771)
net/http in Go before 1.16.12 and 1.17.x before 1.17.5 allows uncontrolled memory consumption in the header canonicalization cache via HTTP/2 requests. (CVE-2021-44716)
Go before 1.16.12 and 1.17.x before 1.17.5 on UNIX allows write operations to an unintended file or unintended network connection as a consequence of erroneous closing of file descriptor 0 after file- descriptor exhaustion. (CVE-2021-44717)
Curve.IsOnCurve in crypto/elliptic in Go before 1.16.14 and 1.17.x before 1.17.7 can incorrectly return true in situations with a big.Int value that is not a valid field element. (CVE-2022-23806)
regexp.Compile in Go before 1.16.15 and 1.17.x before 1.17.8 allows stack exhaustion via a deeply nested expression. (CVE-2022-24921)
Note that Nessus has not tested for these issues but has instead relied only on the application’s self-reported version number.
#%NASL_MIN_LEVEL 80900
#
# (C) Tenable, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Debian Security Advisory dla-3395. The text
# itself is copyright (C) Software in the Public Interest, Inc.
#
include('compat.inc');
if (description)
{
script_id(174589);
script_version("1.0");
script_set_attribute(attribute:"plugin_modification_date", value:"2023/04/20");
script_cve_id(
"CVE-2020-28367",
"CVE-2021-33196",
"CVE-2021-36221",
"CVE-2021-38297",
"CVE-2021-39293",
"CVE-2021-41771",
"CVE-2021-44716",
"CVE-2021-44717",
"CVE-2022-23806",
"CVE-2022-24921"
);
script_name(english:"Debian DLA-3395-1 : golang-1.11 - LTS security update");
script_set_attribute(attribute:"synopsis", value:
"The remote Debian host is missing one or more security-related updates.");
script_set_attribute(attribute:"description", value:
"The remote Debian 10 host has packages installed that are affected by multiple vulnerabilities as referenced in the
dla-3395 advisory.
- Code injection in the go command with cgo before Go 1.14.12 and Go 1.15.5 allows arbitrary code execution
at build time via malicious gcc flags specified via a #cgo directive. (CVE-2020-28367)
- In archive/zip in Go before 1.15.13 and 1.16.x before 1.16.5, a crafted file count (in an archive's
header) can cause a NewReader or OpenReader panic. (CVE-2021-33196)
- Go before 1.15.15 and 1.16.x before 1.16.7 has a race condition that can lead to a net/http/httputil
ReverseProxy panic upon an ErrAbortHandler abort. (CVE-2021-36221)
- Go before 1.16.9 and 1.17.x before 1.17.2 has a Buffer Overflow via large arguments in a function
invocation from a WASM module, when GOARCH=wasm GOOS=js is used. (CVE-2021-38297)
- In archive/zip in Go before 1.16.8 and 1.17.x before 1.17.1, a crafted archive header (falsely designating
that many files are present) can cause a NewReader or OpenReader panic. NOTE: this issue exists because of
an incomplete fix for CVE-2021-33196. (CVE-2021-39293)
- ImportedSymbols in debug/macho (for Open or OpenFat) in Go before 1.16.10 and 1.17.x before 1.17.3
Accesses a Memory Location After the End of a Buffer, aka an out-of-bounds slice situation.
(CVE-2021-41771)
- net/http in Go before 1.16.12 and 1.17.x before 1.17.5 allows uncontrolled memory consumption in the
header canonicalization cache via HTTP/2 requests. (CVE-2021-44716)
- Go before 1.16.12 and 1.17.x before 1.17.5 on UNIX allows write operations to an unintended file or
unintended network connection as a consequence of erroneous closing of file descriptor 0 after file-
descriptor exhaustion. (CVE-2021-44717)
- Curve.IsOnCurve in crypto/elliptic in Go before 1.16.14 and 1.17.x before 1.17.7 can incorrectly return
true in situations with a big.Int value that is not a valid field element. (CVE-2022-23806)
- regexp.Compile in Go before 1.16.15 and 1.17.x before 1.17.8 allows stack exhaustion via a deeply nested
expression. (CVE-2022-24921)
Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version
number.");
script_set_attribute(attribute:"see_also", value:"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=989492");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/source-package/golang-1.11");
script_set_attribute(attribute:"see_also", value:"https://www.debian.org/lts/security/2023/dla-3395");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2020-28367");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2021-33196");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2021-36221");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2021-38297");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2021-39293");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2021-41771");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2021-44716");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2021-44717");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2022-23806");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2022-24921");
script_set_attribute(attribute:"see_also", value:"https://packages.debian.org/source/buster/golang-1.11");
script_set_attribute(attribute:"solution", value:
"Upgrade the golang-1.11 packages.
For Debian 10 buster, these problems have been fixed in version 1.11.6-1+deb10u6.");
script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H");
script_set_cvss3_temporal_vector("CVSS:3.0/E:P/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2021-38297");
script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
script_set_attribute(attribute:"exploit_available", value:"true");
script_set_attribute(attribute:"vuln_publication_date", value:"2020/11/18");
script_set_attribute(attribute:"patch_publication_date", value:"2023/04/19");
script_set_attribute(attribute:"plugin_publication_date", value:"2023/04/20");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:golang-1.11");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:golang-1.11-doc");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:golang-1.11-go");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:golang-1.11-src");
script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:10.0");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Debian Local Security Checks");
script_copyright(english:"This script is Copyright (C) 2023 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("ssh_get_info.nasl");
script_require_keys("Host/local_checks_enabled", "Host/Debian/release", "Host/Debian/dpkg-l");
exit(0);
}
include('debian_package.inc');
if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
if (!get_kb_item("Host/Debian/dpkg-l")) audit(AUDIT_PACKAGE_LIST_MISSING);
var debian_release = get_kb_item('Host/Debian/release');
if ( isnull(debian_release) ) audit(AUDIT_OS_NOT, 'Debian');
debian_release = chomp(debian_release);
if (! preg(pattern:"^(10)\.[0-9]+", string:debian_release)) audit(AUDIT_OS_NOT, 'Debian 10.0', 'Debian ' + debian_release);
var cpu = get_kb_item('Host/cpu');
if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
if ('x86_64' >!< cpu && cpu !~ "^i[3-6]86$" && 'aarch64' >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, 'Debian', cpu);
var pkgs = [
{'release': '10.0', 'prefix': 'golang-1.11', 'reference': '1.11.6-1+deb10u6'},
{'release': '10.0', 'prefix': 'golang-1.11-doc', 'reference': '1.11.6-1+deb10u6'},
{'release': '10.0', 'prefix': 'golang-1.11-go', 'reference': '1.11.6-1+deb10u6'},
{'release': '10.0', 'prefix': 'golang-1.11-src', 'reference': '1.11.6-1+deb10u6'}
];
var flag = 0;
foreach package_array ( pkgs ) {
var _release = NULL;
var prefix = NULL;
var reference = NULL;
if (!empty_or_null(package_array['release'])) _release = package_array['release'];
if (!empty_or_null(package_array['prefix'])) prefix = package_array['prefix'];
if (!empty_or_null(package_array['reference'])) reference = package_array['reference'];
if (_release && prefix && reference) {
if (deb_check(release:_release, prefix:prefix, reference:reference)) flag++;
}
}
if (flag)
{
security_report_v4(
port : 0,
severity : SECURITY_HOLE,
extra : deb_report_get()
);
exit(0);
}
else
{
var tested = deb_pkg_tests_get();
if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
else audit(AUDIT_PACKAGE_NOT_INSTALLED, 'golang-1.11 / golang-1.11-doc / golang-1.11-go / golang-1.11-src');
}
Vendor | Product | Version | CPE |
---|---|---|---|
debian | debian_linux | golang-1.11 | p-cpe:/a:debian:debian_linux:golang-1.11 |
debian | debian_linux | golang-1.11-doc | p-cpe:/a:debian:debian_linux:golang-1.11-doc |
debian | debian_linux | golang-1.11-go | p-cpe:/a:debian:debian_linux:golang-1.11-go |
debian | debian_linux | golang-1.11-src | p-cpe:/a:debian:debian_linux:golang-1.11-src |
debian | debian_linux | 10.0 | cpe:/o:debian:debian_linux:10.0 |
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-28367
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-33196
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-36221
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-38297
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-39293
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41771
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44716
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44717
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-23806
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-24921
bugs.debian.org/cgi-bin/bugreport.cgi?bug=989492
packages.debian.org/source/buster/golang-1.11
security-tracker.debian.org/tracker/CVE-2020-28367
security-tracker.debian.org/tracker/CVE-2021-33196
security-tracker.debian.org/tracker/CVE-2021-36221
security-tracker.debian.org/tracker/CVE-2021-38297
security-tracker.debian.org/tracker/CVE-2021-39293
security-tracker.debian.org/tracker/CVE-2021-41771
security-tracker.debian.org/tracker/CVE-2021-44716
security-tracker.debian.org/tracker/CVE-2021-44717
security-tracker.debian.org/tracker/CVE-2022-23806
security-tracker.debian.org/tracker/CVE-2022-24921
security-tracker.debian.org/tracker/source-package/golang-1.11
www.debian.org/lts/security/2023/dla-3395