CVE-2022-31081
Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling') in HTTP::Daemon
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
1Exploited in Wild
-Decision
Descriptions
HTTP::Daemon is a simple http server class written in perl. Versions prior to 6.15 are subject to a vulnerability which could potentially be exploited to gain privileged access to APIs or poison intermediate caches. It is uncertain how large the risks are, most Perl based applications are served on top of Nginx or Apache, not on the `HTTP::Daemon`. This library is commonly used for local development and tests. Users are advised to update to resolve this issue. Users unable to upgrade may add additional request handling logic as a mitigation. After calling `my $rqst = $conn->get_request()` one could inspect the returned `HTTP::Request` object. Querying the 'Content-Length' (`my $cl = $rqst->header('Content-Length')`) will show any abnormalities that should be dealt with by a `400` response. Expected strings of 'Content-Length' SHOULD consist of either a single non-negative integer, or, a comma separated repetition of that number. (that is `42` or `42, 42, 42`). Anything else MUST be rejected.
HTTP::Daemon es una clase simple de servidor http escrita en perl. Las versiones anteriores a 6.15 están sujetas a una vulnerabilidad que podría ser explotada para conseguir acceso privilegiado a las API o envenenar las cachés intermedias. No es sabido con certeza la magnitud de los riesgos, la mayoría de las aplicaciones basadas en Perl son servidas sobre Nginx o Apache, no sobre el "HTTP::Daemon". Esta biblioteca es usada habitualmente para el desarrollo local y las pruebas. Es recomendado a usuarios actualizar para resolver este problema. Los usuarios que no puedan actualizar pueden añadir una lógica de administración de peticiones adicional como mitigación. Tras llamar a "my $rqst = $conn-)get_request()" podía inspeccionarse el objeto "HTTP::Request" devuelto. Consultando el "Content-Length" ("my $cl = $rqst-)header("Content-Length")") mostrará cualquier anormalidad que deba ser tratada con una respuesta "400". Las cadenas esperadas de "Content-Length" DEBERÍAN consistir en un único número entero no negativo, o bien, una repetición separada por comas de ese número. (es decir, "42" o "42, 42, 42"). Cualquier otra cosa DEBE ser rechazada
CVSS Scores
SSVC
- Decision:-
Timeline
- 2022-05-18 CVE Reserved
- 2022-06-27 CVE Published
- 2024-08-03 CVE Updated
- 2024-08-03 First Exploit
- 2024-09-18 EPSS Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
CWE
- CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
CAPEC
References (11)
URL | Tag | Source |
---|---|---|
https://cwe.mitre.org/data/definitions/444.html | Third Party Advisory | |
https://datatracker.ietf.org/doc/html/rfc7230#section-9.5 | Third Party Advisory | |
https://lists.debian.org/debian-lts-announce/2022/09/msg00038.html | Mailing List |
URL | Date | SRC |
---|---|---|
https://portswigger.net/research/http-desync-attacks-request-smuggling-reborn | 2024-08-03 |
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Http::daemon Project Search vendor "Http::daemon Project" | Http::daemon Search vendor "Http::daemon Project" for product "Http::daemon" | < 6.15 Search vendor "Http::daemon Project" for product "Http::daemon" and version " < 6.15" | - |
Affected
| ||||||
Debian Search vendor "Debian" | Debian Linux Search vendor "Debian" for product "Debian Linux" | 10.0 Search vendor "Debian" for product "Debian Linux" and version "10.0" | - |
Affected
|