{"id":"CVE-2026-73261","aliases":["DEBIAN-CVE-2026-73261","EUVD-2026-101598","GHSA-3fmr-92g4-wchx","UBUNTU-CVE-2026-73261"],"status":"published","title":"Mongoose: handle_opt() missing opts[1] \u003e len check — 1-byte OOB read corrupts TCP MSS, silences mg_send() per connection","description":"Mongoose is an embedded web server and network library. Prior to 7.23, the built-in TCP/IP stack enabled by MG_ENABLE_TCPIP in src/net_builtin.c does not reject a TCP option whose declared opts[1] length exceeds the remaining option bytes. In handle_opt(), a NOP followed by a truncated MSS option causes opts[3] to be read outside the declared options area and used as the low byte of dmss. An unauthenticated remote peer can corrupt the per-connection MSS value so later mg_send() calls transmit truncated or zero-length application payloads while the TCP connection otherwise appears healthy. This issue is fixed in version 7.23.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.00417,"percentile":0.36322,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-125","CWE-20"],"published":"2026-10-14T18:25:41Z","modified":"2026-10-31T07:10:20Z","fixes":[{"ecosystem":"Debian:14","package":"mongoose","fixed_in":["7.23+ds-1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Debian:14","package":"mongoose","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.23+ds-1"}]}],"versions":["7.21+ds-1","7.21+ds-1~bpo13+1","7.21+ds-2","7.22+ds-1","7.22+ds-1~bpo13+1","7.23+ds-1~bpo13+1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"mongoose","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["7.21+ds-1","7.21+ds-2","7.22+ds-1","7.23+ds-1"]}],"products":[{"vendor":"automattic","product":"mongoose"},{"vendor":"cesanta","product":"mongoose"}],"references":[{"url":"https://github.com/cesanta/mongoose/security/advisories/GHSA-3fmr-92g4-wchx","tags":["x_refsource_CONFIRM","exploit","advisory"]},{"url":"https://github.com/cesanta/mongoose/commit/cc7c6d2d18c28fcc6d085633dddd88402946140a","tags":["x_refsource_MISC","fix"]},{"url":"https://github.com/cesanta/mongoose/releases/tag/7.23","tags":["x_refsource_MISC","web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/73xxx/CVE-2026-73261.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-73261","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-73261","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-73261","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-73261","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-73261","title":"Mongoose: handle_opt() missing opts[1] \u003e len check — 1-byte OOB read corrupts TCP MSS, silences mg_send() per connection","description":"Mongoose is an embedded web server and network library. Prior to 7.23, the built-in TCP/IP stack enabled by MG_ENABLE_TCPIP in src/net_builtin.c does not reject a TCP option whose declared opts[1] length exceeds the remaining option bytes. In handle_opt(), a NOP followed by a truncated MSS option causes opts[3] to be read outside the declared options area and used as the low byte of dmss. An unauthenticated remote peer can corrupt the per-connection MSS value so later mg_send() calls transmit truncated or zero-length application payloads while the TCP connection otherwise appears healthy. This issue is fixed in version 7.23.","status":"published","published":"2026-10-14T18:25:41.102Z","modified":"2026-10-29T13:46:18.474Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-20","CWE-125"],"updated_at":"2026-11-02T13:43:33.766176Z"}],"euvd":[{"id":"EUVD-2026-101598","description":"Mongoose is an embedded web server and network library. Prior to 7.23, the built-in TCP/IP stack enabled by MG_ENABLE_TCPIP in src/net_builtin.c does not reject a TCP option whose declared opts[1] length exceeds the remaining option bytes. In handle_opt(), a NOP followed by a truncated MSS option causes opts[3] to be read outside the declared options area and used as the low byte of dmss. An unauthenticated remote peer can corrupt the per-connection MSS value so later mg_send() calls transmit truncated or zero-length application payloads while the TCP connection otherwise appears healthy. This issue is fixed in version 7.23.","status":"published","published":"2026-10-14T18:25:41Z","modified":"2026-10-29T13:46:18Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T16:59:16.484344Z"}],"nvd":[{"id":"CVE-2026-73261","description":"Mongoose is an embedded web server and network library. Prior to 7.23, the built-in TCP/IP stack enabled by MG_ENABLE_TCPIP in src/net_builtin.c does not reject a TCP option whose declared opts[1] length exceeds the remaining option bytes. In handle_opt(), a NOP followed by a truncated MSS option causes opts[3] to be read outside the declared options area and used as the low byte of dmss. An unauthenticated remote peer can corrupt the per-connection MSS value so later mg_send() calls transmit truncated or zero-length application payloads while the TCP connection otherwise appears healthy. This issue is fixed in version 7.23.","status":"published","published":"2026-10-14T19:17:19.99Z","modified":"2026-10-29T14:17:59.13Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-20","CWE-125"],"updated_at":"2026-11-02T14:12:59.328869Z"}],"osv":[{"id":"CVE-2026-73261","title":"Mongoose: handle_opt() missing opts[1] \u003e len check — 1-byte OOB read corrupts TCP MSS, silences mg_send() per connection","description":"Mongoose is an embedded web server and network library. Prior to 7.23, the built-in TCP/IP stack enabled by MG_ENABLE_TCPIP in src/net_builtin.c does not reject a TCP option whose declared opts[1] length exceeds the remaining option bytes. In handle_opt(), a NOP followed by a truncated MSS option causes opts[3] to be read outside the declared options area and used as the low byte of dmss. An unauthenticated remote peer can corrupt the per-connection MSS value so later mg_send() calls transmit truncated or zero-length application payloads while the TCP connection otherwise appears healthy. This issue is fixed in version 7.23.","status":"published","published":"2026-10-14T18:25:41.102Z","modified":"2026-10-31T07:10:20.491705542Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-125","CWE-20"],"updated_at":"2026-11-02T15:45:16.365946Z"},{"id":"DEBIAN-CVE-2026-73261","description":"Mongoose is an embedded web server and network library. Prior to 7.23, the built-in TCP/IP stack enabled by MG_ENABLE_TCPIP in src/net_builtin.c does not reject a TCP option whose declared opts[1] length exceeds the remaining option bytes. In handle_opt(), a NOP followed by a truncated MSS option causes opts[3] to be read outside the declared options area and used as the low byte of dmss. An unauthenticated remote peer can corrupt the per-connection MSS value so later mg_send() calls transmit truncated or zero-length application payloads while the TCP connection otherwise appears healthy. This issue is fixed in version 7.23.","status":"published","published":"2026-10-14T19:17:19.99Z","modified":"2026-10-30T09:49:13.38100914Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:46:02.499355Z"},{"id":"UBUNTU-CVE-2026-73261","description":"Mongoose is an embedded web server and network library. Prior to 7.23, the built-in TCP/IP stack enabled by MG_ENABLE_TCPIP in src/net_builtin.c does not reject a TCP option whose declared opts[1] length exceeds the remaining option bytes. In handle_opt(), a NOP followed by a truncated MSS option causes opts[3] to be read outside the declared options area and used as the low byte of dmss. An unauthenticated remote peer can corrupt the per-connection MSS value so later mg_send() calls transmit truncated or zero-length application payloads while the TCP connection otherwise appears healthy. This issue is fixed in version 7.23.","status":"published","published":"2026-10-14T19:17:00Z","modified":"2026-10-28T20:17:48.109103512Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T16:57:08.628462Z"}]}}
