CVE-2025-67269

gpsd: gpsd: Denial of Service due to malformed NAVCOM packet parsing

Published Jan 2, 2026 CVSS 3.1 · 7.5 High EPSS < 1% KEV · Not listed
Description
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.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-4441-1 gpsd security update
Ubuntu USN Ubuntu USN USN-7948-1 GPSd vulnerabilities
History
Type Values Removed Values Added
CPEs cpe:2.3:a:gpsd_project:gpsd:*:*:*:*:*:*:*:*
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Gpsd Project
Gpsd Project gpsd
Vendors & Products Gpsd Project
Gpsd Project gpsd
Type Values Removed Values Added
Title gpsd: gpsd: Denial of Service due to malformed NAVCOM packet parsing
Weaknesses CWE-191
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Important

Type Values Removed Values Added
Description 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.
References
Weaknesses

Sources

Status
PUBLISHED
Assigner
mitre
Published
Updated
Jul 15, 2026, 1:25 AM
Reserved
Dec 8, 2025, 12:00 AM
Status
Modified
Published
Jan 2, 2026, 4:17 PM
Modified
Nov 4, 2026, 10:10 PM
Severity
Important
Public date
Jan 2, 2026, 12:00 AM