CVE-2025-67269
📋 TL;DR
An integer underflow vulnerability in gpsd's NAVCOM packet parser causes a denial of service condition. When processing malicious packets, the parser enters an infinite loop consuming 100% CPU, rendering the service unavailable. This affects all systems running vulnerable versions of gpsd.
💻 Affected Systems
- gpsd
⚠️ Risk & Real-World Impact
Worst Case
Complete service outage with 100% CPU utilization, requiring manual intervention to restore functionality.
Likely Case
Denial of service affecting GPS data processing services, potentially disrupting dependent applications.
If Mitigated
Limited impact if proper network segmentation and input validation are in place.
🎯 Exploit Status
Exploitation requires sending a specially crafted NAVCOM packet to the vulnerable service.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Commit ffa1d6f40bca0b035fc7f5e563160ebb67199da7 or later
Vendor Advisory: https://gitlab.com/gpsd/gpsd/-/commit/ffa1d6f40bca0b035fc7f5e563160ebb67199da7
Restart Required: Yes
Instructions:
1. Update gpsd to the latest version from the official repository. 2. Apply commit ffa1d6f40bca0b035fc7f5e563160ebb67199da7 if using source. 3. Restart the gpsd service.
🔧 Temporary Workarounds
Network Filtering
linuxBlock or filter NAVCOM packets from untrusted sources using firewall rules.
iptables -A INPUT -p udp --dport 2947 -m string --hex-string '|4e4156434f4d|' --algo bm -j DROP
🧯 If You Can't Patch
- Implement strict network segmentation to isolate gpsd from untrusted networks.
- Monitor CPU usage of gpsd processes and implement automated restart on high utilization.
🔍 How to Verify
Check if Vulnerable:
Check gpsd version or commit hash against the vulnerable range.
Check Version:
gpsd --version
Verify Fix Applied:
Verify the applied commit includes ffa1d6f40bca0b035fc7f5e563160ebb67199da7.
📡 Detection & Monitoring
Log Indicators:
- High CPU usage alerts
- Service restart logs
- Unusual packet parsing errors
Network Indicators:
- NAVCOM packets with malformed length fields
SIEM Query:
process.name:"gpsd" AND cpu.usage:>90