// For flags

CVE-2022-31081

Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling') in HTTP::Daemon

Severity Score

6.5
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

1
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

-
*SSVC
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

*Credits: N/A
CVSS Scores
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
Low
Attack Vector
Network
Attack Complexity
Low
Authentication
None
Confidentiality
Partial
Integrity
Partial
Availability
None
* Common Vulnerability Scoring System
SSVC
  • Decision:-
Exploitation
-
Automatable
-
Tech. Impact
-
* Organization's Worst-case Scenario
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
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