Lucene search
+L

NewStart CGSL MAIN 7.02 : gpsd Multiple Vulnerabilities (NS-SA-2026-0106)

🗓️ 08 Sep 2026 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 4 Views

Integer underflow and heap OOB write in gpsd enabling DoS or code execution.

Related
Refs
Code
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from ZTE advisory NS-SA-2026-0106. The text
# itself is copyright (C) ZTE, Inc.
##

include('compat.inc');

if (description)
{
  script_id(343586);
  script_version("1.1");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/09/08");

  script_cve_id("CVE-2025-67268", "CVE-2025-67269");
  script_xref(name:"IAVA", value:"2026-A-0033");

  script_name(english:"NewStart CGSL MAIN 7.02 : gpsd Multiple Vulnerabilities (NS-SA-2026-0106)");

  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 7.02, has gpsd packages installed that are affected by multiple
vulnerabilities:

  - An integer underflow vulnerability exists in the `nextstate()` function in `gpsd/packet.c` of gpsd
    versions prior to commit `ffa1d6f40bca0b035fc7f5e563160ebb67199da7`. When parsing a NAVCOM packet, the
    payload length is calculated using `lexer->length = (size_t)c - 4` without checking if the input byte `c`
    is less than 4. This results in an unsigned integer underflow, setting `lexer->length` to a very large
    value (near `SIZE_MAX`). The parser then enters a loop attempting to consume this massive number of bytes,
    causing 100% CPU utilization and a Denial of Service (DoS) condition. (CVE-2025-67269)

  - gpsd before commit dc966aa contains a heap-based out-of-bounds write vulnerability in the
    drivers/driver_nmea2000.c file. The hnd_129540 function, which handles NMEA2000 PGN 129540 (GNSS
    Satellites in View) packets, fails to validate the user-supplied satellite count against the size of the
    skyview array (184 elements). This allows an attacker to write beyond the bounds of the array by providing
    a satellite count up to 255, leading to memory corruption, Denial of Service (DoS), and potentially
    arbitrary code execution. (CVE-2025-67268)

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-2026-0106");
  script_set_attribute(attribute:"see_also", value:"https://security.gd-linux.com/info/CVE-2025-67268");
  script_set_attribute(attribute:"see_also", value:"https://security.gd-linux.com/info/CVE-2025-67269");
  script_set_attribute(attribute:"solution", value:
"Upgrade the vulnerable CGSL gpsd 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:L/Au:N/C:C/I:C/A:C");
  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:N/I:N/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-2025-67268");
  script_set_attribute(attribute:"cvss3_score_source", value:"CVE-2025-67269");

  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:"2026/01/02");
  script_set_attribute(attribute:"patch_publication_date", value:"2026/09/07");
  script_set_attribute(attribute:"plugin_publication_date", value:"2026/09/08");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:zte:cgsl_main:gpsd");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:zte:cgsl_main:gpsd-clients");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:zte:cgsl_main:gpsd-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:zte:cgsl_main:gpsd-libs");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:zte:cgsl_main:gpsd-qt");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:zte:cgsl_main:gpsd-qt-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:zte:cgsl_main:gpsd-xclients");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:zte:cgsl_main:python3-gpsd");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:zte:cgsl_main:7");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_set_attribute(attribute:"stig_severity", value:"II");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"NewStart CGSL Local Security Checks");

  script_copyright(english:"This script is Copyright (C) 2026 and is owned by Tenable, Inc. or an Affiliate thereof.");

  script_dependencies("ssh_get_info2.nasl");
  script_require_keys("Host/local_checks_enabled", "Host/ZTE-CGSL/release", "Host/ZTE-CGSL/rpm-list", "Host/cpu");

  exit(0);
}

include('rpm2.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\sMAIN\s7\.02")
  audit(AUDIT_OS_NOT, 'NewStart CGSL MAIN 7.02');

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 7.02': [
    'gpsd-3.25-4.zncgsl7.1',
    'gpsd-clients-3.25-4.zncgsl7.1',
    'gpsd-devel-3.25-4.zncgsl7.1',
    'gpsd-libs-3.25-4.zncgsl7.1',
    'gpsd-qt-3.25-4.zncgsl7.1',
    'gpsd-qt-devel-3.25-4.zncgsl7.1',
    'gpsd-xclients-3.25-4.zncgsl7.1',
    'python3-gpsd-3.25-4.zncgsl7.1'
  ]
};
var pkg_list = pkgs[os_release];
var pkg;
foreach (pkg in pkg_list)
  if (rpm_check(reference:pkg, release:'ZTE ' + os_release, rpm_spec_vers_cmp:TRUE)) flag++;

if (flag)
{
  security_report_v4(
    port       : 0,
    severity   : SECURITY_HOLE,
    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, 'gpsd');
}

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation