Lucene search

K
nessusThis script is Copyright (C) 2023 and is owned by Tenable, Inc. or an Affiliate thereof.NEWSTART_CGSL_NS-SA-2023-0130_LIBJPEG-TURBO.NASL
HistoryNov 09, 2023 - 12:00 a.m.

NewStart CGSL MAIN 6.06 : libjpeg-turbo Multiple Vulnerabilities (NS-SA-2023-0130)

2023-11-0900:00:00
This script is Copyright (C) 2023 and is owned by Tenable, Inc. or an Affiliate thereof.
www.tenable.com
11
newstart cgsl
libjpeg-turbo
vulnerabilities
denial of service
divide by zero
out of bounds read
google chrome
heap corruption
ppm reader
buffer overflow
nessus scanner

7.1 High

AI Score

Confidence

High

The remote NewStart CGSL host, running version MAIN 6.06, has libjpeg-turbo packages installed that are affected by multiple vulnerabilities:

  • Libjpeg-turbo versions 2.0.91 and 2.0.90 is vulnerable to a denial of service vulnerability caused by a divide by zero when processing a crafted GIF image. (CVE-2021-20205)

  • Out of bounds read in libjpeg-turbo in Google Chrome prior to 94.0.4606.54 allowed a remote attacker to potentially exploit heap corruption via a crafted HTML page. (CVE-2021-37972)

  • The PPM reader in libjpeg-turbo through 2.0.90 mishandles use of tjLoadImage for loading a 16-bit binary PPM file into a grayscale buffer and loading a 16-bit binary PGM file into an RGB buffer. This is related to a heap-based buffer overflow in the get_word_rgb_row function in rdppm.c. (CVE-2021-46822)

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 ZTE advisory NS-SA-2023-0130. The text
# itself is copyright (C) ZTE, Inc.
##

include('compat.inc');

if (description)
{
  script_id(185403);
  script_version("1.0");
  script_set_attribute(attribute:"plugin_modification_date", value:"2023/11/09");

  script_cve_id("CVE-2021-20205", "CVE-2021-37972", "CVE-2021-46822");

  script_name(english:"NewStart CGSL MAIN 6.06 : libjpeg-turbo Multiple Vulnerabilities (NS-SA-2023-0130)");

  script_set_attribute(attribute:"synopsis", value:
"The remote NewStart CGSL host is affected by multiple vulnerabilities.");
  script_set_attribute(attribute:"description", value:
"The remote NewStart CGSL host, running version MAIN 6.06, has libjpeg-turbo packages installed that are affected by
multiple vulnerabilities:

  - Libjpeg-turbo versions 2.0.91 and 2.0.90 is vulnerable to a denial of service vulnerability caused by a
    divide by zero when processing a crafted GIF image. (CVE-2021-20205)

  - Out of bounds read in libjpeg-turbo in Google Chrome prior to 94.0.4606.54 allowed a remote attacker to
    potentially exploit heap corruption via a crafted HTML page. (CVE-2021-37972)

  - The PPM reader in libjpeg-turbo through 2.0.90 mishandles use of tjLoadImage for loading a 16-bit binary
    PPM file into a grayscale buffer and loading a 16-bit binary PGM file into an RGB buffer. This is related
    to a heap-based buffer overflow in the get_word_rgb_row function in rdppm.c. (CVE-2021-46822)

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://security.gd-linux.com/notice/NS-SA-2023-0130");
  script_set_attribute(attribute:"see_also", value:"https://security.gd-linux.com/info/CVE-2021-20205");
  script_set_attribute(attribute:"see_also", value:"https://security.gd-linux.com/info/CVE-2021-37972");
  script_set_attribute(attribute:"see_also", value:"https://security.gd-linux.com/info/CVE-2021-46822");
  script_set_attribute(attribute:"solution", value:
"Upgrade the vulnerable CGSL libjpeg-turbo packages. Note that updated packages may not be available yet. Please contact
ZTE for more information.");
  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:POC/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:P/RL:O/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2021-37972");

  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:"2021/03/10");
  script_set_attribute(attribute:"patch_publication_date", value:"2023/11/03");
  script_set_attribute(attribute:"plugin_publication_date", value:"2023/11/09");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:zte:cgsl_main:libjpeg-turbo");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:zte:cgsl_main:libjpeg-turbo-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:zte:cgsl_main:libjpeg-turbo-doc");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:zte:cgsl_main:libjpeg-turbo-utils");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:zte:cgsl_main:turbojpeg");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:zte:cgsl_main:turbojpeg-devel");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:zte:cgsl_main:6");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"NewStart CGSL 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/ZTE-CGSL/release", "Host/ZTE-CGSL/rpm-list", "Host/cpu");

  exit(0);
}

include('rpm.inc');

if (!get_kb_item('Host/local_checks_enabled')) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);

var os_release = get_kb_item('Host/ZTE-CGSL/release');
if (isnull(os_release) || os_release !~ "^CGSL (MAIN|CORE)") audit(AUDIT_OS_NOT, 'NewStart Carrier Grade Server Linux');

if (os_release !~ "CGSL MAIN 6.06")
  audit(AUDIT_OS_NOT, 'NewStart CGSL MAIN 6.06');

if (!get_kb_item('Host/ZTE-CGSL/rpm-list')) audit(AUDIT_PACKAGE_LIST_MISSING);

var 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, 'NewStart Carrier Grade Server Linux', cpu);

var flag = 0;

var pkgs = {
  'CGSL MAIN 6.06': [
    'libjpeg-turbo-2.0.90-6.0.1.zncgsl6',
    'libjpeg-turbo-devel-2.0.90-6.0.1.zncgsl6',
    'libjpeg-turbo-doc-2.0.90-6.0.1.zncgsl6',
    'libjpeg-turbo-utils-2.0.90-6.0.1.zncgsl6',
    'turbojpeg-2.0.90-6.0.1.zncgsl6',
    'turbojpeg-devel-2.0.90-6.0.1.zncgsl6'
  ]
};
var pkg_list = pkgs[os_release];

foreach (pkg in pkg_list)
  if (rpm_check(release:'ZTE ' + os_release, reference:pkg)) flag++;

if (flag)
{
  security_report_v4(
    port       : 0,
    severity   : SECURITY_WARNING,
    extra      : rpm_report_get()
  );
  exit(0);
}
else
{
  var tested = pkg_tests_get();
  if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
  else audit(AUDIT_PACKAGE_NOT_INSTALLED, 'libjpeg-turbo');
}
VendorProductVersionCPE
ztecgsl_mainlibjpeg-turbop-cpe:/a:zte:cgsl_main:libjpeg-turbo
ztecgsl_mainlibjpeg-turbo-develp-cpe:/a:zte:cgsl_main:libjpeg-turbo-devel
ztecgsl_mainlibjpeg-turbo-utilsp-cpe:/a:zte:cgsl_main:libjpeg-turbo-utils
ztecgsl_mainturbojpegp-cpe:/a:zte:cgsl_main:turbojpeg
ztecgsl_mainturbojpeg-develp-cpe:/a:zte:cgsl_main:turbojpeg-devel
ztecgsl_main6cpe:/o:zte:cgsl_main:6
ztecgsl_mainlibjpeg-turbo-docp-cpe:/a:zte:cgsl_main:libjpeg-turbo-doc