{"id":"CVE-2026-73256","aliases":["DEBIAN-CVE-2026-73256","EUVD-2026-63497","GHSA-mgp5-rjrv-h5j3","JLSEC-2026-1380","UBUNTU-CVE-2026-73256"],"status":"published","title":"Mongoose: HTTP/1.0 detection off-by-one enables request smuggling via chunked TE","description":"Mongoose is an embedded web server and network library. Prior to 7.22, a remote unauthenticated attacker can exploit an HTTP/1.0 reverse-proxy deployment by sending a request with Transfer-Encoding: chunked and conflicting framing. The http_cb() function in src/http.c tests hm.proto.len with an impossible greater-than-eight condition even though mg_http_parse() requires an eight-byte protocol string, so is_http_1_0 is never set. Mongoose consequently processes chunked encoding that an HTTP/1.0 proxy can ignore, enabling request smuggling and unauthorized access or state changes. This issue is fixed in version 7.22.","severity":{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00439,"percentile":0.38471,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-444"],"published":"2026-08-20T17:37:54Z","modified":"2026-11-04T02:47:50Z","fixes":[{"ecosystem":"Debian:14","package":"mongoose","fixed_in":["7.22+ds-1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Debian:14","package":"mongoose","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.22+ds-1"}]}],"versions":["7.21+ds-1","7.21+ds-1~bpo13+1","7.21+ds-2","7.22+ds-1~bpo13+1"]},{"source":"osv","ecosystem":"Julia","package":"Mongoose_jll","ranges":[{"type":"SEMVER","events":[{"introduced":"0"}]}]},{"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-mgp5-rjrv-h5j3","tags":["x_refsource_CONFIRM","Exploit","Vendor Advisory","advisory","web"]},{"url":"https://github.com/cesanta/mongoose/pull/3611","tags":["x_refsource_MISC","Issue Tracking","Patch","fix","web"]},{"url":"https://github.com/cesanta/mongoose/commit/a9df523f76f43a38bd53b4232b9cfd4c16869e71","tags":["x_refsource_MISC","Patch","fix","web"]},{"url":"https://github.com/cesanta/mongoose/releases/tag/7.22","tags":["x_refsource_MISC","Release Notes","web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/73xxx/CVE-2026-73256.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-73256","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-73256","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-73256","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-73256","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-73256","title":"Mongoose: HTTP/1.0 detection off-by-one enables request smuggling via chunked TE","description":"Mongoose is an embedded web server and network library. Prior to 7.22, a remote unauthenticated attacker can exploit an HTTP/1.0 reverse-proxy deployment by sending a request with Transfer-Encoding: chunked and conflicting framing. The http_cb() function in src/http.c tests hm.proto.len with an impossible greater-than-eight condition even though mg_http_parse() requires an eight-byte protocol string, so is_http_1_0 is never set. Mongoose consequently processes chunked encoding that an HTTP/1.0 proxy can ignore, enabling request smuggling and unauthorized access or state changes. This issue is fixed in version 7.22.","status":"published","published":"2026-08-20T17:37:54.505Z","modified":"2026-08-21T21:46:47.832Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"cna"}],"cwes":["CWE-444"],"updated_at":"2026-11-02T13:43:22.599321Z"}],"euvd":[{"id":"EUVD-2026-63497","description":"Mongoose is an embedded web server and network library. Prior to 7.22, a remote unauthenticated attacker can exploit an HTTP/1.0 reverse-proxy deployment by sending a request with Transfer-Encoding: chunked and conflicting framing. The http_cb() function in src/http.c tests hm.proto.len with an impossible greater-than-eight condition even though mg_http_parse() requires an eight-byte protocol string, so is_http_1_0 is never set. Mongoose consequently processes chunked encoding that an HTTP/1.0 proxy can ignore, enabling request smuggling and unauthorized access or state changes. This issue is fixed in version 7.22.","status":"published","published":"2026-08-20T17:37:54Z","modified":"2026-08-21T21:46:47Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"updated_at":"2026-11-02T18:01:36.505605Z"}],"nvd":[{"id":"CVE-2026-73256","description":"Mongoose is an embedded web server and network library. Prior to 7.22, a remote unauthenticated attacker can exploit an HTTP/1.0 reverse-proxy deployment by sending a request with Transfer-Encoding: chunked and conflicting framing. The http_cb() function in src/http.c tests hm.proto.len with an impossible greater-than-eight condition even though mg_http_parse() requires an eight-byte protocol string, so is_http_1_0 is never set. Mongoose consequently processes chunked encoding that an HTTP/1.0 proxy can ignore, enabling request smuggling and unauthorized access or state changes. This issue is fixed in version 7.22.","status":"published","published":"2026-08-20T18:16:46.523Z","modified":"2026-10-18T20:10:00.11Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"secondary"}],"cwes":["CWE-444"],"updated_at":"2026-11-02T14:12:40.302911Z"}],"osv":[{"id":"CVE-2026-73256","title":"Mongoose: HTTP/1.0 detection off-by-one enables request smuggling via chunked TE","description":"Mongoose is an embedded web server and network library. Prior to 7.22, a remote unauthenticated attacker can exploit an HTTP/1.0 reverse-proxy deployment by sending a request with Transfer-Encoding: chunked and conflicting framing. The http_cb() function in src/http.c tests hm.proto.len with an impossible greater-than-eight condition even though mg_http_parse() requires an eight-byte protocol string, so is_http_1_0 is never set. Mongoose consequently processes chunked encoding that an HTTP/1.0 proxy can ignore, enabling request smuggling and unauthorized access or state changes. This issue is fixed in version 7.22.","status":"published","published":"2026-08-20T17:37:54.505Z","modified":"2026-11-04T13:06:02.382699882Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"cwes":["CWE-444"],"updated_at":"2026-11-04T13:40:00.290922Z"},{"id":"DEBIAN-CVE-2026-73256","description":"Mongoose is an embedded web server and network library. Prior to 7.22, a remote unauthenticated attacker can exploit an HTTP/1.0 reverse-proxy deployment by sending a request with Transfer-Encoding: chunked and conflicting framing. The http_cb() function in src/http.c tests hm.proto.len with an impossible greater-than-eight condition even though mg_http_parse() requires an eight-byte protocol string, so is_http_1_0 is never set. Mongoose consequently processes chunked encoding that an HTTP/1.0 proxy can ignore, enabling request smuggling and unauthorized access or state changes. This issue is fixed in version 7.22.","status":"published","published":"2026-08-20T18:16:46.523Z","modified":"2026-10-23T17:47:42.535481046Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"updated_at":"2026-11-02T15:46:02.499355Z"},{"id":"JLSEC-2026-1380","description":"Mongoose is an embedded web server and network library. Prior to 7.22, a remote unauthenticated attacker can exploit an HTTP/1.0 reverse-proxy deployment by sending a request with Transfer-Encoding: chunked and conflicting framing. The `http_cb()` function in `src/http.c` tests hm.proto.len with an impossible greater-than-eight condition even though `mg_http_parse()` requires an eight-byte protocol string, so `is_http_1_0` is never set. Mongoose consequently processes chunked encoding that an HTTP/1.0 proxy can ignore, enabling request smuggling and unauthorized access or state changes. This issue is fixed in version 7.22.","status":"published","published":"2026-08-24T13:43:17.899Z","modified":"2026-08-24T14:00:03.434021661Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"updated_at":"2026-11-02T15:47:18.159338Z"},{"id":"UBUNTU-CVE-2026-73256","description":"Mongoose is an embedded web server and network library. Prior to 7.22, a remote unauthenticated attacker can exploit an HTTP/1.0 reverse-proxy deployment by sending a request with Transfer-Encoding: chunked and conflicting framing. The http_cb() function in src/http.c tests hm.proto.len with an impossible greater-than-eight condition even though mg_http_parse() requires an eight-byte protocol string, so is_http_1_0 is never set. Mongoose consequently processes chunked encoding that an HTTP/1.0 proxy can ignore, enabling request smuggling and unauthorized access or state changes. This issue is fixed in version 7.22.","status":"published","published":"2026-08-20T18:16:00Z","modified":"2026-10-17T13:01:01.762941207Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"updated_at":"2026-11-02T16:57:08.628462Z"}]}}
