Mongoose: handle_opt() missing opts[1] > len check โ 1-byte OOB read corrupts TCP MSS, silences mg_send() per connection
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, 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.
Text from CVE List
Affected versions 1
- mongooseaffected: < 7.23CVE List