Mongoose: ppp_handle_ipv6cp() uses attacker-controlled length without bounds check โ OOB read and heap overflow (PPP/PPPoE, MG_ENABLE_IPV6)
What fixes it
No source in this snapshot names a fixed version. The vendor advisories under References are the place to check.
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.
Text from CVE List
Affected versions 1
- mongooseaffected: < 7.23CVE List