← Back to CVE Explorer

CVE-2026-59246

Full vulnerability record from the local CVENow database.

Description

Allocation of resources without limits vulnerability in elixir-mint mint allows a remote HTTP/2 server to exhaust memory on the client host and cause a denial of service. The Mint.HTTP2.handle_continuation/3 function in lib/mint/http2.ex accumulates the header-block fragment carried by each HTTP/2 CONTINUATION frame into a growing conn.headers_being_processed nesting, one level deeper per frame, and only releases it when a frame with the END_HEADERS flag arrives. The only guard on this accumulator is Mint.HTTP2.assert_header_block_within_max_size/2, which sums the byte size of the fragments received so far. Because a CONTINUATION frame is permitted by the protocol to carry a zero-length payload, an unbounded chain of zero-length CONTINUATION frames adds no bytes to the running total, never trips the size cap, and never emits END_HEADERS, yet each frame still nests the accumulator one level deeper. A malicious HTTP/2 server (reachable directly, via an attacker-controlled redirect, via SSRF, or via a man-in-the-middle) can open a stream by sending a HEADERS frame without END_HEADERS and then stream zero-length CONTINUATION frames indefinitely. Client memory grows one cons cell per frame received; sustained bandwidth from the peer drives the BEAM node running the Mint client to memory exhaustion and eventual out-of-memory termination. This issue affects mint: from 0.1.0 before 1.9.2.

