CVE-2026-63626
8.8HighPublished 14 Oct 2026 · NVD status: Deferred · AI triage by gemini-3.8-flash
- Attack vector
- Adjacent network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
- Impact
- Full C/I/A compromise
- Weakness
- CWE-122, CWE-125
Impact
Adjacent unauthenticated attackers on a PPP or PPPoE link can crash the service, corrupt heap memory, or leak adjacent heap bytes. They need adjacent network access to finish an LCP exchange and send a malformed IPv6CP packet.
Root cause
The ppp_handle_ipv6cp() function accepts the 16-bit length header without validating it against the actual received payload size, causing heap out-of-bounds reads and writes.
Affected systems
Mongoose prior to 7.23 with MG_ENABLE_TCPIP and MG_ENABLE_IPV6 enabled
CVSS v3.1 · CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Fix & remediation
Upgrade Mongoose to version 7.23 or newer. If you cannot immediately patch, disable PPP/PPPoE links or recompile with IPv6 disabled (unset MG_ENABLE_IPV6).
AI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD description
Mongoose is an embedded web server and network library. Prior to 7.23, ppp_handle_ipv6cp() in src/l2_ppp.c trusts the 16-bit IPv6CP len field without checking it against the received payload size. On a PPP or PPPoE link using MG_ENABLE_TCPIP and MG_ENABLE_IPV6, an unauthenticated adjacent peer can complete the required LCP exchange and send a short Configure-Request with an oversized length, causing ppp_tx_frame() to read beyond recv_queue.buf and write beyond tx.buf. The same length misuse can also expose adjacent heap bytes in a reply or hang the event loop through find_opt(). This issue is fixed in version 7.23.