{"affected":[{"defaultStatus":"affected","ecosystem":"https://access.redhat.com/downloads/content/package-browser/","packageName":"libsoup3","product":"Red Hat Enterprise Linux 10","source":"CNA: redhat","vendor":"Red Hat","versions":[]},{"defaultStatus":"unknown","ecosystem":"https://access.redhat.com/downloads/content/package-browser/","packageName":"libsoup","product":"Red Hat Enterprise Linux 6","source":"CNA: redhat","vendor":"Red Hat","versions":[]},{"defaultStatus":"affected","ecosystem":"https://access.redhat.com/downloads/content/package-browser/","packageName":"libsoup","product":"Red Hat Enterprise Linux 7","source":"CNA: redhat","vendor":"Red Hat","versions":[]},{"defaultStatus":"affected","ecosystem":"https://access.redhat.com/downloads/content/package-browser/","packageName":"libsoup","product":"Red Hat Enterprise Linux 8","source":"CNA: redhat","vendor":"Red Hat","versions":[]},{"defaultStatus":"affected","ecosystem":"https://access.redhat.com/downloads/content/package-browser/","packageName":"libsoup","product":"Red Hat Enterprise Linux 9","source":"CNA: redhat","vendor":"Red Hat","versions":[]}],"cveId":"CVE-2026-103399","cwes":["CWE-444"],"description":"A flaw was found in SoupServer (libsoup). When an HTTP/1.x client sends a request with Expect: 100-continue and a request body, and SoupServer returns an early final (non-1xx) response before the body is read, the server neither drains the declared body bytes nor closes the connection. On a keep-alive connection, those leftover bytes are interpreted as a subsequent HTTP request. A remote, unauthenticated attacker can place a complete HTTP request in the body and cause SoupServer to process that smuggled request, leading to unintended request handling.","epss":{"date":"2026-11-02","percentile":0.15854,"score":0.00246},"exploits":[],"kev":null,"metrics":[{"score":5.3,"severity":"medium","source":"CNA: redhat","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","version":"3.1"}],"modifiedAt":1793671338770,"publishedAt":1790790151307,"references":[{"source":"CNA: redhat","tags":["vdb-entry","x_refsource_REDHAT"],"url":"https://access.redhat.com/security/cve/CVE-2026-103399"},{"source":"CNA: redhat","tags":["issue-tracking","x_refsource_REDHAT"],"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2543949"}],"remediation":[{"kind":"workaround","source":"CNA: redhat","text":"To mitigate this do not expose SoupServer to untrusted networks; prefer terminating proxies or internal-only listeners. If SoupServer must sit behind a reverse proxy, disable backend connection reuse/pooling across clients so an undrained body cannot prepend to another client's request."}],"revision":"c43ee13c2aa4e80b3ddac6c8c3e88d6e358624981ae28d225c9ea5b5ceecfd52","sources":[{"modifiedAt":1793671338770,"name":"CNA: redhat","retrievedAt":1793675298252,"url":"https://www.cve.org/CVERecord?id=CVE-2026-103399"},{"modifiedAt":null,"name":"FIRST EPSS","retrievedAt":1793675304540,"url":"https://api.first.org/data/v1/epss?cve=CVE-2026-103399"}],"ssvc":{"assessedAt":1790795459353,"automatable":"yes","exploitation":"none","source":"ADP: CISA-ADP","technicalImpact":"partial"},"status":"published","title":"Libsoup: soupserver: http/1 request smuggling via undrained expect: 100-continue body","updatedAt":1793675304540}