Description
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.
Published: 2026-08-19
Score: 8.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The HL7800 modem driver in Zephyr parses the network‑supplied +CGCONTRDP response, which contains address fields such as the local address, subnet mask, gateway, and DNS servers. The response is linearized into a 256‑byte stack buffer, and the lengths of each address field are derived from delimiter positions in that data and used directly as the length argument to strncpy() into a fixed 64‑byte stack buffer. Because the field lengths are calculated from attacker‑controlled input and are not bounded against the destination buffer, a single overlong field can cause strncpy() to write past the buffer, corrupt adjacent stack memory, and lead to a remote crash or potential control‑flow hijacking.

Affected Systems

Zephyr Project firmware that includes the HL7800 cellular modem driver. Devices running any Zephyr build that incorporates the HL7800 driver without the commit a1cbced64181bc0bdf95e1fd7118f2bb70cf679b (i.e., versions before the patch) are vulnerable.

Risk and Exploitability

The CVSS score of 8.8 indicates moderate to high severity. The lack of EPSS data and the absence from the CISA KEV catalog do not diminish the risk; a rogue or spoofed base station can craft a malicious +CGCONTRDP response during normal network attach to trigger the overflow. No privileged device operations or user interaction are required, so the attack vector is purely network‑side. On targets without stack protection, the overflow could lead to control‑flow hijacking, so the vulnerability is considered potentially exploitable.

Generated by OpenCVE AI on August 20, 2026 at 08:39 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the Zephyr driver patch from commit a1cbced64181bc0bdf95e1fd7118f2bb70cf679b or upgrade to the latest Zephyr release that contains the fix.
  • Configure the network interface or firewall to detect and reject malformed AT+CGCONTRDP responses, or implement stricter AT parser limits to mitigate potential overflow attempts.
  • Plan and execute a schedule to deploy the patch or update firmware across all affected devices, ensuring the fix is applied in a timely manner.

Generated by OpenCVE AI on August 20, 2026 at 08:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 20 Aug 2026 01:15:00 +0000

Type Values Removed Values Added
First Time appeared Zephyrproject
Zephyrproject zephyr
Vendors & Products Zephyrproject
Zephyrproject zephyr

Wed, 19 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
Description 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.
Title Stack buffer overflow in Zephyr hl7800 modem driver parsing network-supplied +CGCONTRDP address fields
Weaknesses CWE-787
References
Metrics cvssV3_1

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


Subscriptions

Zephyrproject Zephyr
cve-icon MITRE

Status: PUBLISHED

Assigner: zephyr

Published:

Updated: 2026-08-20T15:26:33.628Z

Reserved: 2026-06-17T12:59:14.964Z

Link: CVE-2026-12522

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-08-19T21:16:53.507

Modified: 2026-08-26T16:59:23.267

Link: CVE-2026-12522

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-20T08:45:12Z

Weaknesses