CVE Catalog

CVE-2026-12522

HighCVSS 8.8
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.22%

12th percentile - higher than 12% of all known CVEs

Summary

The HL7800 cellular modem driver contains a stack buffer overflow vulnerability in the on_cmd_atcmdinfo_ipaddr() function while processing +CGCONTRDP responses. The length of address fields (IP, mask, gateway, DNS) is derived from delimiter positions in network-supplied data and is not bounded against the destination buffer (64 bytes), allowing writes past temp_addr_str.

Risk Assessment

A malicious or impersonated cellular network (e.g., rogue base station) can remotely cause a device crash or control-flow hijacking in supervisor context, without requiring privileges or user interaction. This can lead to device integrity compromise and potential takeover of the modem.

Recommendation

Immediately update the HL7800 modem driver to a version containing the fix that bounds field lengths before copying. If a patch is unavailable, restrict trust in cellular networks and consider additional stack protection mechanisms (e.g., stack canaries) in firmware.

Related vulnerabilities

Original NVD description (English source)

The HL7800 cellular modem driver's +CGCONTRDP: response handler on_cmd_atcmdinfo_ipaddr() in drivers/modem/vendor_standalone/hl7800.c parses the PDP-context dynamic parameters (local address, subnet mask, gateway, and DNS servers) that the cellular network assigns to the device. The response is linearized into a 256-byte stack buffer, after which each address field length is computed from comma/. delimiter positions in the network-supplied data and used directly as the length argument to strncpy() into the fixed 64-byte stack buffer temp_addr_str (and the 16-byte iface_ctx.dns_v4_string). Because the field length is derived from attacker-controlled delimiter positions and was not bounded against the destination buffer, a single field can be far larger than 64 bytes. A malicious or impersonated cellular network (for example a rogue base station) can return a crafted +CGCONTRDP response with an overlong address field, causing strncpy() to write past temp_addr_str on the modem worker thread's stack, plus an out-of-bounds NUL write at temp_addr_str[addr_len]. No device-side privileges or user interaction are required: the device itself issues the AT+CGCONTRDP=1 query during normal network attach and parses whatever the network returns. The overflow corrupts adjacent stack memory in supervisor context, yielding at minimum a remotely triggerable crash and potentially control-flow hijacking on targets without stack protection. The fix bounds every field length against its destination buffer (temp_addr_str and dns_v4_string) before each copy, rejecting overlong fields.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS