FKIE_CVE-2026-2835
Vulnerability from fkie_nvd - Published: 2026-03-05 00:15 - Updated: 2026-03-12 15:06
Severity ?
Summary
An HTTP Request Smuggling vulnerability (CWE-444) has been found in Pingora's parsing of HTTP/1.0 and Transfer-Encoding requests. The issue occurs due to improperly allowing HTTP/1.0 request bodies to be close-delimited and incorrect handling of multiple Transfer-Encoding values, allowing attackers to send HTTP/1.0 requests in a way that would desync Pingora’s request framing from backend servers’.
Impact
This vulnerability primarily affects standalone Pingora deployments in front of certain backends that accept HTTP/1.0 requests. An attacker could craft a malicious payload following this request that Pingora forwards to the backend in order to:
* Bypass proxy-level ACL controls and WAF logic
* Poison caches and upstream connections, causing subsequent requests from legitimate users to receive responses intended for smuggled requests
* Perform cross-user attacks by hijacking sessions or smuggling requests that appear to originate from the trusted proxy IP
Cloudflare's CDN infrastructure was not affected by this vulnerability, as its ingress proxy layers forwarded HTTP/1.1 requests only, rejected ambiguous framing such as invalid Content-Length values, and forwarded a single Transfer-Encoding: chunked header for chunked requests.
Mitigation:
Pingora users should upgrade to Pingora v0.8.0 or higher that fixes this issue by correctly parsing message length headers per RFC 9112 and strictly adhering to more RFC guidelines, including that HTTP request bodies are never close-delimited.
As a workaround, users can reject certain requests with an error in the request filter logic in order to stop processing bytes on the connection and disable downstream connection reuse. The user should reject any non-HTTP/1.1 request, or a request that has invalid Content-Length, multiple Transfer-Encoding headers, or Transfer-Encoding header that is not an exact “chunked” string match.
References
| URL | Tags | ||
|---|---|---|---|
| cna@cloudflare.com | https://github.com/cloudflare/pingora | Product |
Impacted products
| Vendor | Product | Version | |
|---|---|---|---|
| cloudflare | pingora | * |
{
"configurations": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:cloudflare:pingora:*:*:*:*:*:*:*:*",
"matchCriteriaId": "7FD8B659-5061-46DA-8A73-2E17D6298546",
"versionEndExcluding": "0.8.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "An HTTP Request Smuggling vulnerability (CWE-444) has been found in Pingora\u0027s parsing of HTTP/1.0 and Transfer-Encoding requests. The issue occurs due to improperly allowing HTTP/1.0 request bodies to be close-delimited and incorrect handling of multiple Transfer-Encoding values, allowing attackers to send HTTP/1.0 requests in a way that would desync Pingora\u2019s request framing from backend servers\u2019.\n\nImpact\n\nThis vulnerability primarily affects standalone Pingora deployments in front of certain backends that accept HTTP/1.0 requests. An attacker could craft a malicious payload following this request that Pingora forwards to the backend in order to:\n\n * Bypass proxy-level ACL controls and WAF logic\n\n\n\n\n * Poison caches and upstream connections, causing subsequent requests from legitimate users to receive responses intended for smuggled requests\n\n\n\n\n * Perform cross-user attacks by hijacking sessions or smuggling requests that appear to originate from the trusted proxy IP\n\n\n\n\nCloudflare\u0027s CDN infrastructure was not affected by this vulnerability, as its ingress proxy layers forwarded HTTP/1.1 requests only, rejected ambiguous framing such as invalid Content-Length values, and forwarded a single Transfer-Encoding: chunked header for chunked requests.\n\n\nMitigation:\n\nPingora users should upgrade to Pingora v0.8.0 or higher that fixes this issue by correctly parsing message length headers per RFC 9112 and strictly adhering to more RFC guidelines, including that HTTP request bodies are never close-delimited.\n\nAs a workaround, users can reject certain requests with an error in the request filter logic in order to stop processing bytes on the connection and disable downstream connection reuse. The user should reject any non-HTTP/1.1 request, or a request that has invalid Content-Length, multiple Transfer-Encoding headers, or Transfer-Encoding header that is not an exact \u201cchunked\u201d string match."
},
{
"lang": "es",
"value": "Una vulnerabilidad de contrabando de solicitudes HTTP (CWE-444) ha sido encontrada en el an\u00e1lisis de Pingora de solicitudes HTTP/1.0 y Transfer-Encoding. El problema ocurre debido a permitir incorrectamente que los cuerpos de solicitudes HTTP/1.0 sean delimitados por cierre y al manejo incorrecto de m\u00faltiples valores de Transfer-Encoding, permitiendo a los atacantes enviar solicitudes HTTP/1.0 de una manera que desincronizar\u00eda el encuadre de solicitudes de Pingora con el de los servidores backend.\n\nImpacto\n\nEsta vulnerabilidad afecta principalmente a implementaciones de Pingora independientes frente a ciertos backends que aceptan solicitudes HTTP/1.0. Un atacante podr\u00eda crear una carga \u00fatil maliciosa siguiendo esta solicitud que Pingora reenv\u00eda al backend con el fin de:\n\n * Omitir los controles ACL a nivel de proxy y la l\u00f3gica WAF\n\n * Envenenar cach\u00e9s y conexiones ascendentes, causando que solicitudes posteriores de usuarios leg\u00edtimos reciban respuestas destinadas a solicitudes de contrabando\n\n * Realizar ataques entre usuarios secuestrando sesiones o contrabandeando solicitudes que parecen originarse de la IP del proxy de confianza\n\nLa infraestructura CDN de Cloudflare no se vio afectada por esta vulnerabilidad, ya que sus capas de proxy de entrada solo reenviaban solicitudes HTTP/1.1, rechazaban el encuadre ambiguo, como valores Content-Length inv\u00e1lidos, y reenviaban un \u00fanico encabezado Transfer-Encoding: chunked para solicitudes chunked.\n\nMitigaci\u00f3n:\n\nLos usuarios de Pingora deber\u00edan actualizar a Pingora v0.8.0 o superior que corrige este problema analizando correctamente los encabezados de longitud de mensaje seg\u00fan RFC 9112 y adhiri\u00e9ndose estrictamente a m\u00e1s directrices de RFC, incluyendo que los cuerpos de solicitudes HTTP nunca son delimitados por cierre.\n\nComo soluci\u00f3n alternativa, los usuarios pueden rechazar ciertas solicitudes con un error en la l\u00f3gica del filtro de solicitudes con el fin de detener el procesamiento de bytes en la conexi\u00f3n y deshabilitar la reutilizaci\u00f3n de la conexi\u00f3n descendente. El usuario deber\u00eda rechazar cualquier solicitud que no sea HTTP/1.1, o una solicitud que tenga Content-Length inv\u00e1lido, m\u00faltiples encabezados Transfer-Encoding, o un encabezado Transfer-Encoding que no sea una coincidencia exacta de la cadena \u0027chunked\u0027."
}
],
"id": "CVE-2026-2835",
"lastModified": "2026-03-12T15:06:16.957",
"metrics": {
"cvssMetricV31": [
{
"cvssData": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
"version": "3.1"
},
"exploitabilityScore": 3.9,
"impactScore": 5.2,
"source": "nvd@nist.gov",
"type": "Primary"
}
],
"cvssMetricV40": [
{
"cvssData": {
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "NETWORK",
"availabilityRequirement": "NOT_DEFINED",
"baseScore": 9.3,
"baseSeverity": "CRITICAL",
"confidentialityRequirement": "NOT_DEFINED",
"exploitMaturity": "NOT_DEFINED",
"integrityRequirement": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"privilegesRequired": "NONE",
"providerUrgency": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "HIGH",
"subIntegrityImpact": "HIGH",
"userInteraction": "NONE",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:H/SI:H/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "NONE",
"vulnIntegrityImpact": "HIGH",
"vulnerabilityResponseEffort": "NOT_DEFINED"
},
"source": "cna@cloudflare.com",
"type": "Secondary"
}
]
},
"published": "2026-03-05T00:15:57.860",
"references": [
{
"source": "cna@cloudflare.com",
"tags": [
"Product"
],
"url": "https://github.com/cloudflare/pingora"
}
],
"sourceIdentifier": "cna@cloudflare.com",
"vulnStatus": "Analyzed",
"weaknesses": [
{
"description": [
{
"lang": "en",
"value": "CWE-444"
}
],
"source": "cna@cloudflare.com",
"type": "Secondary"
}
]
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…