Mongoose: Out-of-bounds Read via length-counter underflow in built-in TLS X.509 DER parser
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 TLS certificate parser selected by MG_TLS_BUILTIN fails to verify that a long-form DER element length fits within the remaining certificate buffer. In mg_der_to_tlv() and mg_der_next(), a peer-controlled length can advance the parser beyond the certificate and underflow the remaining uint32_t length, causing mg_tls_parse_cert_der() to continue walking an invalid pointer. An unauthenticated malicious TLS server, or a client presenting a certificate to a server configured for client certificates, can trigger an out-of-bounds read and denial of service during the handshake. This issue is fixed in version 7.23.
Text from CVE List
Affected versions 1
- mongooseaffected: < 7.23CVE List