« Volver al listado

CVE-2026-23941

Estado: ModificadaAlta (7)—

Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling') vulnerability in Erlang OTP (inets httpd module) allows HTTP Request Smuggling.

This vulnerability is associated with program files lib/inets/src/http_server/httpd_request.erl and program routines httpd_request:parse_headers/7.

The server does not reject or normalize duplicate Content-Length headers. The earliest Content-Length in the request is used for body parsing while common reverse proxies (nginx, Apache httpd, Envoy) honor the last Content-Length value. This violates RFC 9112 Section 6.3 and allows front-end/back-end desynchronization, leaving attacker-controlled bytes queued as the start of the next request.

Leer descripción completaMostrar menos

This issue affects OTP from OTP 17.0 before OTP 28.4.1, OTP 27.3.4.9 and OTP 26.2.5.18, corresponding to inets from 5.10 before 9.6.1, 9.3.2.3 and 9.1.0.5.

CVSS

Probabilidad de explotación (EPSS)

EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).

🎯 Técnicas ATT&CK

Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.

Vulnerabilidad remota de desincronización HTTP (CWE-444) en servidor web sin autenticación (PR:N, UI:N). El atacante inyecta headers duplicados Content-Length para manipular la interpretación del cuerpo y ejecutar comandos en el servidor back-end a través de desincronización front-end/back-end.

Inferido por nuestro agente de análisis a partir de la descripción oficial, el vector CVSS y la CWE, y comprobado por un supervisor. Puede contener errores.

🛡️ Mitigaciones ATT&CK que cubren estas técnicas

Tecnologías afectadas (2)

CWE

Referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-23941",
  "cveTags": [],
  "metrics": {
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "id": "CVE-2026-23941",
          "role": "CISA Coordinator",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "version": "2.0.3",
          "timestamp": "2026-03-13T16:00:50.466386Z"
        }
      }
    ],
    "cvssMetricV31": [
      {
        "type": "Primary",
        "source": "nvd@nist.gov",
        "cvssData": {
          "scope": "UNCHANGED",
          "version": "3.1",
          "baseScore": 9.4,
          "attackVector": "NETWORK",
          "baseSeverity": "CRITICAL",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L",
          "integrityImpact": "HIGH",
          "userInteraction": "NONE",
          "attackComplexity": "LOW",
          "availabilityImpact": "LOW",
          "privilegesRequired": "NONE",
          "confidentialityImpact": "HIGH"
        },
        "impactScore": 5.5,
        "exploitabilityScore": 3.9
      }
    ],
    "cvssMetricV40": [
      {
        "type": "Secondary",
        "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "cvssData": {
          "Safety": "NOT_DEFINED",
          "version": "4.0",
          "Recovery": "NOT_DEFINED",
          "baseScore": 7,
          "Automatable": "NOT_DEFINED",
          "attackVector": "NETWORK",
          "baseSeverity": "HIGH",
          "valueDensity": "NOT_DEFINED",
          "vectorString": "CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:L/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",
          "exploitMaturity": "NOT_DEFINED",
          "providerUrgency": "NOT_DEFINED",
          "userInteraction": "NONE",
          "attackComplexity": "HIGH",
          "attackRequirements": "PRESENT",
          "privilegesRequired": "NONE",
          "subIntegrityImpact": "HIGH",
          "vulnIntegrityImpact": "NONE",
          "integrityRequirement": "NOT_DEFINED",
          "modifiedAttackVector": "NOT_DEFINED",
          "subAvailabilityImpact": "LOW",
          "vulnAvailabilityImpact": "NONE",
          "availabilityRequirement": "NOT_DEFINED",
          "modifiedUserInteraction": "NOT_DEFINED",
          "modifiedAttackComplexity": "NOT_DEFINED",
          "subConfidentialityImpact": "HIGH",
          "vulnConfidentialityImpact": "NONE",
          "confidentialityRequirement": "NOT_DEFINED",
          "modifiedAttackRequirements": "NOT_DEFINED",
          "modifiedPrivilegesRequired": "NOT_DEFINED",
          "modifiedSubIntegrityImpact": "NOT_DEFINED",
          "modifiedVulnIntegrityImpact": "NOT_DEFINED",
          "vulnerabilityResponseEffort": "NOT_DEFINED",
          "modifiedSubAvailabilityImpact": "NOT_DEFINED",
          "modifiedVulnAvailabilityImpact": "NOT_DEFINED",
          "modifiedSubConfidentialityImpact": "NOT_DEFINED",
          "modifiedVulnConfidentialityImpact": "NOT_DEFINED"
        }
      }
    ]
  },
  "affected": [
    {
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
      "affectedData": [
        {
          "cpes": [
            "cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*"
          ],
          "repo": "https://github.com/erlang/otp",
          "vendor": "Erlang",
          "modules": [
            "httpd_request"
          ],
          "product": "OTP",
          "versions": [
            {
              "status": "affected",
              "changes": [
                {
                  "at": "9.6.1",
                  "status": "unaffected"
                },
                {
                  "at": "9.3.2.3",
                  "status": "unaffected"
                },
                {
                  "at": "9.1.0.5",
                  "status": "unaffected"
                }
              ],
              "version": "5.10",
              "lessThan": "*",
              "versionType": "otp"
            }
          ],
          "packageURL": "pkg:otp/inets?repository_url=https:%2F%2Fgithub.com%2Ferlang%2Fotp&vcs_url=git%20https:%2F%2Fgithub.com%2Ferlang%2Fotp.git",
          "packageName": "inets",
          "programFiles": [
            "src/http_server/httpd_request.erl"
          ],
          "defaultStatus": "unknown",
          "programRoutines": [
            {
              "name": "httpd_request:parse_headers/7"
            }
          ]
        },
        {
          "cpes": [
            "cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*"
          ],
          "repo": "https://github.com/erlang/otp",
          "vendor": "Erlang",
          "modules": [
            "httpd_request"
          ],
          "product": "OTP",
          "versions": [
            {
              "status": "affected",
              "changes": [
                {
                  "at": "28.4.1",
                  "status": "unaffected"
                },
                {
                  "at": "27.3.4.9",
                  "status": "unaffected"
                },
                {
                  "at": "26.2.5.18",
                  "status": "unaffected"
                }
              ],
              "version": "17.0",
              "lessThan": "*",
              "versionType": "otp"
            },
            {
              "status": "affected",
              "changes": [
                {
                  "at": "a4b46336fd25aa100ac602eb9a627aaead7eda18",
                  "status": "unaffected"
                },
                {
                  "at": "a761d391d8d08316cbd7d4a86733ba932b73c45b",
                  "status": "unaffected"
                },
                {
                  "at": "e775a332f623851385ab6ddb866d9b150612ddf6",
                  "status": "unaffected"
                }
              ],
              "version": "84adefa331c4159d432d22840663c38f155cd4c1",
              "lessThan": "*",
              "versionType": "git"
            }
          ],
          "packageURL": "pkg:github/erlang/otp",
          "packageName": "erlang/otp",
          "programFiles": [
            "lib/inets/src/http_server/httpd_request.erl"
          ],
          "collectionURL": "https://github.com",
          "defaultStatus": "unknown",
          "programRoutines": [
            {
              "name": "httpd_request:parse_headers/7"
            }
          ]
        }
      ]
    }
  ],
  "published": "2026-03-13T19:54:15.237",
  "references": [
    {
      "url": "https://cna.erlef.org/cves/CVE-2026-23941.html",
      "tags": [
        "Vendor Advisory"
      ],
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    },
    {
      "url": "https://github.com/erlang/otp/commit/a4b46336fd25aa100ac602eb9a627aaead7eda18",
      "tags": [
        "Patch"
      ],
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    },
    {
      "url": "https://github.com/erlang/otp/commit/a761d391d8d08316cbd7d4a86733ba932b73c45b",
      "tags": [
        "Patch"
      ],
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    },
    {
      "url": "https://github.com/erlang/otp/commit/e775a332f623851385ab6ddb866d9b150612ddf6",
      "tags": [
        "Patch"
      ],
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    },
    {
      "url": "https://github.com/erlang/otp/security/advisories/GHSA-w4jc-9wpv-pqh7",
      "tags": [
        "Vendor Advisory"
      ],
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    },
    {
      "url": "https://osv.dev/vulnerability/EEF-CVE-2026-23941",
      "tags": [
        "Third Party Advisory"
      ],
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    },
    {
      "url": "https://www.erlang.org/doc/system/versions.html#order-of-versions",
      "tags": [
        "Product"
      ],
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    }
  ],
  "vulnStatus": "Modified",
  "weaknesses": [
    {
      "type": "Secondary",
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
      "description": [
        {
          "lang": "en",
          "value": "CWE-444"
        }
      ]
    }
  ],
  "descriptions": [
    {
      "lang": "en",
      "value": "Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling') vulnerability in Erlang OTP (inets httpd module) allows HTTP Request Smuggling.\n\nThis vulnerability is associated with program files lib/inets/src/http_server/httpd_request.erl and program routines httpd_request:parse_headers/7.\n\nThe server does not reject or normalize duplicate Content-Length headers. The earliest Content-Length in the request is used for body parsing while common reverse proxies (nginx, Apache httpd, Envoy) honor the last Content-Length value. This violates RFC 9112 Section 6.3 and allows front-end/back-end desynchronization, leaving attacker-controlled bytes queued as the start of the next request.\n\nThis issue affects OTP from OTP 17.0 before OTP 28.4.1, OTP 27.3.4.9 and OTP 26.2.5.18, corresponding to inets from 5.10 before 9.6.1, 9.3.2.3 and 9.1.0.5."
    },
    {
      "lang": "es",
      "value": "La vulnerabilidad de Interpretación inconsistente de solicitudes HTTP ('Contrabando de solicitudes HTTP') en Erlang OTP (módulo inets httpd) permite el contrabando de solicitudes HTTP.\n\nEsta vulnerabilidad está asociada con los archivos de programa lib/inets/src/http_server/httpd_request.erl y las rutinas de programa httpd_request:parse_headers/7.\n\nEl servidor no rechaza ni normaliza los encabezados Content-Length duplicados. El Content-Length más temprano en la solicitud se utiliza para el análisis del cuerpo, mientras que los proxies inversos comunes (nginx, Apache httpd, Envoy) respetan el último valor de Content-Length. Esto viola la Sección 6.3 de RFC 9112 y permite la desincronización front-end/back-end, dejando bytes controlados por el atacante en cola como el inicio de la siguiente solicitud.\n\nEste problema afecta a OTP desde OTP 17.0 hasta OTP 28.4.1, OTP 27.3.4.9 y OTP 26.2.5.18, lo que corresponde a inets desde 5.10 hasta 9.6.1, 9.3.2.3 y 9.1.0.5."
    }
  ],
  "lastModified": "2026-07-24T15:17:14.157",
  "configurations": [
    {
      "nodes": [
        {
          "negate": false,
          "cpeMatch": [
            {
              "criteria": "cpe:2.3:a:erlang:erlang\\/inets:*:*:*:*:*:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "51F23E56-D6A0-4406-BF11-862502FAFE38",
              "versionEndExcluding": "9.1.0.5",
              "versionStartIncluding": "5.10"
            },
            {
              "criteria": "cpe:2.3:a:erlang:erlang\\/inets:*:*:*:*:*:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "61E04989-9259-49AF-866D-98385A3A1EA0",
              "versionEndExcluding": "9.3.2.3",
              "versionStartIncluding": "9.3"
            },
            {
              "criteria": "cpe:2.3:a:erlang:erlang\\/inets:*:*:*:*:*:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "D2EA5EC1-0077-459E-A77C-A5CE93AF737D",
              "versionEndExcluding": "9.6.1",
              "versionStartIncluding": "9.6"
            },
            {
              "criteria": "cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "6241E245-67D2-4FA6-83FE-4E9A4A07B3D1",
              "versionEndExcluding": "26.2.5.18",
              "versionStartIncluding": "17.0"
            },
            {
              "criteria": "cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "BE60BA92-431E-4DE3-A1C1-E8976E3A6BA7",
              "versionEndExcluding": "27.3.4.9",
              "versionStartIncluding": "27.0"
            },
            {
              "criteria": "cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "B8D9E80B-CA20-423A-A1A8-DEBB99D82BDB",
              "versionEndExcluding": "28.4.1",
              "versionStartIncluding": "28.0"
            }
          ],
          "operator": "OR"
        }
      ]
    }
  ],
  "sourceIdentifier": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
}