Severity
MEDIUM
CVSS score
6.3 (v4.0)
Vulnerability status
Deferred
Source identifier
6b3ad84c-e1a6-4bf7-a703-f496b71e49db
Published
2026-07-14 09:16:41.727000
Last modified
2026-10-24 21:10:00.130000
View original CVE JSON
{
  "id": "CVE-2026-59246",
  "sourceIdentifier": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
  "published": "2026-07-14T09:16:41.727",
  "lastModified": "2026-10-24T21:10:00.130",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "Allocation of resources without limits vulnerability in elixir-mint mint allows a remote HTTP/2 server to exhaust memory on the client host and cause a denial of service.\n\nThe Mint.HTTP2.handle_continuation/3 function in lib/mint/http2.ex accumulates the header-block fragment carried by each HTTP/2 CONTINUATION frame into a growing conn.headers_being_processed nesting, one level deeper per frame, and only releases it when a frame with the END_HEADERS flag arrives. The only guard on this accumulator is Mint.HTTP2.assert_header_block_within_max_size/2, which sums the byte size of the fragments received so far. Because a CONTINUATION frame is permitted by the protocol to carry a zero-length payload, an unbounded chain of zero-length CONTINUATION frames adds no bytes to the running total, never trips the size cap, and never emits END_HEADERS, yet each frame still nests the accumulator one level deeper.\n\nA malicious HTTP/2 server (reachable directly, via an attacker-controlled redirect, via SSRF, or via a man-in-the-middle) can open a stream by sending a HEADERS frame without END_HEADERS and then stream zero-length CONTINUATION frames indefinitely. Client memory grows one cons cell per frame received; sustained bandwidth from the peer drives the BEAM node running the Mint client to memory exhaustion and eventual out-of-memory termination.\n\nThis issue affects mint: from 0.1.0 before 1.9.2."
    },
    {
      "lang": "es",
      "value": "La vulnerabilidad de asignación de recursos sin límites en elixir-mint mint permite a un servidor HTTP/2 remoto agotar la memoria en el host del cliente y causar una denegación de servicio.\n\nLa función Mint.HTTP2.handle_continuation/3 en lib/mint/http2.ex acumula el fragmento de bloque de encabezado transportado por cada trama CONTINUATION de HTTP/2 en un anidamiento creciente de conn.headers_being_processed, un nivel más profundo por trama, y solo lo libera cuando llega una trama con la bandera END_HEADERS. La única protección en este acumulador es Mint.HTTP2.assert_header_block_within_max_size/2, que suma el tamaño en bytes de los fragmentos recibidos hasta el momento. Debido a que una trama CONTINUATION está permitida por el protocolo para transportar una carga útil de longitud cero, una cadena ilimitada de tramas CONTINUATION de longitud cero no añade bytes al total acumulado, nunca supera el límite de tamaño y nunca emite END_HEADERS, sin embargo, cada trama anida el acumulador un nivel más profundo.\n\nUn servidor HTTP/2 malicioso (accesible directamente, a través de una redirección controlada por un atacante, a través de SSRF, o a través de un man-in-the-middle) puede abrir un flujo enviando una trama HEADERS sin END_HEADERS y luego transmitir tramas CONTINUATION de longitud cero indefinidamente. La memoria del cliente crece una celda cons por cada trama recibida; el ancho de banda sostenido del par lleva al nodo BEAM que ejecuta el cliente Mint al agotamiento de la memoria y a una eventual terminación por falta de memoria.\n\nEste problema afecta a mint: desde 0.1.0 antes de 1.9.2."
    }
  ],
  "affected": [
    {
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
      "affectedData": [
        {
          "vendor": "elixir-mint",
          "product": "mint",
          "defaultStatus": "unaffected",
          "collectionURL": "https://repo.hex.pm",
          "packageName": "mint",
          "cpes": [
            "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
          ],
          "modules": [
            "'Elixir.Mint.HTTP2'"
          ],
          "programFiles": [
            "lib/mint/http2.ex"
          ],
          "programRoutines": [
            {
              "name": "'Elixir.Mint.HTTP2':handle_continuation/3"
            },
            {
              "name": "'Elixir.Mint.HTTP2':assert_header_block_within_max_size/2"
            }
          ],
          "repo": "https://github.com/elixir-mint/mint",
          "packageURL": "pkg:hex/mint",
          "versions": [
            {
              "version": "0.1.0",
              "lessThan": "1.9.2",
              "versionType": "semver",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "elixir-mint",
          "product": "mint",
          "defaultStatus": "unaffected",
          "collectionURL": "https://github.com",
          "packageName": "elixir-mint/mint",
          "cpes": [
            "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
          ],
          "modules": [
            "'Elixir.Mint.HTTP2'"
          ],
          "programFiles": [
            "lib/mint/http2.ex"
          ],
          "programRoutines": [
            {
              "name": "'Elixir.Mint.HTTP2':handle_continuation/3"
            },
            {
              "name": "'Elixir.Mint.HTTP2':assert_header_block_within_max_size/2"
            }
          ],
          "repo": "https://github.com/elixir-mint/mint",
          "packageURL": "pkg:github/elixir-mint/mint",
          "versions": [
            {
              "version": "596ca4304504be68939c4929e0831557097962b8",
              "lessThan": "5779de1666344b32aefc4354184ea07f902f73ce",
              "versionType": "git",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV40": [
      {
        "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "type": "Secondary",
        "cvssData": {
          "version": "4.0",
          "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/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",
          "baseScore": 6.3,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "attackRequirements": "PRESENT",
          "privilegesRequired": "NONE",
          "userInteraction": "NONE",
          "vulnConfidentialityImpact": "NONE",
          "vulnIntegrityImpact": "NONE",
          "vulnAvailabilityImpact": "LOW",
          "subConfidentialityImpact": "NONE",
          "subIntegrityImpact": "NONE",
          "subAvailabilityImpact": "NONE",
          "exploitMaturity": "NOT_DEFINED",
          "confidentialityRequirement": "NOT_DEFINED",
          "integrityRequirement": "NOT_DEFINED",
          "availabilityRequirement": "NOT_DEFINED",
          "modifiedAttackVector": "NOT_DEFINED",
          "modifiedAttackComplexity": "NOT_DEFINED",
          "modifiedAttackRequirements": "NOT_DEFINED",
          "modifiedPrivilegesRequired": "NOT_DEFINED",
          "modifiedUserInteraction": "NOT_DEFINED",
          "modifiedVulnConfidentialityImpact": "NOT_DEFINED",
          "modifiedVulnIntegrityImpact": "NOT_DEFINED",
          "modifiedVulnAvailabilityImpact": "NOT_DEFINED",
          "modifiedSubConfidentialityImpact": "NOT_DEFINED",
          "modifiedSubIntegrityImpact": "NOT_DEFINED",
          "modifiedSubAvailabilityImpact": "NOT_DEFINED",
          "Safety": "NOT_DEFINED",
          "Automatable": "NOT_DEFINED",
          "Recovery": "NOT_DEFINED",
          "valueDensity": "NOT_DEFINED",
          "vulnerabilityResponseEffort": "NOT_DEFINED",
          "providerUrgency": "NOT_DEFINED"
        }
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-07-14T12:25:59.949476Z",
          "id": "CVE-2026-59246",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-770"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://cna.erlef.org/cves/CVE-2026-59246.html",
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    },
    {
      "url": "https://github.com/elixir-mint/mint/commit/5779de1666344b32aefc4354184ea07f902f73ce",
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    },
    {
      "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-8pf6-g464-h6h9",
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    },
    {
      "url": "https://osv.dev/vulnerability/EEF-CVE-2026-59246",
      "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
    },
    {
      "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-8pf6-g464-h6h9",
      "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
    }
  ]
}