CVE-2026-12520
Received Received - Intake

Stack Buffer Overflow in Sierra Wireless HL7800 Modem Driver

Vulnerability report for CVE-2026-12520, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-18

Last updated on: 2026-08-18

Assigner: Zephyr Project

Description

The Sierra Wireless HL7800 cellular modem driver (drivers/modem/vendor_standalone/hl7800.c, located at drivers/modem/hl7800.c in v4.4.0 and earlier) parses AT responses with roughly twenty handlers that call net_buf_linearize(value, sizeof(value), *buf, 0, len) into a 128-byte stack buffer and then write value[out_len] = 0. Because net_buf_linearize() (lib/net_buf/buf.c) can return a count equal to its destination-length argument, a field that exactly fills the buffer makes the terminating NUL land one byte past the end, a single-byte out-of-bounds write into adjacent stack memory. The +KCELLMEAS cell-measurement handler on_cmd_atcmdinfo_rssi() is worse: it passed the wire length len as the destination size (net_buf_linearize(value, len, *buf, 0, len)), so a response line longer than 128 bytes overflows the value stack buffer with attacker-influenceable content. The line length comes from net_buf_findcrlf(), which accumulates bytes across the whole net_buf fragment chain and is not bounded to 128, so an over-long line reaches the defect. The data originates from the cellular modem over UART, driven by the network: operator-scan results, +CGCONTRDP IP/DNS info, socket indications, and +KCELLMEAS neighbour-cell reports. An attacker able to shape what the modem emits β€” a rogue base station, a compromised modem baseband, or a remote peer feeding oversized response framing β€” can drive a line past 128 bytes. The handlers run in the driver's RX thread in kernel context, so the corruption is kernel-side. The +KCELLMEAS path is a full stack buffer overflow whose worst case is code execution in kernel context and whose floor is a reliable crash; the remaining sites are single-byte NUL out-of-bounds writes. Exploitation requires the modem to emit an over-long AT response line, giving high attack complexity over an adjacent (cellular radio) vector. The fix passes sizeof(dst) - 1 (and correct explicit bounds for the IMSI and +KCELLMEAS sites) so the terminator always stays in bounds.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-18
Last Modified
2026-08-18
Generated
2026-08-19
AI Q&A
2026-08-18
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
sierra_wireless hl7800 to 4.4.0 (inc)
zephyrproject zephyr From 2.4.0 (inc) to 4.4.1 (inc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-787 The product writes data past the end, or before the beginning, of the intended buffer.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This is a stack buffer overflow vulnerability in the Sierra Wireless HL7800 cellular modem driver for Zephyr RTOS. It occurs when parsing AT modem responses using a 128-byte stack buffer. Improper bounds checking allows a response line exactly filling the buffer to cause a single-byte out-of-bounds write when adding a null terminator. A more severe case exists in the +KCELLMEAS handler where the destination buffer size is set to attacker-controlled response length, leading to full stack overflow.

The issue stems from net_buf_linearize() calls using incorrect sizes, causing the null terminator to land outside the buffer. Exploitation requires crafting oversized AT responses via rogue base stations, compromised modems, or malicious network peers. The driver runs in kernel context, making exploitation potentially lead to kernel code execution.

Detection Guidance

Detection requires checking for stack corruption or crashes in the HL7800 modem driver. Monitor kernel logs for driver crashes or stack overflow errors. Inspect AT command responses for lines exceeding 128 bytes, especially +KCELLMEAS responses. Use tools like dmesg or kernel debuggers to trace driver behavior during modem communication.

Impact Analysis

This vulnerability can cause driver crashes, stack corruption, or kernel code execution if exploited. Since the driver runs in kernel context, successful exploitation could compromise the entire system. Attackers need to craft oversized AT responses, which requires high attack complexity over an adjacent cellular radio vector.

Mitigation Strategies

Apply the official patch from Zephyr RTOS to fix buffer handling in the HL7800 driver. Update to a version of Zephyr RTOS that includes the fix (e.g., versions after 4.4.1). If patching is not immediately possible, disable the HL7800 modem driver or restrict modem communication to trusted networks to reduce attack surface.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-12520. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart