Search

Find a vulnerability

Search criteria

    28 vulnerabilities found for mint by elixir-mint

    CVE-2026-94194 (GCVE-0-2026-94194)

    Vulnerability from nvd – Published: 2026-09-28 11:15 – Updated: 2026-09-30 13:17
    VLAI
    Title
    Mint HTTP/1 client applies chunked framing when chunked is not the final transfer coding, enabling response smuggling through intermediaries
    Summary
    Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize an intermediary and the Mint client on a pooled connection, poisoning the responses to subsequent requests that share the connection. message_body/1 in lib/mint/http1.ex selects chunked framing when chunked is the first coding listed in a response's Transfer-Encoding fields. RFC 9112 section 6.3 applies chunked framing only when chunked is the final coding, and otherwise reads the body until the server closes the connection. For a response such as Transfer-Encoding: chunked, gzip, an intermediary that follows the RFC treats every byte up to the close as the body, while Mint ends the body at the zero-length chunk and parses the remaining bytes as the response to the next request on the connection. Mint also keeps the connection open after an HTTP/1.0 response, final or 1xx, that carries Transfer-Encoding and Connection: keep-alive. RFC 9112 section 6.1 requires treating the framing of such a message as faulty and closing the connection after it, so bytes after its chunked body are parsed as the response to the next request in the same way. This issue affects mint: from 0.1.0 before 1.10.2.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-30 13:16 UTC
    CWE
    • CWE-444 - Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.10.2 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 60089586ec7adc9fddb09f69a2f5919ba9ac7f33 , < * (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Date Public
    2026-09-28 11:15
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-94194",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-30T13:16:26.592339Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-30T13:17:02.563Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-gvrc-75rc-7gj9"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:message_body/1"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:stream/2"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:recv/3"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.10.2",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:message_body/1"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:stream/2"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:recv/3"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "2ec8b696b5475ecbdaa87c0098957bca339e17c0",
                      "status": "unaffected"
                    },
                    {
                      "at": "8d1bbcfa566a8c1dc23d33f40d550c28250ac7b9",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "60089586ec7adc9fddb09f69a2f5919ba9ac7f33",
                  "versionType": "git"
                }
              ]
            }
          ],
          "configurations": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eExploitation requires an HTTP/1 intermediary (proxy, load balancer, or gateway) between the Mint client and the attacker-influenced origin that frames a response whose final transfer coding is not \u003ccode\u003echunked\u003c/code\u003e as ending at connection close and forwards its \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header to the client unchanged, and HTTP/1 connections between the client and the intermediary that are reused across requests. Intermediaries that reject such a header or re-frame the body do not create the disagreement. Mint clients that connect to the origin directly, or that don\u0027t reuse connections, aren\u0027t exposed to response-queue poisoning.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Exploitation requires an HTTP/1 intermediary (proxy, load balancer, or gateway) between the Mint client and the attacker-influenced origin that frames a response whose final transfer coding is not `chunked` as ending at connection close and forwards its `Transfer-Encoding` header to the client unchanged, and HTTP/1 connections between the client and the intermediary that are reused across requests. Intermediaries that reject such a header or re-frame the body do not create the disagreement. Mint clients that connect to the origin directly, or that don\u0027t reuse connections, aren\u0027t exposed to response-queue poisoning."
                }
              ],
              "value": "Exploitation requires an HTTP/1 intermediary (proxy, load balancer, or gateway) between the Mint client and the attacker-influenced origin that frames a response whose final transfer coding is not chunked as ending at connection close and forwards its Transfer-Encoding header to the client unchanged, and HTTP/1 connections between the client and the intermediary that are reused across requests. Intermediaries that reject such a header or re-frame the body do not create the disagreement. Mint clients that connect to the origin directly, or that don\u0027t reuse connections, aren\u0027t exposed to response-queue poisoning."
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.10.2",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "zx"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "zx"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Eric Meadows-J\u00f6nsson"
            }
          ],
          "dateAssigned": "2026-09-27T11:54:52.000Z",
          "datePublic": "2026-09-28T11:15:31.000Z",
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eInconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize an intermediary and the Mint client on a pooled connection, poisoning the responses to subsequent requests that share the connection.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003emessage_body/1\u003c/code\u003e in \u003ccode\u003elib/mint/http1.ex\u003c/code\u003e selects chunked framing when \u003ccode\u003echunked\u003c/code\u003e is the first coding listed in a response\u0027s \u003ccode\u003eTransfer-Encoding\u003c/code\u003e fields. RFC 9112 section 6.3 applies chunked framing only when \u003ccode\u003echunked\u003c/code\u003e is the final coding, and otherwise reads the body until the server closes the connection. For a response such as \u003ccode\u003eTransfer-Encoding: chunked, gzip\u003c/code\u003e, an intermediary that follows the RFC treats every byte up to the close as the body, while Mint ends the body at the zero-length chunk and parses the remaining bytes as the response to the next request on the connection.\u003c/p\u003e\n\u003cp\u003eMint also keeps the connection open after an HTTP/1.0 response, final or 1xx, that carries \u003ccode\u003eTransfer-Encoding\u003c/code\u003e and \u003ccode\u003eConnection: keep-alive\u003c/code\u003e. RFC 9112 section 6.1 requires treating the framing of such a message as faulty and closing the connection after it, so bytes after its chunked body are parsed as the response to the next request in the same way.\u003c/p\u003e\n\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.10.2.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize an intermediary and the Mint client on a pooled connection, poisoning the responses to subsequent requests that share the connection.\n\n`message_body/1` in `lib/mint/http1.ex` selects chunked framing when `chunked` is the first coding listed in a response\u0027s `Transfer-Encoding` fields. RFC 9112 section 6.3 applies chunked framing only when `chunked` is the final coding, and otherwise reads the body until the server closes the connection. For a response such as `Transfer-Encoding: chunked, gzip`, an intermediary that follows the RFC treats every byte up to the close as the body, while Mint ends the body at the zero-length chunk and parses the remaining bytes as the response to the next request on the connection.\n\nMint also keeps the connection open after an HTTP/1.0 response, final or 1xx, that carries `Transfer-Encoding` and `Connection: keep-alive`. RFC 9112 section 6.1 requires treating the framing of such a message as faulty and closing the connection after it, so bytes after its chunked body are parsed as the response to the next request in the same way.\n\nThis issue affects mint: from 0.1.0 before 1.10.2."
                }
              ],
              "value": "Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize an intermediary and the Mint client on a pooled connection, poisoning the responses to subsequent requests that share the connection.\n\nmessage_body/1 in lib/mint/http1.ex selects chunked framing when chunked is the first coding listed in a response\u0027s Transfer-Encoding fields. RFC 9112 section 6.3 applies chunked framing only when chunked is the final coding, and otherwise reads the body until the server closes the connection. For a response such as Transfer-Encoding: chunked, gzip, an intermediary that follows the RFC treats every byte up to the close as the body, while Mint ends the body at the zero-length chunk and parses the remaining bytes as the response to the next request on the connection.\n\nMint also keeps the connection open after an HTTP/1.0 response, final or 1xx, that carries Transfer-Encoding and Connection: keep-alive. RFC 9112 section 6.1 requires treating the framing of such a message as faulty and closing the connection after it, so bytes after its chunked body are parsed as the response to the next request in the same way.\n\nThis issue affects mint: from 0.1.0 before 1.10.2."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-273",
              "descriptions": [
                {
                  "lang": "en",
                  "supportingMedia": [
                    {
                      "base64": false,
                      "type": "text/html",
                      "value": "\u003cp\u003eA malicious or attacker-influenced HTTP/1 origin behind an intermediary that follows RFC 9112 framing can make the intermediary and the Mint client disagree on where a response ends. On a pooled keep-alive connection, bytes the origin appends to one response become the response to the next request sharing the connection, and the real responses shift to later requests.\u003c/p\u003e"
                    },
                    {
                      "base64": false,
                      "type": "text/markdown",
                      "value": "A malicious or attacker-influenced HTTP/1 origin behind an intermediary that follows RFC 9112 framing can make the intermediary and the Mint client disagree on where a response ends. On a pooled keep-alive connection, bytes the origin appends to one response become the response to the next request sharing the connection, and the real responses shift to later requests."
                    }
                  ],
                  "value": "A malicious or attacker-influenced HTTP/1 origin behind an intermediary that follows RFC 9112 framing can make the intermediary and the Mint client disagree on where a response ends. On a pooled keep-alive connection, bytes the origin appends to one response become the response to the next request sharing the connection, and the real responses shift to later requests."
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-444",
                  "description": "CWE-444 Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-29T10:16:39.032Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "name": "GitHub Advisory",
              "tags": [
                "related",
                "vendor-advisory"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-gvrc-75rc-7gj9"
            },
            {
              "name": "EEF CNA record for CVE-2026-94194",
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-94194.html"
            },
            {
              "name": "OSV record EEF-CVE-2026-94194",
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-94194"
            },
            {
              "name": "Introducing commit 6008958 in elixir-mint/mint",
              "tags": [
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/60089586ec7adc9fddb09f69a2f5919ba9ac7f33"
            },
            {
              "name": "Fix commit 2ec8b69 in elixir-mint/mint",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/2ec8b696b5475ecbdaa87c0098957bca339e17c0"
            },
            {
              "name": "Fix commit 8d1bbcf in elixir-mint/mint",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/8d1bbcfa566a8c1dc23d33f40d550c28250ac7b9"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Mint HTTP/1 client applies chunked framing when chunked is not the final transfer coding, enabling response smuggling through intermediaries",
          "x_proofOfConcept": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003col\u003e\n\u003cli\u003eStart a loopback TCP server that answers the first request with \u003ccode\u003eHTTP/1.1 200 OK\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding: chunked, gzip\u003c/code\u003e, the chunked body \u003ccode\u003e5\\r\\nLEGIT\\r\\n0\\r\\n\\r\\n\u003c/code\u003e, and directly after it the bytes \u003ccode\u003eHTTP/1.1 200 OK\\r\\nContent-Length: 8\\r\\n\\r\\nSMUGGLED\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eConnect with \u003ccode\u003eMint.HTTP1\u003c/code\u003e and send a request. Mint returns \u003ccode\u003eLEGIT\u003c/code\u003e as the complete body, keeps the connection open, and holds the second response in \u003ccode\u003econn.buffer\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eSend a second request on the same connection and have the server answer it with a real response. Mint returns \u003ccode\u003eSMUGGLED\u003c/code\u003e as the response to the second request and keeps the real one in the buffer.\u003c/li\u003e\n\u003cli\u003ePipelining both requests before the server answers gives the same result from a single \u003ccode\u003eMint.HTTP1.stream/2\u003c/code\u003e call.\u003c/li\u003e\n\u003c/ol\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "1. Start a loopback TCP server that answers the first request with `HTTP/1.1 200 OK` and `Transfer-Encoding: chunked, gzip`, the chunked body `5\\r\\nLEGIT\\r\\n0\\r\\n\\r\\n`, and directly after it the bytes `HTTP/1.1 200 OK\\r\\nContent-Length: 8\\r\\n\\r\\nSMUGGLED`.\n2. Connect with `Mint.HTTP1` and send a request. Mint returns `LEGIT` as the complete body, keeps the connection open, and holds the second response in `conn.buffer`.\n3. Send a second request on the same connection and have the server answer it with a real response. Mint returns `SMUGGLED` as the response to the second request and keeps the real one in the buffer.\n4. Pipelining both requests before the server answers gives the same result from a single `Mint.HTTP1.stream/2` call."
                }
              ],
              "value": "* Start a loopback TCP server that answers the first request with HTTP/1.1 200 OK and Transfer-Encoding: chunked, gzip, the chunked body 5\\r\\nLEGIT\\r\\n0\\r\\n\\r\\n, and directly after it the bytes HTTP/1.1 200 OK\\r\\nContent-Length: 8\\r\\n\\r\\nSMUGGLED.\n* Connect with Mint.HTTP1 and send a request. Mint returns LEGIT as the complete body, keeps the connection open, and holds the second response in conn.buffer.\n* Send a second request on the same connection and have the server answer it with a real response. Mint returns SMUGGLED as the response to the second request and keeps the real one in the buffer.\n* Pipelining both requests before the server answers gives the same result from a single Mint.HTTP1.stream/2 call."
            }
          ],
          "x_technicalAnalysis": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003cstrong\u003e1. Coding list.\u003c/strong\u003e \u003ccode\u003estore_header/3\u003c/code\u003e in \u003ccode\u003elib/mint/http1.ex\u003c/code\u003e tokenizes each \u003ccode\u003eTransfer-Encoding\u003c/code\u003e field with \u003ccode\u003eMint.HTTP1.Parse.transfer_encoding_header/1\u003c/code\u003e and appends the codings to \u003ccode\u003erequest.transfer_encoding\u003c/code\u003e in the order received.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2. Framing decision.\u003c/strong\u003e \u003ccode\u003emessage_body/1\u003c/code\u003e returns chunked framing when \u003ccode\u003eList.first(request.transfer_encoding)\u003c/code\u003e is \u003ccode\u003e\"chunked\"\u003c/code\u003e. The only other \u003ccode\u003eTransfer-Encoding\u003c/code\u003e check rejects a response that also carries \u003ccode\u003eContent-Length\u003c/code\u003e, so \u003ccode\u003echunked, gzip\u003c/code\u003e on its own is framed as chunked.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e3. Leftover bytes.\u003c/strong\u003e \u003ccode\u003edecode_body/5\u003c/code\u003e ends the body at the zero-length chunk and its trailer section, and \u003ccode\u003enext_request/3\u003c/code\u003e keeps the rest of the data in \u003ccode\u003econn.buffer\u003c/code\u003e or decodes it immediately as the next queued response. An RFC 9112 intermediary frames the same response as ending at connection close, so bytes it forwarded as body of the first response become the response to the next request on the Mint connection, and that request\u0027s real response is left in the buffer for the one after it.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e4. HTTP/1.0 keep-alive.\u003c/strong\u003e \u003ccode\u003erequest_done/2\u003c/code\u003e keeps an HTTP/1.0 connection open when the response has \u003ccode\u003eConnection: keep-alive\u003c/code\u003e, without checking for \u003ccode\u003eTransfer-Encoding\u003c/code\u003e, and \u003ccode\u003edecode_body(:informational, ...)\u003c/code\u003e resets the framing state of a 1xx response and keeps parsing. An HTTP/1.0 response with \u003ccode\u003eTransfer-Encoding: chunked\u003c/code\u003e and \u003ccode\u003eConnection: keep-alive\u003c/code\u003e therefore leaves the connection open after its chunked body, and the following bytes are decoded as the next queued response, although RFC 9112 section 6.1 requires closing the connection after such a message.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "**1. Coding list.** `store_header/3` in `lib/mint/http1.ex` tokenizes each `Transfer-Encoding` field with `Mint.HTTP1.Parse.transfer_encoding_header/1` and appends the codings to `request.transfer_encoding` in the order received.\n\n**2. Framing decision.** `message_body/1` returns chunked framing when `List.first(request.transfer_encoding)` is `\"chunked\"`. The only other `Transfer-Encoding` check rejects a response that also carries `Content-Length`, so `chunked, gzip` on its own is framed as chunked.\n\n**3. Leftover bytes.** `decode_body/5` ends the body at the zero-length chunk and its trailer section, and `next_request/3` keeps the rest of the data in `conn.buffer` or decodes it immediately as the next queued response. An RFC 9112 intermediary frames the same response as ending at connection close, so bytes it forwarded as body of the first response become the response to the next request on the Mint connection, and that request\u0027s real response is left in the buffer for the one after it.\n\n**4. HTTP/1.0 keep-alive.** `request_done/2` keeps an HTTP/1.0 connection open when the response has `Connection: keep-alive`, without checking for `Transfer-Encoding`, and `decode_body(:informational, ...)` resets the framing state of a 1xx response and keeps parsing. An HTTP/1.0 response with `Transfer-Encoding: chunked` and `Connection: keep-alive` therefore leaves the connection open after its chunked body, and the following bytes are decoded as the next queued response, although RFC 9112 section 6.1 requires closing the connection after such a message."
                }
              ],
              "value": "1. Coding list. store_header/3 in lib/mint/http1.ex tokenizes each Transfer-Encoding field with Mint.HTTP1.Parse.transfer_encoding_header/1 and appends the codings to request.transfer_encoding in the order received.\n\n2. Framing decision. message_body/1 returns chunked framing when List.first(request.transfer_encoding) is \"chunked\". The only other Transfer-Encoding check rejects a response that also carries Content-Length, so chunked, gzip on its own is framed as chunked.\n\n3. Leftover bytes. decode_body/5 ends the body at the zero-length chunk and its trailer section, and next_request/3 keeps the rest of the data in conn.buffer or decodes it immediately as the next queued response. An RFC 9112 intermediary frames the same response as ending at connection close, so bytes it forwarded as body of the first response become the response to the next request on the Mint connection, and that request\u0027s real response is left in the buffer for the one after it.\n\n4. HTTP/1.0 keep-alive. request_done/2 keeps an HTTP/1.0 connection open when the response has Connection: keep-alive, without checking for Transfer-Encoding, and decode_body(:informational, ...) resets the framing state of a 1xx response and keeps parsing. An HTTP/1.0 response with Transfer-Encoding: chunked and Connection: keep-alive therefore leaves the connection open after its chunked body, and the following bytes are decoded as the next queued response, although RFC 9112 section 6.1 requires closing the connection after such a message."
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-94194",
        "datePublished": "2026-09-28T11:15:30.684Z",
        "dateReserved": "2026-09-24T13:45:02.496Z",
        "dateUpdated": "2026-09-30T13:17:02.563Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-92103 (GCVE-0-2026-92103)

    Vulnerability from nvd – Published: 2026-09-28 11:15 – Updated: 2026-09-30 15:00
    VLAI
    Title
    Mint HTTP/2 client buffers oversized frames up to 16 MiB before enforcing max_frame_size
    Summary
    Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to make the client hold up to about 16 MiB per connection in frames it should reject, consuming client memory. Mint.HTTP2.Frame.decode_next/2 in lib/mint/http2/frame.ex compares a frame with the client's max_frame_size (16,384 bytes by default) only once the whole declared payload has arrived. Until then it returns :more, and Mint.HTTP2 keeps every received byte in the connection buffer. A server can declare a frame length of up to 16,777,215 bytes and withhold the last byte, keeping roughly 1,024 times the advertised limit buffered for as long as the connection stays open. The server has to send every byte the client buffers, so there is no amplification, and the buffer stops at the 24-bit frame length limit. This issue affects mint: from 0.1.0 before 1.10.2.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-30 15:00 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.10.2 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 596ca4304504be68939c4929e0831557097962b8 , < * (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Date Public
    2026-09-28 11:15
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-92103",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-30T15:00:25.491334Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-30T15:00:38.567Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2.Frame\u0027",
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2/frame.ex",
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2.Frame\u0027:decode_next/2"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:stream/2"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:recv/3"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_new_data/3"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.10.2",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2.Frame\u0027",
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2/frame.ex",
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2.Frame\u0027:decode_next/2"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:stream/2"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:recv/3"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_new_data/3"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "20252ca85065f4d1092aed9ee4ed21841a507dfe",
                      "status": "unaffected"
                    },
                    {
                      "at": "44d7ce4755d0444ee415cbcca7ce4942382da4dd",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "596ca4304504be68939c4929e0831557097962b8",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.10.2",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "zx"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "zx"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Andrea Leopardi"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Eric Meadows-J\u00f6nsson"
            }
          ],
          "dateAssigned": "2026-09-24T09:19:17.000Z",
          "datePublic": "2026-09-28T11:15:20.000Z",
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAllocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to make the client hold up to about 16 MiB per connection in frames it should reject, consuming client memory.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eMint.HTTP2.Frame.decode_next/2\u003c/code\u003e in \u003ccode\u003elib/mint/http2/frame.ex\u003c/code\u003e compares a frame with the client\u0027s \u003ccode\u003emax_frame_size\u003c/code\u003e (16,384 bytes by default) only once the whole declared payload has arrived. Until then it returns \u003ccode\u003e:more\u003c/code\u003e, and \u003ccode\u003eMint.HTTP2\u003c/code\u003e keeps every received byte in the connection buffer. A server can declare a frame length of up to 16,777,215 bytes and withhold the last byte, keeping roughly 1,024 times the advertised limit buffered for as long as the connection stays open. The server has to send every byte the client buffers, so there is no amplification, and the buffer stops at the 24-bit frame length limit.\u003c/p\u003e\n\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.10.2.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to make the client hold up to about 16 MiB per connection in frames it should reject, consuming client memory.\n\n`Mint.HTTP2.Frame.decode_next/2` in `lib/mint/http2/frame.ex` compares a frame with the client\u0027s `max_frame_size` (16,384 bytes by default) only once the whole declared payload has arrived. Until then it returns `:more`, and `Mint.HTTP2` keeps every received byte in the connection buffer. A server can declare a frame length of up to 16,777,215 bytes and withhold the last byte, keeping roughly 1,024 times the advertised limit buffered for as long as the connection stays open. The server has to send every byte the client buffers, so there is no amplification, and the buffer stops at the 24-bit frame length limit.\n\nThis issue affects mint: from 0.1.0 before 1.10.2."
                }
              ],
              "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to make the client hold up to about 16 MiB per connection in frames it should reject, consuming client memory.\n\nMint.HTTP2.Frame.decode_next/2 in lib/mint/http2/frame.ex compares a frame with the client\u0027s max_frame_size (16,384 bytes by default) only once the whole declared payload has arrived. Until then it returns :more, and Mint.HTTP2 keeps every received byte in the connection buffer. A server can declare a frame length of up to 16,777,215 bytes and withhold the last byte, keeping roughly 1,024 times the advertised limit buffered for as long as the connection stays open. The server has to send every byte the client buffers, so there is no amplification, and the buffer stops at the 24-bit frame length limit.\n\nThis issue affects mint: from 0.1.0 before 1.10.2."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "supportingMedia": [
                    {
                      "base64": false,
                      "type": "text/html",
                      "value": "\u003cp\u003eA malicious or compromised HTTP/2 server can make a Mint client keep up to about 16 MiB per connection buffered, and keep it there while the connection stays open. Clients that hold many HTTP/2 connections to attacker-influenced origins, such as webhook senders, crawlers and proxies, can run out of memory.\u003c/p\u003e"
                    },
                    {
                      "base64": false,
                      "type": "text/markdown",
                      "value": "A malicious or compromised HTTP/2 server can make a Mint client keep up to about 16 MiB per connection buffered, and keep it there while the connection stays open. Clients that hold many HTTP/2 connections to attacker-influenced origins, such as webhook senders, crawlers and proxies, can run out of memory."
                    }
                  ],
                  "value": "A malicious or compromised HTTP/2 server can make a Mint client keep up to about 16 MiB per connection buffered, and keep it there while the connection stays open. Clients that hold many HTTP/2 connections to attacker-influenced origins, such as webhook senders, crawlers and proxies, can run out of memory."
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "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",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-29T10:15:35.604Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "name": "GitHub Advisory",
              "tags": [
                "related",
                "vendor-advisory"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-q95c-ccq6-j5j6"
            },
            {
              "name": "EEF CNA record for CVE-2026-92103",
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-92103.html"
            },
            {
              "name": "OSV record EEF-CVE-2026-92103",
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-92103"
            },
            {
              "name": "Introducing commit 596ca43 in elixir-mint/mint",
              "tags": [
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/596ca4304504be68939c4929e0831557097962b8"
            },
            {
              "name": "Fix commit 20252ca in elixir-mint/mint",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/20252ca85065f4d1092aed9ee4ed21841a507dfe"
            },
            {
              "name": "Fix commit 44d7ce4 in elixir-mint/mint",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/44d7ce4755d0444ee415cbcca7ce4942382da4dd"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Mint HTTP/2 client buffers oversized frames up to 16 MiB before enforcing max_frame_size",
          "workarounds": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eConnect to untrusted origins over HTTP/1 only, with \u003ccode\u003eprotocols: [:http1]\u003c/code\u003e in \u003ccode\u003eMint.HTTP.connect/4\u003c/code\u003e, which never runs the HTTP/2 frame decoder. Finch and Req pools use HTTP/1 only unless \u003ccode\u003e:http2\u003c/code\u003e is added to their \u003ccode\u003eprotocols\u003c/code\u003e option.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Connect to untrusted origins over HTTP/1 only, with `protocols: [:http1]` in `Mint.HTTP.connect/4`, which never runs the HTTP/2 frame decoder. Finch and Req pools use HTTP/1 only unless `:http2` is added to their `protocols` option."
                }
              ],
              "value": "Connect to untrusted origins over HTTP/1 only, with protocols: [:http1] in Mint.HTTP.connect/4, which never runs the HTTP/2 frame decoder. Finch and Req pools use HTTP/1 only unless :http2 is added to their protocols option."
            }
          ],
          "x_proofOfConcept": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003col\u003e\n\u003cli\u003eBuild an HTTP/2 frame header whose 24-bit length field declares 1,000,000 bytes, above the default \u003ccode\u003emax_frame_size\u003c/code\u003e of 16,384.\u003c/li\u003e\n\u003cli\u003ePass the header followed by 16,384 and then 512,000 payload bytes to \u003ccode\u003eMint.HTTP2.Frame.decode_next/2\u003c/code\u003e with a limit of 16,384. Each call returns \u003ccode\u003e:more\u003c/code\u003e, which makes \u003ccode\u003eMint.HTTP2\u003c/code\u003e keep the bytes in \u003ccode\u003econn.buffer\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePass the header with the complete 1,000,000-byte payload. Only this call returns \u003ccode\u003e{:error, :payload_too_big}\u003c/code\u003e.\u003c/li\u003e\n\u003c/ol\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "1. Build an HTTP/2 frame header whose 24-bit length field declares 1,000,000 bytes, above the default `max_frame_size` of 16,384.\n2. Pass the header followed by 16,384 and then 512,000 payload bytes to `Mint.HTTP2.Frame.decode_next/2` with a limit of 16,384. Each call returns `:more`, which makes `Mint.HTTP2` keep the bytes in `conn.buffer`.\n3. Pass the header with the complete 1,000,000-byte payload. Only this call returns `{:error, :payload_too_big}`."
                }
              ],
              "value": "* Build an HTTP/2 frame header whose 24-bit length field declares 1,000,000 bytes, above the default max_frame_size of 16,384.\n* Pass the header followed by 16,384 and then 512,000 payload bytes to Mint.HTTP2.Frame.decode_next/2 with a limit of 16,384. Each call returns :more, which makes Mint.HTTP2 keep the bytes in conn.buffer.\n* Pass the header with the complete 1,000,000-byte payload. Only this call returns {:error, :payload_too_big}."
            }
          ],
          "x_technicalAnalysis": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003cstrong\u003e1. Late size check.\u003c/strong\u003e \u003ccode\u003eMint.HTTP2.Frame.decode_next/2\u003c/code\u003e calls \u003ccode\u003edecode_next_raw/1\u003c/code\u003e, whose binary pattern only matches once the full declared payload is present. The \u003ccode\u003emax_frame_size\u003c/code\u003e guard runs on the matched payload, so a partial frame of any declared length returns \u003ccode\u003e:more\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2. Unbounded buffering.\u003c/strong\u003e On \u003ccode\u003e:more\u003c/code\u003e, \u003ccode\u003eMint.HTTP2.handle_new_data/3\u003c/code\u003e stores the accumulated data in \u003ccode\u003econn.buffer\u003c/code\u003e, and \u003ccode\u003emaybe_concat_and_handle_new_data/2\u003c/code\u003e prepends it to every later socket read, in both \u003ccode\u003estream/2\u003c/code\u003e (active mode) and \u003ccode\u003erecv/3\u003c/code\u003e (passive mode). Nothing caps the buffer.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e3. No release.\u003c/strong\u003e Mint has no idle timer. In active mode the buffer is held until the caller closes the connection. In passive mode a \u003ccode\u003erecv/3\u003c/code\u003e timeout closes it, but a server that sends a byte within each timeout keeps it open. \u003ccode\u003emax_frame_size\u003c/code\u003e can\u0027t be set below the 16,384-byte protocol minimum, and no setting moves the check earlier.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "**1. Late size check.** `Mint.HTTP2.Frame.decode_next/2` calls `decode_next_raw/1`, whose binary pattern only matches once the full declared payload is present. The `max_frame_size` guard runs on the matched payload, so a partial frame of any declared length returns `:more`.\n\n**2. Unbounded buffering.** On `:more`, `Mint.HTTP2.handle_new_data/3` stores the accumulated data in `conn.buffer`, and `maybe_concat_and_handle_new_data/2` prepends it to every later socket read, in both `stream/2` (active mode) and `recv/3` (passive mode). Nothing caps the buffer.\n\n**3. No release.** Mint has no idle timer. In active mode the buffer is held until the caller closes the connection. In passive mode a `recv/3` timeout closes it, but a server that sends a byte within each timeout keeps it open. `max_frame_size` can\u0027t be set below the 16,384-byte protocol minimum, and no setting moves the check earlier."
                }
              ],
              "value": "1. Late size check. Mint.HTTP2.Frame.decode_next/2 calls decode_next_raw/1, whose binary pattern only matches once the full declared payload is present. The max_frame_size guard runs on the matched payload, so a partial frame of any declared length returns :more.\n\n2. Unbounded buffering. On :more, Mint.HTTP2.handle_new_data/3 stores the accumulated data in conn.buffer, and maybe_concat_and_handle_new_data/2 prepends it to every later socket read, in both stream/2 (active mode) and recv/3 (passive mode). Nothing caps the buffer.\n\n3. No release. Mint has no idle timer. In active mode the buffer is held until the caller closes the connection. In passive mode a recv/3 timeout closes it, but a server that sends a byte within each timeout keeps it open. max_frame_size can\u0027t be set below the 16,384-byte protocol minimum, and no setting moves the check earlier."
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-92103",
        "datePublished": "2026-09-28T11:15:20.657Z",
        "dateReserved": "2026-09-15T16:00:01.513Z",
        "dateUpdated": "2026-09-30T15:00:38.567Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-91043 (GCVE-0-2026-91043)

    Vulnerability from nvd – Published: 2026-09-28 11:15 – Updated: 2026-09-29 10:15
    VLAI
    Title
    HPACK-indexed cookie fields in Mint HTTP/2 responses bypass max_header_list_size and exhaust client memory
    Summary
    Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to exhaust memory on the client host and cause a denial of service. Mint.HTTP2 enforces the client's max_header_list_size setting only on the compressed size of an inbound header block, while RFC 9113 section 6.5.2 defines the limit on the decoded header list. An HPACK indexed field costs one byte on the wire and decodes to a dynamic table entry of up to 4 KB, and join_cookie_headers/1 in lib/mint/http2.ex copies every cookie value of a response into one new binary. A header block under the default 256 KB wire limit therefore makes the client allocate about 1 GB for a single response, and several such responses in one delivery exhaust the memory of the process that owns the connection or of the whole VM. This issue affects mint: from 1.1.0 before 1.10.2.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-28 13:20 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 1.1.0 , < 1.10.2 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 8e0e04680476f90f9f68db4dfeabcbe66dabfc4d , < * (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Date Public
    2026-09-28 11:15
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-91043",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-28T13:20:39.397915Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-28T13:31:29.037Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:stream/2"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:decode_hbf_and_add_responses/5"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:join_cookie_headers/1"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.10.2",
                  "status": "affected",
                  "version": "1.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:stream/2"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:decode_hbf_and_add_responses/5"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:join_cookie_headers/1"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "c7895cb022196c77ec35570c8e873a84393ff4b8",
                      "status": "unaffected"
                    },
                    {
                      "at": "65a0d61c9eab6b0dedac809de7212515bf506250",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "8e0e04680476f90f9f68db4dfeabcbe66dabfc4d",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.10.2",
                      "versionStartIncluding": "1.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Andrea Leopardi"
            }
          ],
          "dateAssigned": "2026-09-21T12:06:31.000Z",
          "datePublic": "2026-09-28T11:15:09.000Z",
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAllocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to exhaust memory on the client host and cause a denial of service.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eMint.HTTP2\u003c/code\u003e enforces the client\u0027s \u003ccode\u003emax_header_list_size\u003c/code\u003e setting only on the compressed size of an inbound header block, while RFC 9113 section 6.5.2 defines the limit on the decoded header list. An HPACK indexed field costs one byte on the wire and decodes to a dynamic table entry of up to 4 KB, and \u003ccode\u003ejoin_cookie_headers/1\u003c/code\u003e in \u003ccode\u003elib/mint/http2.ex\u003c/code\u003e copies every \u003ccode\u003ecookie\u003c/code\u003e value of a response into one new binary. A header block under the default 256 KB wire limit therefore makes the client allocate about 1 GB for a single response, and several such responses in one delivery exhaust the memory of the process that owns the connection or of the whole VM.\u003c/p\u003e\n\u003cp\u003eThis issue affects mint: from 1.1.0 before 1.10.2.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to exhaust memory on the client host and cause a denial of service.\n\n`Mint.HTTP2` enforces the client\u0027s `max_header_list_size` setting only on the compressed size of an inbound header block, while RFC 9113 section 6.5.2 defines the limit on the decoded header list. An HPACK indexed field costs one byte on the wire and decodes to a dynamic table entry of up to 4 KB, and `join_cookie_headers/1` in `lib/mint/http2.ex` copies every `cookie` value of a response into one new binary. A header block under the default 256 KB wire limit therefore makes the client allocate about 1 GB for a single response, and several such responses in one delivery exhaust the memory of the process that owns the connection or of the whole VM.\n\nThis issue affects mint: from 1.1.0 before 1.10.2."
                }
              ],
              "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to exhaust memory on the client host and cause a denial of service.\n\nMint.HTTP2 enforces the client\u0027s max_header_list_size setting only on the compressed size of an inbound header block, while RFC 9113 section 6.5.2 defines the limit on the decoded header list. An HPACK indexed field costs one byte on the wire and decodes to a dynamic table entry of up to 4 KB, and join_cookie_headers/1 in lib/mint/http2.ex copies every cookie value of a response into one new binary. A header block under the default 256 KB wire limit therefore makes the client allocate about 1 GB for a single response, and several such responses in one delivery exhaust the memory of the process that owns the connection or of the whole VM.\n\nThis issue affects mint: from 1.1.0 before 1.10.2."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "supportingMedia": [
                    {
                      "base64": false,
                      "type": "text/html",
                      "value": "\u003cp\u003eA malicious or compromised HTTP/2 server can make a Mint client allocate about 1 GB per response with default settings, exhausting host memory until the operating system kills the BEAM. HTTP/2 connection pools in Finch and Req, webhook and scraper clients, and reverse proxies fetching from untrusted upstreams are affected without any opt-in.\u003c/p\u003e"
                    },
                    {
                      "base64": false,
                      "type": "text/markdown",
                      "value": "A malicious or compromised HTTP/2 server can make a Mint client allocate about 1 GB per response with default settings, exhausting host memory until the operating system kills the BEAM. HTTP/2 connection pools in Finch and Req, webhook and scraper clients, and reverse proxies fetching from untrusted upstreams are affected without any opt-in."
                    }
                  ],
                  "value": "A malicious or compromised HTTP/2 server can make a Mint client allocate about 1 GB per response with default settings, exhausting host memory until the operating system kills the BEAM. HTTP/2 connection pools in Finch and Req, webhook and scraper clients, and reverse proxies fetching from untrusted upstreams are affected without any opt-in."
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 8.2,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-29T10:15:15.619Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "name": "GitHub Advisory",
              "tags": [
                "related",
                "vendor-advisory"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-9x8p-qrf4-jq7g"
            },
            {
              "name": "EEF CNA record for CVE-2026-91043",
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-91043.html"
            },
            {
              "name": "OSV record EEF-CVE-2026-91043",
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-91043"
            },
            {
              "name": "Introducing commit 8e0e046 in elixir-mint/mint",
              "tags": [
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/8e0e04680476f90f9f68db4dfeabcbe66dabfc4d"
            },
            {
              "name": "Fix commit c7895cb in elixir-mint/mint",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/c7895cb022196c77ec35570c8e873a84393ff4b8"
            },
            {
              "name": "Fix commit 65a0d61 in elixir-mint/mint",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/65a0d61c9eab6b0dedac809de7212515bf506250"
            }
          ],
          "source": {
            "discovery": "INTERNAL"
          },
          "title": "HPACK-indexed cookie fields in Mint HTTP/2 responses bypass max_header_list_size and exhaust client memory",
          "workarounds": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eLower \u003ccode\u003eclient_settings: [max_header_list_size: n]\u003c/code\u003e in \u003ccode\u003eMint.HTTP.connect/4\u003c/code\u003e. The compressed check still applies, and each byte of the block can expand to at most one 4 KB table entry, so a limit of 4,096 bounds a response to roughly 16 MB. Alternatively, restrict connections to untrusted servers to HTTP/1 with \u003ccode\u003eprotocols: [:http1]\u003c/code\u003e, which avoids the HTTP/2 receive path entirely. Do not set \u003ccode\u003emax_header_list_size: :infinity\u003c/code\u003e, which disables the compressed check as well.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Lower `client_settings: [max_header_list_size: n]` in `Mint.HTTP.connect/4`. The compressed check still applies, and each byte of the block can expand to at most one 4 KB table entry, so a limit of 4,096 bounds a response to roughly 16 MB. Alternatively, restrict connections to untrusted servers to HTTP/1 with `protocols: [:http1]`, which avoids the HTTP/2 receive path entirely. Do not set `max_header_list_size: :infinity`, which disables the compressed check as well."
                }
              ],
              "value": "Lower client_settings: [max_header_list_size: n] in Mint.HTTP.connect/4. The compressed check still applies, and each byte of the block can expand to at most one 4 KB table entry, so a limit of 4,096 bounds a response to roughly 16 MB. Alternatively, restrict connections to untrusted servers to HTTP/1 with protocols: [:http1], which avoids the HTTP/2 receive path entirely. Do not set max_header_list_size: :infinity, which disables the compressed check as well."
            }
          ],
          "x_proofOfConcept": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003col\u003e\n\u003cli\u003eConnect a \u003ccode\u003eMint.HTTP2\u003c/code\u003e client with default \u003ccode\u003eclient_settings\u003c/code\u003e to a server that writes raw HTTP/2 frames, and open a request.\u003c/li\u003e\n\u003cli\u003eAnswer with a header block that stores one large \u003ccode\u003ecookie\u003c/code\u003e value in the HPACK dynamic table and then references it many times with indexed fields, keeping the compressed block under the 262,144-byte limit.\u003c/li\u003e\n\u003cli\u003eMint accepts the block and returns one \u003ccode\u003ecookie\u003c/code\u003e header thousands of times larger than the wire bytes; the reporter measured a 1,047,808,858-byte value from 262,296 wire bytes on mint 1.10.1.\u003c/li\u003e\n\u003cli\u003eAnswering several open requests in one delivery adds up: four responses held 4,240,710,592 bytes of cookie values at once.\u003c/li\u003e\n\u003cli\u003eA block of 60,000 references costs about 240 MB under the \u003ccode\u003ecookie\u003c/code\u003e field name and about 5 MB under a non-cookie name, which isolates \u003ccode\u003ejoin_cookie_headers/1\u003c/code\u003e as the amplifier.\u003c/li\u003e\n\u003c/ol\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "1. Connect a `Mint.HTTP2` client with default `client_settings` to a server that writes raw HTTP/2 frames, and open a request.\n2. Answer with a header block that stores one large `cookie` value in the HPACK dynamic table and then references it many times with indexed fields, keeping the compressed block under the 262,144-byte limit.\n3. Mint accepts the block and returns one `cookie` header thousands of times larger than the wire bytes; the reporter measured a 1,047,808,858-byte value from 262,296 wire bytes on mint 1.10.1.\n4. Answering several open requests in one delivery adds up: four responses held 4,240,710,592 bytes of cookie values at once.\n5. A block of 60,000 references costs about 240 MB under the `cookie` field name and about 5 MB under a non-cookie name, which isolates `join_cookie_headers/1` as the amplifier."
                }
              ],
              "value": "* Connect a Mint.HTTP2 client with default client_settings to a server that writes raw HTTP/2 frames, and open a request.\n* Answer with a header block that stores one large cookie value in the HPACK dynamic table and then references it many times with indexed fields, keeping the compressed block under the 262,144-byte limit.\n* Mint accepts the block and returns one cookie header thousands of times larger than the wire bytes; the reporter measured a 1,047,808,858-byte value from 262,296 wire bytes on mint 1.10.1.\n* Answering several open requests in one delivery adds up: four responses held 4,240,710,592 bytes of cookie values at once.\n* A block of 60,000 references costs about 240 MB under the cookie field name and about 5 MB under a non-cookie name, which isolates join_cookie_headers/1 as the amplifier."
            }
          ],
          "x_technicalAnalysis": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003cstrong\u003e1. Compressed-size check only.\u003c/strong\u003e \u003ccode\u003eMint.HTTP2.assert_header_block_within_max_size/2\u003c/code\u003e compares the accumulated \u003ccode\u003eHEADERS\u003c/code\u003e plus \u003ccode\u003eCONTINUATION\u003c/code\u003e bytes with \u003ccode\u003eclient_settings.max_header_list_size\u003c/code\u003e, which bounds a \u003ccode\u003eCONTINUATION\u003c/code\u003e chain but not the decoded size. After \u003ccode\u003eHPAX.decode/2\u003c/code\u003e returns, \u003ccode\u003edecode_hbf_and_add_responses/5\u003c/code\u003e passes the header list to \u003ccode\u003ehandle_decoded_headers_for_stream/5\u003c/code\u003e without measuring it. The only implementation of the RFC 9113 section 6.5.2 formula, \u003ccode\u003eassert_headers_smaller_than_max_header_list_size/2\u003c/code\u003e, applies the server\u0027s setting to headers Mint sends.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2. Indexed-field expansion.\u003c/strong\u003e An HPACK indexed field (RFC 7541 section 6.1) is one byte for small table indexes and refers to a dynamic table entry of up to 4 KB. HPAX returns one shared binary per reference, so the decoded list itself stays small.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e3. Cookie join.\u003c/strong\u003e \u003ccode\u003ejoin_cookie_headers/1\u003c/code\u003e runs \u003ccode\u003eEnum.map_join/3\u003c/code\u003e over every \u003ccode\u003ecookie\u003c/code\u003e value, copying each shared value into one contiguous binary. The dynamic table entry persists for the connection, so the same block can answer every open stream, and \u003ccode\u003eMint.HTTP.stream/2\u003c/code\u003e returns all responses parsed from one delivery together.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "**1. Compressed-size check only.** `Mint.HTTP2.assert_header_block_within_max_size/2` compares the accumulated `HEADERS` plus `CONTINUATION` bytes with `client_settings.max_header_list_size`, which bounds a `CONTINUATION` chain but not the decoded size. After `HPAX.decode/2` returns, `decode_hbf_and_add_responses/5` passes the header list to `handle_decoded_headers_for_stream/5` without measuring it. The only implementation of the RFC 9113 section 6.5.2 formula, `assert_headers_smaller_than_max_header_list_size/2`, applies the server\u0027s setting to headers Mint sends.\n\n**2. Indexed-field expansion.** An HPACK indexed field (RFC 7541 section 6.1) is one byte for small table indexes and refers to a dynamic table entry of up to 4 KB. HPAX returns one shared binary per reference, so the decoded list itself stays small.\n\n**3. Cookie join.** `join_cookie_headers/1` runs `Enum.map_join/3` over every `cookie` value, copying each shared value into one contiguous binary. The dynamic table entry persists for the connection, so the same block can answer every open stream, and `Mint.HTTP.stream/2` returns all responses parsed from one delivery together."
                }
              ],
              "value": "1. Compressed-size check only. Mint.HTTP2.assert_header_block_within_max_size/2 compares the accumulated HEADERS plus CONTINUATION bytes with client_settings.max_header_list_size, which bounds a CONTINUATION chain but not the decoded size. After HPAX.decode/2 returns, decode_hbf_and_add_responses/5 passes the header list to handle_decoded_headers_for_stream/5 without measuring it. The only implementation of the RFC 9113 section 6.5.2 formula, assert_headers_smaller_than_max_header_list_size/2, applies the server\u0027s setting to headers Mint sends.\n\n2. Indexed-field expansion. An HPACK indexed field (RFC 7541 section 6.1) is one byte for small table indexes and refers to a dynamic table entry of up to 4 KB. HPAX returns one shared binary per reference, so the decoded list itself stays small.\n\n3. Cookie join. join_cookie_headers/1 runs Enum.map_join/3 over every cookie value, copying each shared value into one contiguous binary. The dynamic table entry persists for the connection, so the same block can answer every open stream, and Mint.HTTP.stream/2 returns all responses parsed from one delivery together."
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-91043",
        "datePublished": "2026-09-28T11:15:09.158Z",
        "dateReserved": "2026-09-15T23:45:02.178Z",
        "dateUpdated": "2026-09-29T10:15:15.619Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-82672 (GCVE-0-2026-82672)

    Vulnerability from nvd – Published: 2026-09-19 17:00 – Updated: 2026-09-21 18:30
    VLAI
    Title
    Unvalidated chunk-size line tail in Mint HTTP/1 client enables response smuggling against strict intermediaries on pooled connections
    Summary
    Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize a strict intermediary and the Mint client on a pooled connection, enabling response-queue poisoning against subsequent requests that share the connection. Mint.HTTP1.Parse.chunk_size/1 in lib/mint/http1/parse.ex stops at the first non-hexadecimal byte of a chunked response's chunk-size line and returns the remainder unexamined. Mint.HTTP1.decode_body/5 in lib/mint/http1.ex then discards every byte up to the CRLF with Parse.ignore_until_crlf/1, so the accepted grammar is a run of hex digits followed by arbitrary bytes, where RFC 9112 permits only a ;-introduced chunk extension. Lines such as 5ZZZZZ and 5 9 are accepted as chunk size 5, and 0ZZZZ is accepted as the terminating chunk that ends the message body. An RFC-strict intermediary rejects such a line while Mint accepts it, so the two disagree on chunk boundaries and on where the response ends. This issue affects mint: from 0.1.0 before 1.10.1.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-21 18:29 UTC
    CWE
    • CWE-444 - Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.10.1 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 60089586ec7adc9fddb09f69a2f5919ba9ac7f33 , < c82377838dc6e275ef40bafa664fbcdf50270c60 (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-82672",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-21T18:29:40.588404Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-21T18:30:02.604Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-rj5m-69wp-cxq9"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1.Parse\u0027",
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1/parse.ex",
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Parse\u0027:chunk_size/1"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Parse\u0027:ignore_until_crlf/1"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.10.1",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1.Parse\u0027",
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1/parse.ex",
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Parse\u0027:chunk_size/1"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Parse\u0027:ignore_until_crlf/1"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "c82377838dc6e275ef40bafa664fbcdf50270c60",
                  "status": "affected",
                  "version": "60089586ec7adc9fddb09f69a2f5919ba9ac7f33",
                  "versionType": "git"
                }
              ]
            }
          ],
          "configurations": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eExploitation requires a deployment topology in which an RFC-strict HTTP/1 intermediary (proxy, load balancer, or WAF) sits between the Mint client and the attacker-influenced origin, and HTTP/1 connections between the client and the intermediary are reused across requests (keep-alive with connection pooling). Mint clients that talk directly to an origin without an intermediary, or that do not reuse connections, are not exploitable for response-queue poisoning even if the vulnerable parsing behavior is present.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Exploitation requires a deployment topology in which an RFC-strict HTTP/1 intermediary (proxy, load balancer, or WAF) sits between the Mint client and the attacker-influenced origin, and HTTP/1 connections between the client and the intermediary are reused across requests (keep-alive with connection pooling). Mint clients that talk directly to an origin without an intermediary, or that do not reuse connections, are not exploitable for response-queue poisoning even if the vulnerable parsing behavior is present."
                }
              ],
              "value": "Exploitation requires a deployment topology in which an RFC-strict HTTP/1 intermediary (proxy, load balancer, or WAF) sits between the Mint client and the attacker-influenced origin, and HTTP/1 connections between the client and the intermediary are reused across requests (keep-alive with connection pooling). Mint clients that talk directly to an origin without an intermediary, or that do not reuse connections, are not exploitable for response-queue poisoning even if the vulnerable parsing behavior is present."
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.10.1",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Eurico Nicacio"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "Eurico Nicacio"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Andrea Leopardi"
            }
          ],
          "dateAssigned": "2026-09-19T15:55:00.000Z",
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eInconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize a strict intermediary and the Mint client on a pooled connection, enabling response-queue poisoning against subsequent requests that share the connection.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eMint.HTTP1.Parse.chunk_size/1\u003c/code\u003e in \u003ccode\u003elib/mint/http1/parse.ex\u003c/code\u003e stops at the first non-hexadecimal byte of a chunked response\u0027s chunk-size line and returns the remainder unexamined. \u003ccode\u003eMint.HTTP1.decode_body/5\u003c/code\u003e in \u003ccode\u003elib/mint/http1.ex\u003c/code\u003e then discards every byte up to the CRLF with \u003ccode\u003eParse.ignore_until_crlf/1\u003c/code\u003e, so the accepted grammar is a run of hex digits followed by arbitrary bytes, where RFC 9112 permits only a \u003ccode\u003e;\u003c/code\u003e-introduced chunk extension. Lines such as \u003ccode\u003e5ZZZZZ\u003c/code\u003e and \u003ccode\u003e5 9\u003c/code\u003e are accepted as chunk size 5, and \u003ccode\u003e0ZZZZ\u003c/code\u003e is accepted as the terminating chunk that ends the message body. An RFC-strict intermediary rejects such a line while Mint accepts it, so the two disagree on chunk boundaries and on where the response ends.\u003c/p\u003e\n\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.10.1.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize a strict intermediary and the Mint client on a pooled connection, enabling response-queue poisoning against subsequent requests that share the connection.\n\n`Mint.HTTP1.Parse.chunk_size/1` in `lib/mint/http1/parse.ex` stops at the first non-hexadecimal byte of a chunked response\u0027s chunk-size line and returns the remainder unexamined. `Mint.HTTP1.decode_body/5` in `lib/mint/http1.ex` then discards every byte up to the CRLF with `Parse.ignore_until_crlf/1`, so the accepted grammar is a run of hex digits followed by arbitrary bytes, where RFC 9112 permits only a `;`-introduced chunk extension. Lines such as `5ZZZZZ` and `5 9` are accepted as chunk size 5, and `0ZZZZ` is accepted as the terminating chunk that ends the message body. An RFC-strict intermediary rejects such a line while Mint accepts it, so the two disagree on chunk boundaries and on where the response ends.\n\nThis issue affects mint: from 0.1.0 before 1.10.1."
                }
              ],
              "value": "Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize a strict intermediary and the Mint client on a pooled connection, enabling response-queue poisoning against subsequent requests that share the connection.\n\nMint.HTTP1.Parse.chunk_size/1 in lib/mint/http1/parse.ex stops at the first non-hexadecimal byte of a chunked response\u0027s chunk-size line and returns the remainder unexamined. Mint.HTTP1.decode_body/5 in lib/mint/http1.ex then discards every byte up to the CRLF with Parse.ignore_until_crlf/1, so the accepted grammar is a run of hex digits followed by arbitrary bytes, where RFC 9112 permits only a ;-introduced chunk extension. Lines such as 5ZZZZZ and 5 9 are accepted as chunk size 5, and 0ZZZZ is accepted as the terminating chunk that ends the message body. An RFC-strict intermediary rejects such a line while Mint accepts it, so the two disagree on chunk boundaries and on where the response ends.\n\nThis issue affects mint: from 0.1.0 before 1.10.1."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-273",
              "descriptions": [
                {
                  "lang": "en",
                  "supportingMedia": [
                    {
                      "base64": false,
                      "type": "text/html",
                      "value": "\u003cp\u003eA malicious or attacker-influenced HTTP/1 origin behind an RFC-strict intermediary can make the intermediary and the Mint client disagree on chunk boundaries and on where the response body ends. On a pooled keep-alive connection that disagreement lets bytes from one response be attributed to the next, poisoning the responses returned to unrelated requests that share the connection.\u003c/p\u003e"
                    },
                    {
                      "base64": false,
                      "type": "text/markdown",
                      "value": "A malicious or attacker-influenced HTTP/1 origin behind an RFC-strict intermediary can make the intermediary and the Mint client disagree on chunk boundaries and on where the response body ends. On a pooled keep-alive connection that disagreement lets bytes from one response be attributed to the next, poisoning the responses returned to unrelated requests that share the connection."
                    }
                  ],
                  "value": "A malicious or attacker-influenced HTTP/1 origin behind an RFC-strict intermediary can make the intermediary and the Mint client disagree on chunk boundaries and on where the response body ends. On a pooled keep-alive connection that disagreement lets bytes from one response be attributed to the next, poisoning the responses returned to unrelated requests that share the connection."
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-444",
                  "description": "CWE-444 Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-19T17:00:31.648Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "name": "GitHub Advisory",
              "tags": [
                "related",
                "vendor-advisory"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-rj5m-69wp-cxq9"
            },
            {
              "name": "EEF CNA record for CVE-2026-82672",
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-82672.html"
            },
            {
              "name": "OSV record EEF-CVE-2026-82672",
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-82672"
            },
            {
              "name": "Introducing commit 6008958 in elixir-mint/mint",
              "tags": [
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/60089586ec7adc9fddb09f69a2f5919ba9ac7f33"
            },
            {
              "name": "Fix commit c823778 in elixir-mint/mint",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/c82377838dc6e275ef40bafa664fbcdf50270c60"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Unvalidated chunk-size line tail in Mint HTTP/1 client enables response smuggling against strict intermediaries on pooled connections",
          "x_proofOfConcept": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003col\u003e\n\u003cli\u003eStart a loopback TCP server that serves one \u003ccode\u003eHTTP/1.1 200 OK\u003c/code\u003e response with \u003ccode\u003etransfer-encoding: chunked\u003c/code\u003e and controls the chunk-size line byte for byte.\u003c/li\u003e\n\u003cli\u003eConnect with \u003ccode\u003eMint.HTTP1\u003c/code\u003e (mint 1.10.0 from Hex), send a request and stream the response.\u003c/li\u003e\n\u003cli\u003ePositive controls: chunk-size lines \u003ccode\u003e+5\u003c/code\u003e, \u003ccode\u003eZ5\u003c/code\u003e and \u003ccode\u003e00000000000000005\u003c/code\u003e are refused with \u003ccode\u003e:invalid_chunk_size\u003c/code\u003e, confirming the build carries the earlier chunk-size fixes.\u003c/li\u003e\n\u003cli\u003eBaseline: \u003ccode\u003e5\u003c/code\u003e and \u003ccode\u003e5;name=value\u003c/code\u003e are accepted with body \u003ccode\u003ehello\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFinding: \u003ccode\u003e5ZZZZZ\u003c/code\u003e, \u003ccode\u003e5 anything at all\u003c/code\u003e, \u003ccode\u003e5\u0026lt;TAB\u0026gt;foo\u003c/code\u003e, \u003ccode\u003e5 9\u003c/code\u003e and \u003ccode\u003e5}~!\u003c/code\u003e are each accepted as chunk size 5 with body \u003ccode\u003ehello\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eTerminator: \u003ccode\u003e0ZZZZ\u003c/code\u003e and \u003ccode\u003e0 9\u003c/code\u003e in place of the final \u003ccode\u003e0\u003c/code\u003e chunk are accepted and end the body.\u003c/li\u003e\n\u003cli\u003eContrast: \u003ccode\u003eContent-Length: +5\u003c/code\u003e, \u003ccode\u003eContent-Length: 5ZZZ\u003c/code\u003e and \u003ccode\u003eContent-Length: 5 9\u003c/code\u003e are refused with \u003ccode\u003e:invalid_content_length_header\u003c/code\u003e in the same run.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eThe reporter ran this on Elixir 1.18 / OTP 27 and Elixir 1.18.4 / OTP 28 with identical results.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "1. Start a loopback TCP server that serves one `HTTP/1.1 200 OK` response with `transfer-encoding: chunked` and controls the chunk-size line byte for byte.\n2. Connect with `Mint.HTTP1` (mint 1.10.0 from Hex), send a request and stream the response.\n3. Positive controls: chunk-size lines `+5`, `Z5` and `00000000000000005` are refused with `:invalid_chunk_size`, confirming the build carries the earlier chunk-size fixes.\n4. Baseline: `5` and `5;name=value` are accepted with body `hello`.\n5. Finding: `5ZZZZZ`, `5 anything at all`, `5\u003cTAB\u003efoo`, `5 9` and `5}~!` are each accepted as chunk size 5 with body `hello`.\n6. Terminator: `0ZZZZ` and `0 9` in place of the final `0` chunk are accepted and end the body.\n7. Contrast: `Content-Length: +5`, `Content-Length: 5ZZZ` and `Content-Length: 5 9` are refused with `:invalid_content_length_header` in the same run.\n\nThe reporter ran this on Elixir 1.18 / OTP 27 and Elixir 1.18.4 / OTP 28 with identical results."
                }
              ],
              "value": "* Start a loopback TCP server that serves one HTTP/1.1 200 OK response with transfer-encoding: chunked and controls the chunk-size line byte for byte.\n* Connect with Mint.HTTP1 (mint 1.10.0 from Hex), send a request and stream the response.\n* Positive controls: chunk-size lines +5, Z5 and 00000000000000005 are refused with :invalid_chunk_size, confirming the build carries the earlier chunk-size fixes.\n* Baseline: 5 and 5;name=value are accepted with body hello.\n* Finding: 5ZZZZZ, 5 anything at all, 5\u003cTAB\u003efoo, 5 9 and 5}~! are each accepted as chunk size 5 with body hello.\n* Terminator: 0ZZZZ and 0 9 in place of the final 0 chunk are accepted and end the body.\n* Contrast: Content-Length: +5, Content-Length: 5ZZZ and Content-Length: 5 9 are refused with :invalid_content_length_header in the same run.\n\nThe reporter ran this on Elixir 1.18 / OTP 27 and Elixir 1.18.4 / OTP 28 with identical results."
            }
          ],
          "x_technicalAnalysis": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003cstrong\u003e1. Chunk-size parsing.\u003c/strong\u003e \u003ccode\u003eMint.HTTP1.Parse.chunk_size/1\u003c/code\u003e in \u003ccode\u003elib/mint/http1/parse.ex\u003c/code\u003e folds leading hexadecimal digits into an accumulator through \u003ccode\u003eparse_hex_prefix/3\u003c/code\u003e and, on the first byte that is not a hex digit, returns \u003ccode\u003e{:ok, size, rest}\u003c/code\u003e with \u003ccode\u003erest\u003c/code\u003e unexamined. The sign and digit-count checks added by earlier fixes constrain only the digits.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2. Tail skipping.\u003c/strong\u003e The caller, \u003ccode\u003eMint.HTTP1.decode_body/5\u003c/code\u003e in \u003ccode\u003elib/mint/http1.ex\u003c/code\u003e, hands \u003ccode\u003erest\u003c/code\u003e to \u003ccode\u003eParse.ignore_until_crlf/1\u003c/code\u003e, which advances over any byte until it finds CRLF. Nothing between the last hex digit and the CRLF is validated, so the accepted grammar is \u003ccode\u003e1*HEXDIG *OCTET CRLF\u003c/code\u003e, where RFC 9112 section 7.1 allows only an optional \u003ccode\u003e;\u003c/code\u003e-introduced \u003ccode\u003echunk-ext\u003c/code\u003e. The same tolerance applies to the terminating zero-length chunk, which is the token that ends the message body.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e3. Parser disagreement.\u003c/strong\u003e The sibling \u003ccode\u003eContent-Length\u003c/code\u003e parser, \u003ccode\u003eMint.HTTP1.Parse.content_length_header/1\u003c/code\u003e, trims trailing whitespace and requires the whole remaining value to be digits, rejecting anything else. An RFC-strict intermediary that rejects or reframes a chunk-size line with a non-extension tail, on a connection where Mint accepts it, yields a framing disagreement about chunk length and, through the terminating chunk, about where the message ends.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "**1. Chunk-size parsing.** `Mint.HTTP1.Parse.chunk_size/1` in `lib/mint/http1/parse.ex` folds leading hexadecimal digits into an accumulator through `parse_hex_prefix/3` and, on the first byte that is not a hex digit, returns `{:ok, size, rest}` with `rest` unexamined. The sign and digit-count checks added by earlier fixes constrain only the digits.\n\n**2. Tail skipping.** The caller, `Mint.HTTP1.decode_body/5` in `lib/mint/http1.ex`, hands `rest` to `Parse.ignore_until_crlf/1`, which advances over any byte until it finds CRLF. Nothing between the last hex digit and the CRLF is validated, so the accepted grammar is `1*HEXDIG *OCTET CRLF`, where RFC 9112 section 7.1 allows only an optional `;`-introduced `chunk-ext`. The same tolerance applies to the terminating zero-length chunk, which is the token that ends the message body.\n\n**3. Parser disagreement.** The sibling `Content-Length` parser, `Mint.HTTP1.Parse.content_length_header/1`, trims trailing whitespace and requires the whole remaining value to be digits, rejecting anything else. An RFC-strict intermediary that rejects or reframes a chunk-size line with a non-extension tail, on a connection where Mint accepts it, yields a framing disagreement about chunk length and, through the terminating chunk, about where the message ends."
                }
              ],
              "value": "1. Chunk-size parsing. Mint.HTTP1.Parse.chunk_size/1 in lib/mint/http1/parse.ex folds leading hexadecimal digits into an accumulator through parse_hex_prefix/3 and, on the first byte that is not a hex digit, returns {:ok, size, rest} with rest unexamined. The sign and digit-count checks added by earlier fixes constrain only the digits.\n\n2. Tail skipping. The caller, Mint.HTTP1.decode_body/5 in lib/mint/http1.ex, hands rest to Parse.ignore_until_crlf/1, which advances over any byte until it finds CRLF. Nothing between the last hex digit and the CRLF is validated, so the accepted grammar is 1*HEXDIG *OCTET CRLF, where RFC 9112 section 7.1 allows only an optional ;-introduced chunk-ext. The same tolerance applies to the terminating zero-length chunk, which is the token that ends the message body.\n\n3. Parser disagreement. The sibling Content-Length parser, Mint.HTTP1.Parse.content_length_header/1, trims trailing whitespace and requires the whole remaining value to be digits, rejecting anything else. An RFC-strict intermediary that rejects or reframes a chunk-size line with a non-extension tail, on a connection where Mint accepts it, yields a framing disagreement about chunk length and, through the terminating chunk, about where the message ends."
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-82672",
        "datePublished": "2026-09-19T17:00:31.648Z",
        "dateReserved": "2026-09-17T05:30:01.748Z",
        "dateUpdated": "2026-09-21T18:30:02.604Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-82729 (GCVE-0-2026-82729)

    Vulnerability from nvd – Published: 2026-09-04 14:31 – Updated: 2026-09-04 19:33
    VLAI
    Title
    Quadratic chunk-size parsing in Mint.HTTP1.Parse allows CPU-exhaustion DoS
    Summary
    Inefficient Algorithmic Complexity vulnerability in elixir-mint mint allows a remote HTTP server to exhaust CPU on the client host and cause a denial of service. parse_hex_prefix/2 in lib/mint/http1/parse.ex folds each hex digit of a chunked response's chunk-size field into an arbitrary-precision accumulator with acc * 16 + digit and imposes no limit on the digit count. Because the accumulator grows without bound, the multiplication is not constant time and one pass over N digits costs O(N squared). handle_data/2 prepends conn.buffer and re-parses from the start on every socket message, so a server that dribbles the digits out in small packets makes the client pay that cost repeatedly. A run of roughly 512,000 hex digits costs over ten seconds of CPU in a single pass, measured on stock defaults. The parser reaches this state after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response. This issue affects mint: from 1.9.3 before 1.10.0.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-04 19:33 UTC
    CWE
    • CWE-407 - Inefficient Algorithmic Complexity
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 1.9.3 , < 1.10.0 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: fc7d16538db7e40b56ed489f08683225cb0197fa , < bd2a4e7513594997c140cfef9fe0e968712fb588 (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-82729",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-04T19:33:08.928597Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-04T19:33:32.398Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-7p8w-j234-7qc8"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1.Parse\u0027",
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1/parse.ex",
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Parse\u0027:chunk_size/1"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.10.0",
                  "status": "affected",
                  "version": "1.9.3",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1.Parse\u0027",
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1/parse.ex",
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Parse\u0027:chunk_size/1"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "bd2a4e7513594997c140cfef9fe0e968712fb588",
                  "status": "affected",
                  "version": "fc7d16538db7e40b56ed489f08683225cb0197fa",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.10.0",
                      "versionStartIncluding": "1.9.3",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Tr3bor"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "Tr3bor"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Andrea Leopardi"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eInefficient Algorithmic Complexity vulnerability in elixir-mint mint allows a remote HTTP server to exhaust CPU on the client host and cause a denial of service.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eparse_hex_prefix/2\u003c/code\u003e in \u003ccode\u003elib/mint/http1/parse.ex\u003c/code\u003e folds each hex digit of a chunked response\u0027s chunk-size field into an arbitrary-precision accumulator with \u003ccode\u003eacc * 16 + digit\u003c/code\u003e and imposes no limit on the digit count. Because the accumulator grows without bound, the multiplication is not constant time and one pass over \u003ccode\u003eN\u003c/code\u003e digits costs O(N squared). \u003ccode\u003ehandle_data/2\u003c/code\u003e prepends \u003ccode\u003econn.buffer\u003c/code\u003e and re-parses from the start on every socket message, so a server that dribbles the digits out in small packets makes the client pay that cost repeatedly. A run of roughly 512,000 hex digits costs over ten seconds of CPU in a single pass, measured on stock defaults. The parser reaches this state after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\u003c/p\u003e\n\u003cp\u003eThis issue affects mint: from 1.9.3 before 1.10.0.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Inefficient Algorithmic Complexity vulnerability in elixir-mint mint allows a remote HTTP server to exhaust CPU on the client host and cause a denial of service.\n\n`parse_hex_prefix/2` in `lib/mint/http1/parse.ex` folds each hex digit of a chunked response\u0027s chunk-size field into an arbitrary-precision accumulator with `acc * 16 + digit` and imposes no limit on the digit count. Because the accumulator grows without bound, the multiplication is not constant time and one pass over `N` digits costs O(N squared). `handle_data/2` prepends `conn.buffer` and re-parses from the start on every socket message, so a server that dribbles the digits out in small packets makes the client pay that cost repeatedly. A run of roughly 512,000 hex digits costs over ten seconds of CPU in a single pass, measured on stock defaults. The parser reaches this state after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\n\nThis issue affects mint: from 1.9.3 before 1.10.0."
                }
              ],
              "value": "Inefficient Algorithmic Complexity vulnerability in elixir-mint mint allows a remote HTTP server to exhaust CPU on the client host and cause a denial of service.\n\nparse_hex_prefix/2 in lib/mint/http1/parse.ex folds each hex digit of a chunked response\u0027s chunk-size field into an arbitrary-precision accumulator with acc * 16 + digit and imposes no limit on the digit count. Because the accumulator grows without bound, the multiplication is not constant time and one pass over N digits costs O(N squared). handle_data/2 prepends conn.buffer and re-parses from the start on every socket message, so a server that dribbles the digits out in small packets makes the client pay that cost repeatedly. A run of roughly 512,000 hex digits costs over ten seconds of CPU in a single pass, measured on stock defaults. The parser reaches this state after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\n\nThis issue affects mint: from 1.9.3 before 1.10.0."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "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",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-407",
                  "description": "CWE-407 Inefficient Algorithmic Complexity",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-04T14:31:20.562Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "related",
                "vendor-advisory"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-7p8w-j234-7qc8"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-82729.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-82729"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/bd2a4e7513594997c140cfef9fe0e968712fb588"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Quadratic chunk-size parsing in Mint.HTTP1.Parse allows CPU-exhaustion DoS"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-82729",
        "datePublished": "2026-09-04T14:31:20.562Z",
        "dateReserved": "2026-08-31T00:59:08.960Z",
        "dateUpdated": "2026-09-04T19:33:32.398Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-82728 (GCVE-0-2026-82728)

    Vulnerability from nvd – Published: 2026-09-04 14:31 – Updated: 2026-09-04 19:32
    VLAI
    Title
    Unbounded HTTP/1 status-line and chunk-extension buffering in Mint causes memory-exhaustion DoS
    Summary
    Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a remote HTTP server to exhaust memory on the client host and cause a denial of service. Two HTTP/1 response-parser states accumulate server data without any cap. In lib/mint/http1.ex, decode_status_line/4 stores the unconsumed data in conn.buffer when the status line is incomplete, and decode_body/5 does the same for an unterminated chunk-extension line. Both wait for a CRLF the server never has to send, and conn.buffer is prepended to every subsequent socket message. The :max_header_list_size budget is wired only into decode_headers/5 and decode_trailer_headers/4, so neither of these states is covered by it. A malicious server, or one reached through an attacker-controlled redirect or a fetched URL, streams bytes indefinitely until the BEAM node is killed by the operating system out-of-memory handler. The chunk-extension variant is reached after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response. This issue affects mint: from 0.1.0 before 1.10.0.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-04 19:32 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.10.0 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: c088e4b6430545338841ab8d294369e45d39856a , < 19be5558b6a317e271c78666498dd78b151e490a (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-82728",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-04T19:32:07.642690Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-04T19:32:44.727Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-g83f-2j6r-q6m4"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_status_line/4"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.10.0",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_status_line/4"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "19be5558b6a317e271c78666498dd78b151e490a",
                  "status": "affected",
                  "version": "c088e4b6430545338841ab8d294369e45d39856a",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.10.0",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Tr3bor"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "Tr3bor"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Andrea Leopardi"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAllocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a remote HTTP server to exhaust memory on the client host and cause a denial of service.\u003c/p\u003e\n\u003cp\u003eTwo HTTP/1 response-parser states accumulate server data without any cap. In \u003ccode\u003elib/mint/http1.ex\u003c/code\u003e, \u003ccode\u003edecode_status_line/4\u003c/code\u003e stores the unconsumed data in \u003ccode\u003econn.buffer\u003c/code\u003e when the status line is incomplete, and \u003ccode\u003edecode_body/5\u003c/code\u003e does the same for an unterminated chunk-extension line. Both wait for a CRLF the server never has to send, and \u003ccode\u003econn.buffer\u003c/code\u003e is prepended to every subsequent socket message. The \u003ccode\u003e:max_header_list_size\u003c/code\u003e budget is wired only into \u003ccode\u003edecode_headers/5\u003c/code\u003e and \u003ccode\u003edecode_trailer_headers/4\u003c/code\u003e, so neither of these states is covered by it. A malicious server, or one reached through an attacker-controlled redirect or a fetched URL, streams bytes indefinitely until the BEAM node is killed by the operating system out-of-memory handler. The chunk-extension variant is reached after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\u003c/p\u003e\n\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.10.0.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a remote HTTP server to exhaust memory on the client host and cause a denial of service.\n\nTwo HTTP/1 response-parser states accumulate server data without any cap. In `lib/mint/http1.ex`, `decode_status_line/4` stores the unconsumed data in `conn.buffer` when the status line is incomplete, and `decode_body/5` does the same for an unterminated chunk-extension line. Both wait for a CRLF the server never has to send, and `conn.buffer` is prepended to every subsequent socket message. The `:max_header_list_size` budget is wired only into `decode_headers/5` and `decode_trailer_headers/4`, so neither of these states is covered by it. A malicious server, or one reached through an attacker-controlled redirect or a fetched URL, streams bytes indefinitely until the BEAM node is killed by the operating system out-of-memory handler. The chunk-extension variant is reached after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\n\nThis issue affects mint: from 0.1.0 before 1.10.0."
                }
              ],
              "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a remote HTTP server to exhaust memory on the client host and cause a denial of service.\n\nTwo HTTP/1 response-parser states accumulate server data without any cap. In lib/mint/http1.ex, decode_status_line/4 stores the unconsumed data in conn.buffer when the status line is incomplete, and decode_body/5 does the same for an unterminated chunk-extension line. Both wait for a CRLF the server never has to send, and conn.buffer is prepended to every subsequent socket message. The :max_header_list_size budget is wired only into decode_headers/5 and decode_trailer_headers/4, so neither of these states is covered by it. A malicious server, or one reached through an attacker-controlled redirect or a fetched URL, streams bytes indefinitely until the BEAM node is killed by the operating system out-of-memory handler. The chunk-extension variant is reached after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\n\nThis issue affects mint: from 0.1.0 before 1.10.0."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 8.2,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-04T14:31:30.059Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-g83f-2j6r-q6m4"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-82728.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-82728"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/19be5558b6a317e271c78666498dd78b151e490a"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Unbounded HTTP/1 status-line and chunk-extension buffering in Mint causes memory-exhaustion DoS"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-82728",
        "datePublished": "2026-09-04T14:31:30.059Z",
        "dateReserved": "2026-08-31T00:59:08.960Z",
        "dateUpdated": "2026-09-04T19:32:44.727Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-59249 (GCVE-0-2026-59249)

    Vulnerability from nvd – Published: 2026-07-16 11:39 – Updated: 2026-07-17 10:11
    VLAI
    Title
    Sign-tolerant HTTP/1 chunk-size parser in Mint enables response smuggling against strict intermediaries on pooled connections
    Summary
    Inconsistent interpretation of HTTP requests (HTTP response smuggling) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize a strict intermediary and the Mint client on the same pooled connection, enabling response-queue poisoning against subsequent requests that share the connection. The Mint.HTTP1.decode_body/5 function in lib/mint/http1.ex parses the chunk-size line of a Transfer-Encoding: chunked response with Integer.parse(data, 16). RFC 7230 defines chunk-size = 1*HEXDIG and forbids any sign prefix, but Integer.parse/2 accepts an optional leading + or -. A chunk-size line of +5 is accepted as a five-byte chunk; lines of +0 and -0 are accepted as the terminating zero-length chunk and end the message body early. An RFC-strict intermediary in the response path rejects these forms, so the intermediary and the Mint client disagree on where one response ends and the next begins. On a pooled keep-alive connection, an attacker-influenced origin can inject bytes that the client attributes to the next legitimate response on the same connection, poisoning the response queue and corrupting the responses returned to unrelated in-flight requests. This issue affects mint: from 0.1.0 before 1.9.3.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-07-16 12:37 UTC
    CWE
    • CWE-444 - Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.9.3 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 60089586ec7adc9fddb09f69a2f5919ba9ac7f33 , < fc7d16538db7e40b56ed489f08683225cb0197fa (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-59249",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-07-16T12:37:52.637521Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-07-16T12:38:16.316Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-x3x7-96vm-6h2w"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.9.3",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "fc7d16538db7e40b56ed489f08683225cb0197fa",
                  "status": "affected",
                  "version": "60089586ec7adc9fddb09f69a2f5919ba9ac7f33",
                  "versionType": "git"
                }
              ]
            }
          ],
          "configurations": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eExploitation requires a deployment topology in which an RFC-strict HTTP/1 intermediary (proxy, load balancer, or WAF) sits between the Mint client and the attacker-influenced origin, and HTTP/1 connections between the client and the intermediary are reused across requests (keep-alive with connection pooling). Mint clients that talk directly to an origin without an intermediary, or that do not reuse connections, are not exploitable for response-queue poisoning even if the vulnerable parsing behavior is present.\u003c/p\u003e"
                }
              ],
              "value": "Exploitation requires a deployment topology in which an RFC-strict HTTP/1 intermediary (proxy, load balancer, or WAF) sits between the Mint client and the attacker-influenced origin, and HTTP/1 connections between the client and the intermediary are reused across requests (keep-alive with connection pooling). Mint clients that talk directly to an origin without an intermediary, or that do not reuse connections, are not exploitable for response-queue poisoning even if the vulnerable parsing behavior is present."
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.9.3",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Thepigtails"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Andrea Leopardi"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eInconsistent interpretation of HTTP requests (HTTP response smuggling) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize a strict intermediary and the Mint client on the same pooled connection, enabling response-queue poisoning against subsequent requests that share the connection.\u003c/p\u003e\u003cp\u003eThe \u003ctt\u003eMint.HTTP1.decode_body/5\u003c/tt\u003e function in \u003ctt\u003elib/mint/http1.ex\u003c/tt\u003e parses the chunk-size line of a \u003ctt\u003eTransfer-Encoding: chunked\u003c/tt\u003e response with \u003ctt\u003eInteger.parse(data, 16)\u003c/tt\u003e. RFC 7230 defines \u003ctt\u003echunk-size = 1*HEXDIG\u003c/tt\u003e and forbids any sign prefix, but \u003ctt\u003eInteger.parse/2\u003c/tt\u003e accepts an optional leading \u003ctt\u003e+\u003c/tt\u003e or \u003ctt\u003e-\u003c/tt\u003e. A chunk-size line of \u003ctt\u003e+5\u003c/tt\u003e is accepted as a five-byte chunk; lines of \u003ctt\u003e+0\u003c/tt\u003e and \u003ctt\u003e-0\u003c/tt\u003e are accepted as the terminating zero-length chunk and end the message body early.\u003c/p\u003e\u003cp\u003eAn RFC-strict intermediary in the response path rejects these forms, so the intermediary and the Mint client disagree on where one response ends and the next begins. On a pooled keep-alive connection, an attacker-influenced origin can inject bytes that the client attributes to the next legitimate response on the same connection, poisoning the response queue and corrupting the responses returned to unrelated in-flight requests.\u003c/p\u003e\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.9.3.\u003c/p\u003e"
                }
              ],
              "value": "Inconsistent interpretation of HTTP requests (HTTP response smuggling) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize a strict intermediary and the Mint client on the same pooled connection, enabling response-queue poisoning against subsequent requests that share the connection.\n\nThe Mint.HTTP1.decode_body/5 function in lib/mint/http1.ex parses the chunk-size line of a Transfer-Encoding: chunked response with Integer.parse(data, 16). RFC 7230 defines chunk-size = 1*HEXDIG and forbids any sign prefix, but Integer.parse/2 accepts an optional leading + or -. A chunk-size line of +5 is accepted as a five-byte chunk; lines of +0 and -0 are accepted as the terminating zero-length chunk and end the message body early.\n\nAn RFC-strict intermediary in the response path rejects these forms, so the intermediary and the Mint client disagree on where one response ends and the next begins. On a pooled keep-alive connection, an attacker-influenced origin can inject bytes that the client attributes to the next legitimate response on the same connection, poisoning the response queue and corrupting the responses returned to unrelated in-flight requests.\n\nThis issue affects mint: from 0.1.0 before 1.9.3."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-273",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-273 HTTP Response Smuggling"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "LOW"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-444",
                  "description": "CWE-444 Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-07-17T10:11:36.783Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-x3x7-96vm-6h2w"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-59249.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-59249"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/fc7d16538db7e40b56ed489f08683225cb0197fa"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Sign-tolerant HTTP/1 chunk-size parser in Mint enables response smuggling against strict intermediaries on pooled connections",
          "x_generator": {
            "engine": "cvelib 1.8.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-59249",
        "datePublished": "2026-07-16T11:39:29.939Z",
        "dateReserved": "2026-07-04T04:24:03.652Z",
        "dateUpdated": "2026-07-17T10:11:36.783Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-59246 (GCVE-0-2026-59246)

    Vulnerability from nvd – Published: 2026-07-14 08:37 – Updated: 2026-07-14 15:08
    VLAI
    Title
    Zero-length HTTP/2 CONTINUATION frames bypass Mint's header-block byte-size cap and exhaust client memory
    Summary
    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.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-07-14 12:25 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.9.2 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 596ca4304504be68939c4929e0831557097962b8 , < 5779de1666344b32aefc4354184ea07f902f73ce (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-59246",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-07-14T12:25:59.949476Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-07-14T12:26:05.211Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-8pf6-g464-h6h9"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_continuation/3"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:assert_header_block_within_max_size/2"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.9.2",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_continuation/3"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:assert_header_block_within_max_size/2"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "5779de1666344b32aefc4354184ea07f902f73ce",
                  "status": "affected",
                  "version": "596ca4304504be68939c4929e0831557097962b8",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.9.2",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "zx (Jace)"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Andrea Leopardi"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAllocation 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.\u003c/p\u003e\u003cp\u003eThe \u003ctt\u003eMint.HTTP2.handle_continuation/3\u003c/tt\u003e function in \u003ctt\u003elib/mint/http2.ex\u003c/tt\u003e accumulates the header-block fragment carried by each HTTP/2 \u003ctt\u003eCONTINUATION\u003c/tt\u003e frame into a growing \u003ctt\u003econn.headers_being_processed\u003c/tt\u003e nesting, one level deeper per frame, and only releases it when a frame with the \u003ctt\u003eEND_HEADERS\u003c/tt\u003e flag arrives. The only guard on this accumulator is \u003ctt\u003eMint.HTTP2.assert_header_block_within_max_size/2\u003c/tt\u003e, which sums the byte size of the fragments received so far. Because a \u003ctt\u003eCONTINUATION\u003c/tt\u003e frame is permitted by the protocol to carry a zero-length payload, an unbounded chain of zero-length \u003ctt\u003eCONTINUATION\u003c/tt\u003e frames adds no bytes to the running total, never trips the size cap, and never emits \u003ctt\u003eEND_HEADERS\u003c/tt\u003e, yet each frame still nests the accumulator one level deeper.\u003c/p\u003e\u003cp\u003eA 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 \u003ctt\u003eHEADERS\u003c/tt\u003e frame without \u003ctt\u003eEND_HEADERS\u003c/tt\u003e and then stream zero-length \u003ctt\u003eCONTINUATION\u003c/tt\u003e 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.\u003c/p\u003e\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.9.2.\u003c/p\u003e"
                }
              ],
              "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."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "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",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-07-14T15:08:39.463Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-8pf6-g464-h6h9"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-59246.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-59246"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/5779de1666344b32aefc4354184ea07f902f73ce"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Zero-length HTTP/2 CONTINUATION frames bypass Mint\u0027s header-block byte-size cap and exhaust client memory",
          "x_generator": {
            "engine": "cvelib 1.8.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-59246",
        "datePublished": "2026-07-14T08:37:04.609Z",
        "dateReserved": "2026-07-04T04:24:03.652Z",
        "dateUpdated": "2026-07-14T15:08:39.463Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-58229 (GCVE-0-2026-58229)

    Vulnerability from nvd – Published: 2026-07-14 08:36 – Updated: 2026-07-14 15:07
    VLAI
    Title
    Unbounded HTTP/1 response-header and chunked-trailer accumulation in Mint causes memory-exhaustion DoS
    Summary
    Allocation of resources without limits vulnerability in elixir-mint mint allows a remote HTTP server to exhaust memory on the client host and cause a denial of service. The Mint.HTTP1.decode_headers/5 and Mint.HTTP1.decode_trailer_headers/4 functions in lib/mint/http1.ex accumulate every parsed response header and chunked-trailer field into a per-request list that persists across incoming TCP segments as request.headers_buffer, and only clear it when the terminating blank line is received. The section has no cap on the number of headers or on total bytes, and the underlying :erlang.decode_packet(:httph_bin, binary, []) parser is invoked with an empty option list so its per-line and per-packet size limits also default to unlimited. A malicious HTTP server (reachable directly, via an attacker-controlled redirect, via SSRF, or via a man-in-the-middle) can stream complete header lines (or, after a chunked body, complete trailer lines) indefinitely without ever emitting the terminating blank line. The connection state grows without bound until the BEAM node is killed by the operating system's out-of-memory handler, taking down the entire application that uses Mint as an HTTP client. This issue affects mint: from 0.1.0 before 1.9.2.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-07-14 12:27 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.9.2 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 3e6de4bac4821b0eb4d6109e8b1f3fb6458792c8 , < 566d702e6f29105f77522ca7aabb9f64f2f4e333 (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-58229",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-07-14T12:27:10.055823Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-07-14T12:27:15.737Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-qrfr-wh4c-3qhw"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_headers/5"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_trailer_headers/4"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.9.2",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_headers/5"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_trailer_headers/4"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "566d702e6f29105f77522ca7aabb9f64f2f4e333",
                  "status": "affected",
                  "version": "3e6de4bac4821b0eb4d6109e8b1f3fb6458792c8",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.9.2",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "zx (Jace)"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Andrea Leopardi"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAllocation of resources without limits vulnerability in elixir-mint mint allows a remote HTTP server to exhaust memory on the client host and cause a denial of service.\u003c/p\u003e\u003cp\u003eThe \u003ctt\u003eMint.HTTP1.decode_headers/5\u003c/tt\u003e and \u003ctt\u003eMint.HTTP1.decode_trailer_headers/4\u003c/tt\u003e functions in \u003ctt\u003elib/mint/http1.ex\u003c/tt\u003e accumulate every parsed response header and chunked-trailer field into a per-request list that persists across incoming TCP segments as \u003ctt\u003erequest.headers_buffer\u003c/tt\u003e, and only clear it when the terminating blank line is received. The section has no cap on the number of headers or on total bytes, and the underlying \u003ctt\u003e:erlang.decode_packet(:httph_bin, binary, [])\u003c/tt\u003e parser is invoked with an empty option list so its per-line and per-packet size limits also default to unlimited.\u003c/p\u003e\u003cp\u003eA malicious HTTP server (reachable directly, via an attacker-controlled redirect, via SSRF, or via a man-in-the-middle) can stream complete header lines (or, after a chunked body, complete trailer lines) indefinitely without ever emitting the terminating blank line. The connection state grows without bound until the BEAM node is killed by the operating system\u0027s out-of-memory handler, taking down the entire application that uses Mint as an HTTP client.\u003c/p\u003e\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.9.2.\u003c/p\u003e"
                }
              ],
              "value": "Allocation of resources without limits vulnerability in elixir-mint mint allows a remote HTTP server to exhaust memory on the client host and cause a denial of service.\n\nThe Mint.HTTP1.decode_headers/5 and Mint.HTTP1.decode_trailer_headers/4 functions in lib/mint/http1.ex accumulate every parsed response header and chunked-trailer field into a per-request list that persists across incoming TCP segments as request.headers_buffer, and only clear it when the terminating blank line is received. The section has no cap on the number of headers or on total bytes, and the underlying :erlang.decode_packet(:httph_bin, binary, []) parser is invoked with an empty option list so its per-line and per-packet size limits also default to unlimited.\n\nA malicious HTTP server (reachable directly, via an attacker-controlled redirect, via SSRF, or via a man-in-the-middle) can stream complete header lines (or, after a chunked body, complete trailer lines) indefinitely without ever emitting the terminating blank line. The connection state grows without bound until the BEAM node is killed by the operating system\u0027s out-of-memory handler, taking down the entire application that uses Mint as an HTTP client.\n\nThis issue affects mint: from 0.1.0 before 1.9.2."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 8.2,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-07-14T15:07:57.359Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-qrfr-wh4c-3qhw"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-58229.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-58229"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/566d702e6f29105f77522ca7aabb9f64f2f4e333"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Unbounded HTTP/1 response-header and chunked-trailer accumulation in Mint causes memory-exhaustion DoS",
          "x_generator": {
            "engine": "cvelib 1.8.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-58229",
        "datePublished": "2026-07-14T08:36:54.616Z",
        "dateReserved": "2026-06-29T18:54:08.633Z",
        "dateUpdated": "2026-07-14T15:07:57.359Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-56810 (GCVE-0-2026-56810)

    Vulnerability from nvd – Published: 2026-07-06 09:17 – Updated: 2026-07-07 04:32
    VLAI
    Title
    mint buffers an entire chunked response chunk in memory in Mint.HTTP1.decode_body/5
    Summary
    Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint (Mint.HTTP1 module) allows a denial of service via an oversized chunked transfer-encoded response. This vulnerability is associated with program files lib/mint/http1.ex and program routines 'Elixir.Mint.HTTP1':decode_body/5, 'Elixir.Mint.HTTP1':add_body_to_buffer/2. When Mint decodes a chunked HTTP response body, it accumulates each partial fragment of the current chunk in the connection's data_buffer (an unbounded iolist) via add_body_to_buffer/2 and does not emit the data to the caller until the full declared chunk length has been received. The chunk size is taken directly from the server and parsed with no upper bound, so a malicious or compromised server can announce one enormous chunk (for example a size line of 7FFFFFFF, about 2 GiB) and then send the body bytes slowly without ever completing the chunk. The client buffers every received byte while it waits for a completion that never arrives, and because no data responses are produced until the chunk finishes, a caller that otherwise streams large content-length bodies safely gains no protection. An unauthenticated remote server (reachable whenever a client follows redirects, fetches user-supplied URLs, or processes webhooks) can drive the client's memory arbitrarily high and trigger an out-of-memory condition. This issue affects mint: from 0.5.0 before 1.9.1.
    SSVC
    Exploitation: poc Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-07-06 15:52 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.5.0 , < 1.9.1 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: c575d819d39ebf7e9b77ec24584a5ffbb11c844e , < 193ce714907d16e8adc4ab3c40e4f0c2f045b2a6 (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-56810",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-07-06T15:52:57.089606Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-07-06T15:53:00.170Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-c59h-fq4p-r36r"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:add_body_to_buffer/2"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.9.1",
                  "status": "affected",
                  "version": "0.5.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:add_body_to_buffer/2"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "193ce714907d16e8adc4ab3c40e4f0c2f045b2a6",
                  "status": "affected",
                  "version": "c575d819d39ebf7e9b77ec24584a5ffbb11c844e",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.9.1",
                      "versionStartIncluding": "0.5.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Peter Ullrich"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Andrea Leopardi"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Eric Meadows-J\u00f6nsson"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAllocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint (\u003ctt\u003eMint.HTTP1\u003c/tt\u003e module) allows a denial of service via an oversized \u003ctt\u003echunked\u003c/tt\u003e transfer-encoded response.\u003c/p\u003e\u003cp\u003eThis vulnerability is associated with program files \u003ctt\u003elib/mint/http1.ex\u003c/tt\u003e and program routines \u003ctt\u003e\u0027Elixir.Mint.HTTP1\u0027:decode_body/5\u003c/tt\u003e, \u003ctt\u003e\u0027Elixir.Mint.HTTP1\u0027:add_body_to_buffer/2\u003c/tt\u003e.\u003c/p\u003e\u003cp\u003eWhen Mint decodes a \u003ctt\u003echunked\u003c/tt\u003e HTTP response body, it accumulates each partial fragment of the current chunk in the connection\u0027s \u003ctt\u003edata_buffer\u003c/tt\u003e (an unbounded iolist) via \u003ctt\u003eadd_body_to_buffer/2\u003c/tt\u003e and does not emit the data to the caller until the full declared chunk length has been received. The chunk size is taken directly from the server and parsed with no upper bound, so a malicious or compromised server can announce one enormous chunk (for example a size line of \u003ctt\u003e7FFFFFFF\u003c/tt\u003e, about 2 GiB) and then send the body bytes slowly without ever completing the chunk. The client buffers every received byte while it waits for a completion that never arrives, and because no data responses are produced until the chunk finishes, a caller that otherwise streams large \u003ctt\u003econtent-length\u003c/tt\u003e bodies safely gains no protection. An unauthenticated remote server (reachable whenever a client follows redirects, fetches user-supplied URLs, or processes webhooks) can drive the client\u0027s memory arbitrarily high and trigger an out-of-memory condition.\u003c/p\u003e\u003cp\u003eThis issue affects mint: from 0.5.0 before 1.9.1.\u003c/p\u003e"
                }
              ],
              "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint (Mint.HTTP1 module) allows a denial of service via an oversized chunked transfer-encoded response.\n\nThis vulnerability is associated with program files lib/mint/http1.ex and program routines \u0027Elixir.Mint.HTTP1\u0027:decode_body/5, \u0027Elixir.Mint.HTTP1\u0027:add_body_to_buffer/2.\n\nWhen Mint decodes a chunked HTTP response body, it accumulates each partial fragment of the current chunk in the connection\u0027s data_buffer (an unbounded iolist) via add_body_to_buffer/2 and does not emit the data to the caller until the full declared chunk length has been received. The chunk size is taken directly from the server and parsed with no upper bound, so a malicious or compromised server can announce one enormous chunk (for example a size line of 7FFFFFFF, about 2 GiB) and then send the body bytes slowly without ever completing the chunk. The client buffers every received byte while it waits for a completion that never arrives, and because no data responses are produced until the chunk finishes, a caller that otherwise streams large content-length bodies safely gains no protection. An unauthenticated remote server (reachable whenever a client follows redirects, fetches user-supplied URLs, or processes webhooks) can drive the client\u0027s memory arbitrarily high and trigger an out-of-memory condition.\n\nThis issue affects mint: from 0.5.0 before 1.9.1."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 8.7,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-07-07T04:32:36.390Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-c59h-fq4p-r36r"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-56810.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-56810"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/193ce714907d16e8adc4ab3c40e4f0c2f045b2a6"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "mint buffers an entire chunked response chunk in memory in Mint.HTTP1.decode_body/5",
          "x_generator": {
            "engine": "cvelib 1.8.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-56810",
        "datePublished": "2026-07-06T09:17:17.429Z",
        "dateReserved": "2026-06-23T12:29:02.507Z",
        "dateUpdated": "2026-07-07T04:32:36.390Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-49754 (GCVE-0-2026-49754)

    Vulnerability from nvd – Published: 2026-06-02 14:15 – Updated: 2026-06-02 19:14
    VLAI
    Title
    HTTP/2 CONTINUATION flood in Mint client via unbounded header-block accumulation
    Summary
    Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint Mint allows attacker-controlled HTTP/2 servers to exhaust memory in a Mint client (HTTP/2 CONTINUATION flood). When Mint's HTTP/2 receive path observes a HEADERS frame without the END_HEADERS flag, the unparsed header-block fragment is parked in conn.headers_being_processed, and every subsequent CONTINUATION frame on that stream is appended to the accumulator. Nothing in the receive path caps the accumulator: there is no per-stream size limit, no CONTINUATION frame-count limit, and max_header_list_size is only enforced on outgoing requests, never on inbound header blocks (its default is :infinity). A malicious or compromised HTTP/2 server can stream an endless sequence of CONTINUATION frames (each up to the peer-advertised SETTINGS_MAX_FRAME_SIZE) and drive the client's iolist to arbitrary size, causing memory exhaustion and BEAM process death. A single connection to an attacker-controlled HTTP/2 endpoint is sufficient. This issue affects mint: from 0.1.0 before 1.9.0.
    SSVC
    Exploitation: poc Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-06-02 18:08 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.9.0 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 596ca4304504be68939c4929e0831557097962b8 , < b662d127d3028b5426c88d4c9cc7fe430491a10b (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-49754",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-06-02T18:08:02.308938Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-06-02T18:08:05.621Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-2p26-p43x-fhp8"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_continuation/3"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_headers/3"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.9.0",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_continuation/3"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_headers/3"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint.git",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "b662d127d3028b5426c88d4c9cc7fe430491a10b",
                  "status": "affected",
                  "version": "596ca4304504be68939c4929e0831557097962b8",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.9.0",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Peter Ullrich"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint Mint allows attacker-controlled HTTP/2 servers to exhaust memory in a Mint client (HTTP/2 CONTINUATION flood).\u003cp\u003eWhen Mint\u0027s HTTP/2 receive path observes a \u003ctt\u003eHEADERS\u003c/tt\u003e frame without the \u003ctt\u003eEND_HEADERS\u003c/tt\u003e flag, the unparsed header-block fragment is parked in \u003ctt\u003econn.headers_being_processed\u003c/tt\u003e, and every subsequent \u003ctt\u003eCONTINUATION\u003c/tt\u003e frame on that stream is appended to the accumulator. Nothing in the receive path caps the accumulator: there is no per-stream size limit, no \u003ctt\u003eCONTINUATION\u003c/tt\u003e frame-count limit, and \u003ctt\u003emax_header_list_size\u003c/tt\u003e is only enforced on outgoing requests, never on inbound header blocks (its default is \u003ctt\u003e:infinity\u003c/tt\u003e).\u003c/p\u003e\u003cp\u003eA malicious or compromised HTTP/2 server can stream an endless sequence of \u003ctt\u003eCONTINUATION\u003c/tt\u003e frames (each up to the peer-advertised \u003ctt\u003eSETTINGS_MAX_FRAME_SIZE\u003c/tt\u003e) and drive the client\u0027s iolist to arbitrary size, causing memory exhaustion and BEAM process death. A single connection to an attacker-controlled HTTP/2 endpoint is sufficient.\u003c/p\u003e\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.9.0.\u003c/p\u003e"
                }
              ],
              "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint Mint allows attacker-controlled HTTP/2 servers to exhaust memory in a Mint client (HTTP/2 CONTINUATION flood).\n\nWhen Mint\u0027s HTTP/2 receive path observes a HEADERS frame without the END_HEADERS flag, the unparsed header-block fragment is parked in conn.headers_being_processed, and every subsequent CONTINUATION frame on that stream is appended to the accumulator. Nothing in the receive path caps the accumulator: there is no per-stream size limit, no CONTINUATION frame-count limit, and max_header_list_size is only enforced on outgoing requests, never on inbound header blocks (its default is :infinity).\n\nA malicious or compromised HTTP/2 server can stream an endless sequence of CONTINUATION frames (each up to the peer-advertised SETTINGS_MAX_FRAME_SIZE) and drive the client\u0027s iolist to arbitrary size, causing memory exhaustion and BEAM process death. A single connection to an attacker-controlled HTTP/2 endpoint is sufficient.\n\nThis issue affects mint: from 0.1.0 before 1.9.0."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 8.2,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-06-02T19:14:33.100Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-2p26-p43x-fhp8"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-49754.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-49754"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/b662d127d3028b5426c88d4c9cc7fe430491a10b"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "HTTP/2 CONTINUATION flood in Mint client via unbounded header-block accumulation",
          "workarounds": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eRestrict Mint to HTTP/1 on connections to untrusted servers by passing \u003ctt\u003eprotocols: [:http1]\u003c/tt\u003e to \u003ctt\u003e\u0027Elixir.Mint.HTTP\u0027:connect/4\u003c/tt\u003e. This avoids the vulnerable HTTP/2 receive path entirely, at the cost of losing HTTP/2 for those connections.\u003c/p\u003e"
                }
              ],
              "value": "Restrict Mint to HTTP/1 on connections to untrusted servers by passing protocols: [:http1] to Mint.HTTP.connect/4. This avoids the vulnerable HTTP/2 receive path entirely, at the cost of losing HTTP/2 for those connections."
            }
          ],
          "x_generator": {
            "engine": "cvelib 1.8.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-49754",
        "datePublished": "2026-06-02T14:15:14.951Z",
        "dateReserved": "2026-06-01T13:45:22.448Z",
        "dateUpdated": "2026-06-02T19:14:33.100Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-49753 (GCVE-0-2026-49753)

    Vulnerability from nvd – Published: 2026-06-02 14:15 – Updated: 2026-06-02 19:14
    VLAI
    Title
    HTTP response smuggling in Mint HTTP/1 client via lenient Content-Length parsing
    Summary
    Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') vulnerability in elixir-mint Mint allows attacker-controlled HTTP/1 servers to desynchronise response framing on shared connections. Mint's HTTP/1 Content-Length parser, Mint.HTTP1.Parse.content_length_header/1 in lib/mint/http1/parse.ex, parses the header value with Integer.parse/1, which accepts an optional + or - sign prefix. The length >= 0 guard rejects negatives, but inputs such as +0 or +123 are returned as valid lengths. RFC 7230 specifies Content-Length = 1*DIGIT, with no sign character permitted. A fronting proxy or load balancer that strictly enforces the grammar will reject or reframe a header like Content-Length: +0, while Mint silently treats it as zero. When Mint reuses the socket (keep-alive, pipelining, or any pooled connection shared across requesters), the parser disagreement is a response-smuggling primitive: the proxy delimits the body one way, Mint another, and bytes from one response get attributed to the next. Where the same Mint connection is shared across trust boundaries, an attacker-controlled upstream can leak bytes into a different consumer's response stream. This issue affects mint: from 0.1.0 before 1.9.0.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-06-02 18:06 UTC
    CWE
    • CWE-444 - Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.9.0 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 65e0e86d799a6d3b08e4372fccdd9747535e0dd6 , < 47e48027480228e4e32a0b4df39db497b4804921 (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-49753",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-06-02T18:06:41.525477Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-06-02T18:06:51.373Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-mjqx-c6f6-7rc2"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1.Parse\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1/parse.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Parse\u0027:content_length_header/1"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.9.0",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1.Parse\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1/parse.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Parse\u0027:content_length_header/1"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint.git",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "47e48027480228e4e32a0b4df39db497b4804921",
                  "status": "affected",
                  "version": "65e0e86d799a6d3b08e4372fccdd9747535e0dd6",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.9.0",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Peter Ullrich"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027) vulnerability in elixir-mint Mint allows attacker-controlled HTTP/1 servers to desynchronise response framing on shared connections.\u003cp\u003eMint\u0027s HTTP/1 \u003ctt\u003eContent-Length\u003c/tt\u003e parser, \u003ctt\u003e\u0027Elixir.Mint.HTTP1.Parse\u0027:content_length_header/1\u003c/tt\u003e in \u003ctt\u003elib/mint/http1/parse.ex\u003c/tt\u003e, parses the header value with \u003ctt\u003eInteger.parse/1\u003c/tt\u003e, which accepts an optional \u003ctt\u003e+\u003c/tt\u003e or \u003ctt\u003e-\u003c/tt\u003e sign prefix. The \u003ctt\u003elength \u0026gt;= 0\u003c/tt\u003e guard rejects negatives, but inputs such as \u003ctt\u003e+0\u003c/tt\u003e or \u003ctt\u003e+123\u003c/tt\u003e are returned as valid lengths. RFC 7230 specifies \u003ctt\u003eContent-Length = 1*DIGIT\u003c/tt\u003e, with no sign character permitted.\u003c/p\u003e\u003cp\u003eA fronting proxy or load balancer that strictly enforces the grammar will reject or reframe a header like \u003ctt\u003eContent-Length: +0\u003c/tt\u003e, while Mint silently treats it as zero. When Mint reuses the socket (keep-alive, pipelining, or any pooled connection shared across requesters), the parser disagreement is a response-smuggling primitive: the proxy delimits the body one way, Mint another, and bytes from one response get attributed to the next. Where the same Mint connection is shared across trust boundaries, an attacker-controlled upstream can leak bytes into a different consumer\u0027s response stream.\u003c/p\u003e\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.9.0.\u003c/p\u003e"
                }
              ],
              "value": "Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027) vulnerability in elixir-mint Mint allows attacker-controlled HTTP/1 servers to desynchronise response framing on shared connections.\n\nMint\u0027s HTTP/1 Content-Length parser, Mint.HTTP1.Parse.content_length_header/1 in lib/mint/http1/parse.ex, parses the header value with Integer.parse/1, which accepts an optional + or - sign prefix. The length \u003e= 0 guard rejects negatives, but inputs such as +0 or +123 are returned as valid lengths. RFC 7230 specifies Content-Length = 1*DIGIT, with no sign character permitted.\n\nA fronting proxy or load balancer that strictly enforces the grammar will reject or reframe a header like Content-Length: +0, while Mint silently treats it as zero. When Mint reuses the socket (keep-alive, pipelining, or any pooled connection shared across requesters), the parser disagreement is a response-smuggling primitive: the proxy delimits the body one way, Mint another, and bytes from one response get attributed to the next. Where the same Mint connection is shared across trust boundaries, an attacker-controlled upstream can leak bytes into a different consumer\u0027s response stream.\n\nThis issue affects mint: from 0.1.0 before 1.9.0."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-273",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-273 HTTP Response Smuggling"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "LOW",
                "subIntegrityImpact": "LOW",
                "userInteraction": "NONE",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:L/SI:L/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "LOW"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-444",
                  "description": "CWE-444 Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-06-02T19:14:42.817Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-mjqx-c6f6-7rc2"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-49753.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-49753"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/47e48027480228e4e32a0b4df39db497b4804921"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "HTTP response smuggling in Mint HTTP/1 client via lenient Content-Length parsing",
          "x_generator": {
            "engine": "cvelib 1.8.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-49753",
        "datePublished": "2026-06-02T14:15:17.078Z",
        "dateReserved": "2026-06-01T13:45:22.448Z",
        "dateUpdated": "2026-06-02T19:14:42.817Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-48862 (GCVE-0-2026-48862)

    Vulnerability from nvd – Published: 2026-06-02 14:15 – Updated: 2026-06-02 19:14
    VLAI
    Title
    Unbounded conn.streams growth in Mint HTTP/2 client via unenforced PUSH_PROMISE concurrency
    Summary
    Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint Mint allows attacker-controlled HTTP/2 servers to exhaust memory in a Mint client via PUSH_PROMISE flooding. In lib/mint/http2.ex, Mint.HTTP2.decode_push_promise_headers_and_add_response/5 inserts a :reserved_remote entry into conn.streams for every promised stream ID. The neighbouring Mint.HTTP2.assert_valid_promised_stream_id/2 only verifies that the promised ID is even and not already present; client_settings.max_concurrent_streams is not consulted at promise time. The concurrency cap is only checked when the response HEADERS for the promised stream arrive, so a server that emits PUSH_PROMISE frames and withholds the matching HEADERS never trips that check. HTTP/2 server push is accepted by default (client_settings.enable_push defaults to true). A single long-lived HTTP/2 connection to a hostile server lets that server pin one conn.streams entry per PUSH_PROMISE frame it sends, with no upper bound, until the client process runs out of memory. This issue affects mint: from 0.2.0 before 1.9.0.
    SSVC
    Exploitation: poc Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-06-02 18:11 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.2.0 , < 1.9.0 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 65c6394d05a1b8aa4a7461708c3aa173e8d7a5cf , < 70b97b6a5209fb288b0e04d8e657dda26c59de67 (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-48862",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-06-02T18:11:00.524487Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-06-02T18:11:05.599Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-g586-ccqf-7x4r"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_push_promise/3"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:decode_push_promise_headers_and_add_response/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.9.0",
                  "status": "affected",
                  "version": "0.2.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_push_promise/3"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:decode_push_promise_headers_and_add_response/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint.git",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "70b97b6a5209fb288b0e04d8e657dda26c59de67",
                  "status": "affected",
                  "version": "65c6394d05a1b8aa4a7461708c3aa173e8d7a5cf",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.9.0",
                      "versionStartIncluding": "0.2.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Peter Ullrich"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint Mint allows attacker-controlled HTTP/2 servers to exhaust memory in a Mint client via PUSH_PROMISE flooding.\u003cp\u003eIn \u003ctt\u003elib/mint/http2.ex\u003c/tt\u003e, \u003ctt\u003e\u0027Elixir.Mint.HTTP2\u0027:decode_push_promise_headers_and_add_response/5\u003c/tt\u003e inserts a \u003ctt\u003e:reserved_remote\u003c/tt\u003e entry into \u003ctt\u003econn.streams\u003c/tt\u003e for every promised stream ID. The neighbouring \u003ctt\u003e\u0027Elixir.Mint.HTTP2\u0027:assert_valid_promised_stream_id/2\u003c/tt\u003e only verifies that the promised ID is even and not already present; \u003ctt\u003eclient_settings.max_concurrent_streams\u003c/tt\u003e is not consulted at promise time. The concurrency cap is only checked when the response \u003ctt\u003eHEADERS\u003c/tt\u003e for the promised stream arrive, so a server that emits \u003ctt\u003ePUSH_PROMISE\u003c/tt\u003e frames and withholds the matching \u003ctt\u003eHEADERS\u003c/tt\u003e never trips that check.\u003c/p\u003e\u003cp\u003eHTTP/2 server push is accepted by default (\u003ctt\u003eclient_settings.enable_push\u003c/tt\u003e defaults to \u003ctt\u003etrue\u003c/tt\u003e). A single long-lived HTTP/2 connection to a hostile server lets that server pin one \u003ctt\u003econn.streams\u003c/tt\u003e entry per \u003ctt\u003ePUSH_PROMISE\u003c/tt\u003e frame it sends, with no upper bound, until the client process runs out of memory.\u003c/p\u003e\u003cp\u003eThis issue affects mint: from 0.2.0 before 1.9.0.\u003c/p\u003e"
                }
              ],
              "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint Mint allows attacker-controlled HTTP/2 servers to exhaust memory in a Mint client via PUSH_PROMISE flooding.\n\nIn lib/mint/http2.ex, Mint.HTTP2.decode_push_promise_headers_and_add_response/5 inserts a :reserved_remote entry into conn.streams for every promised stream ID. The neighbouring Mint.HTTP2.assert_valid_promised_stream_id/2 only verifies that the promised ID is even and not already present; client_settings.max_concurrent_streams is not consulted at promise time. The concurrency cap is only checked when the response HEADERS for the promised stream arrive, so a server that emits PUSH_PROMISE frames and withholds the matching HEADERS never trips that check.\n\nHTTP/2 server push is accepted by default (client_settings.enable_push defaults to true). A single long-lived HTTP/2 connection to a hostile server lets that server pin one conn.streams entry per PUSH_PROMISE frame it sends, with no upper bound, until the client process runs out of memory.\n\nThis issue affects mint: from 0.2.0 before 1.9.0."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 8.2,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-06-02T19:14:09.683Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-g586-ccqf-7x4r"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-48862.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-48862"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/70b97b6a5209fb288b0e04d8e657dda26c59de67"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Unbounded conn.streams growth in Mint HTTP/2 client via unenforced PUSH_PROMISE concurrency",
          "workarounds": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eDisable HTTP/2 server push on connections to untrusted servers by passing \u003ctt\u003eclient_settings: [enable_push: false]\u003c/tt\u003e to \u003ctt\u003e\u0027Elixir.Mint.HTTP\u0027:connect/4\u003c/tt\u003e. This makes Mint reject any inbound \u003ctt\u003ePUSH_PROMISE\u003c/tt\u003e frame with a \u003ctt\u003ePROTOCOL_ERROR\u003c/tt\u003e before the vulnerable code path is reached.\u003c/p\u003e"
                }
              ],
              "value": "Disable HTTP/2 server push on connections to untrusted servers by passing client_settings: [enable_push: false] to Mint.HTTP.connect/4. This makes Mint reject any inbound PUSH_PROMISE frame with a PROTOCOL_ERROR before the vulnerable code path is reached."
            }
          ],
          "x_generator": {
            "engine": "cvelib 1.8.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-48862",
        "datePublished": "2026-06-02T14:15:10.591Z",
        "dateReserved": "2026-05-25T20:44:10.697Z",
        "dateUpdated": "2026-06-02T19:14:09.683Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-48861 (GCVE-0-2026-48861)

    Vulnerability from nvd – Published: 2026-06-02 14:15 – Updated: 2026-06-02 19:14
    VLAI
    Title
    CRLF injection in HTTP/1 request line via unvalidated method in Mint
    Summary
    Improper Neutralization of CRLF Sequences ('CRLF Injection') vulnerability in elixir-mint Mint allows HTTP Request Splitting and HTTP Request Smuggling. In lib/mint/http1/request.ex, the encode_request_line/2 function splices the caller-supplied method and target arguments directly into the HTTP/1 request line without any character validation: [method, ?\s, target, " HTTP/1.1\r\n"]. An application that forwards attacker-controlled input as the HTTP method or target to Mint.HTTP.request/5 is therefore exposed to request-line CRLF injection: the attacker can terminate the request line early, inject arbitrary headers, and smuggle an entirely separate pipelined HTTP request onto the same TCP connection. Mint 1.7.0 introduced validate_request_target/2, which rejects CRLF and other control characters in the target by default and closes the path/query vector unless the caller opts out via skip_target_validation: true. The method field remains unvalidated, so the method-based injection is exploitable under the default Mint configuration on all versions. This issue affects mint: from 0.1.0 before 1.9.0.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-06-02 18:11 UTC
    CWE
    • CWE-93 - Improper Neutralization of CRLF Sequences ('CRLF Injection')
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.9.0 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 8db1acff30b6a9433762c18b1e1f891b8c1f74f7 , < fad091454cbb7449b19edb8e1fee12ca7cf28c3a (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-48861",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-06-02T18:11:46.297986Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-06-02T18:12:22.736Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-2pg6-44cx-c49v"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1.Request\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1/request.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Request\u0027:encode_request_line/2"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.9.0",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1.Request\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1/request.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Request\u0027:encode_request_line/2"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint.git",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "fad091454cbb7449b19edb8e1fee12ca7cf28c3a",
                  "status": "affected",
                  "version": "8db1acff30b6a9433762c18b1e1f891b8c1f74f7",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.9.0",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Peter Ullrich"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Improper Neutralization of CRLF Sequences (\u0027CRLF Injection\u0027) vulnerability in elixir-mint Mint allows HTTP Request Splitting and HTTP Request Smuggling.\u003cp\u003eIn \u003ctt\u003elib/mint/http1/request.ex\u003c/tt\u003e, the \u003ctt\u003eencode_request_line/2\u003c/tt\u003e function splices the caller-supplied \u003ctt\u003emethod\u003c/tt\u003e and \u003ctt\u003etarget\u003c/tt\u003e arguments directly into the HTTP/1 request line without any character validation: \u003ctt\u003e[method, ?\\s, target, \" HTTP/1.1\\r\\n\"]\u003c/tt\u003e. An application that forwards attacker-controlled input as the HTTP method or target to \u003ctt\u003e\u0027Elixir.Mint.HTTP\u0027:request/5\u003c/tt\u003e is therefore exposed to request-line CRLF injection: the attacker can terminate the request line early, inject arbitrary headers, and smuggle an entirely separate pipelined HTTP request onto the same TCP connection.\u003c/p\u003e\u003cp\u003eMint 1.7.0 introduced \u003ctt\u003evalidate_request_target/2\u003c/tt\u003e, which rejects CRLF and other control characters in the \u003ctt\u003etarget\u003c/tt\u003e by default and closes the path/query vector unless the caller opts out via \u003ctt\u003eskip_target_validation: true\u003c/tt\u003e. The \u003ctt\u003emethod\u003c/tt\u003e field remains unvalidated, so the method-based injection is exploitable under the default Mint configuration on all versions.\u003c/p\u003e\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.9.0.\u003c/p\u003e"
                }
              ],
              "value": "Improper Neutralization of CRLF Sequences (\u0027CRLF Injection\u0027) vulnerability in elixir-mint Mint allows HTTP Request Splitting and HTTP Request Smuggling.\n\nIn lib/mint/http1/request.ex, the encode_request_line/2 function splices the caller-supplied method and target arguments directly into the HTTP/1 request line without any character validation: [method, ?\\s, target, \" HTTP/1.1\\r\\n\"]. An application that forwards attacker-controlled input as the HTTP method or target to Mint.HTTP.request/5 is therefore exposed to request-line CRLF injection: the attacker can terminate the request line early, inject arbitrary headers, and smuggle an entirely separate pipelined HTTP request onto the same TCP connection.\n\nMint 1.7.0 introduced validate_request_target/2, which rejects CRLF and other control characters in the target by default and closes the path/query vector unless the caller opts out via skip_target_validation: true. The method field remains unvalidated, so the method-based injection is exploitable under the default Mint configuration on all versions.\n\nThis issue affects mint: from 0.1.0 before 1.9.0."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-33",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-33 HTTP Request Smuggling"
                }
              ]
            },
            {
              "capecId": "CAPEC-105",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-105 HTTP Request Splitting"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "LOCAL",
                "baseScore": 2.1,
                "baseSeverity": "LOW",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "LOW",
                "userInteraction": "NONE",
                "vectorString": "CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "LOW"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-93",
                  "description": "CWE-93 Improper Neutralization of CRLF Sequences (\u0027CRLF Injection\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-06-02T19:14:00.466Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-2pg6-44cx-c49v"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-48861.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-48861"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/fad091454cbb7449b19edb8e1fee12ca7cf28c3a"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "CRLF injection in HTTP/1 request line via unvalidated method in Mint",
          "x_generator": {
            "engine": "cvelib 1.8.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-48861",
        "datePublished": "2026-06-02T14:15:09.015Z",
        "dateReserved": "2026-05-25T20:44:10.697Z",
        "dateUpdated": "2026-06-02T19:14:00.466Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-94194 (GCVE-0-2026-94194)

    Vulnerability from cvelistv5 – Published: 2026-09-28 11:15 – Updated: 2026-09-30 13:17
    VLAI
    Title
    Mint HTTP/1 client applies chunked framing when chunked is not the final transfer coding, enabling response smuggling through intermediaries
    Summary
    Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize an intermediary and the Mint client on a pooled connection, poisoning the responses to subsequent requests that share the connection. message_body/1 in lib/mint/http1.ex selects chunked framing when chunked is the first coding listed in a response's Transfer-Encoding fields. RFC 9112 section 6.3 applies chunked framing only when chunked is the final coding, and otherwise reads the body until the server closes the connection. For a response such as Transfer-Encoding: chunked, gzip, an intermediary that follows the RFC treats every byte up to the close as the body, while Mint ends the body at the zero-length chunk and parses the remaining bytes as the response to the next request on the connection. Mint also keeps the connection open after an HTTP/1.0 response, final or 1xx, that carries Transfer-Encoding and Connection: keep-alive. RFC 9112 section 6.1 requires treating the framing of such a message as faulty and closing the connection after it, so bytes after its chunked body are parsed as the response to the next request in the same way. This issue affects mint: from 0.1.0 before 1.10.2.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-30 13:16 UTC
    CWE
    • CWE-444 - Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.10.2 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 60089586ec7adc9fddb09f69a2f5919ba9ac7f33 , < * (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Date Public
    2026-09-28 11:15
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-94194",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-30T13:16:26.592339Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-30T13:17:02.563Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-gvrc-75rc-7gj9"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:message_body/1"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:stream/2"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:recv/3"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.10.2",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:message_body/1"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:stream/2"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:recv/3"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "2ec8b696b5475ecbdaa87c0098957bca339e17c0",
                      "status": "unaffected"
                    },
                    {
                      "at": "8d1bbcfa566a8c1dc23d33f40d550c28250ac7b9",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "60089586ec7adc9fddb09f69a2f5919ba9ac7f33",
                  "versionType": "git"
                }
              ]
            }
          ],
          "configurations": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eExploitation requires an HTTP/1 intermediary (proxy, load balancer, or gateway) between the Mint client and the attacker-influenced origin that frames a response whose final transfer coding is not \u003ccode\u003echunked\u003c/code\u003e as ending at connection close and forwards its \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header to the client unchanged, and HTTP/1 connections between the client and the intermediary that are reused across requests. Intermediaries that reject such a header or re-frame the body do not create the disagreement. Mint clients that connect to the origin directly, or that don\u0027t reuse connections, aren\u0027t exposed to response-queue poisoning.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Exploitation requires an HTTP/1 intermediary (proxy, load balancer, or gateway) between the Mint client and the attacker-influenced origin that frames a response whose final transfer coding is not `chunked` as ending at connection close and forwards its `Transfer-Encoding` header to the client unchanged, and HTTP/1 connections between the client and the intermediary that are reused across requests. Intermediaries that reject such a header or re-frame the body do not create the disagreement. Mint clients that connect to the origin directly, or that don\u0027t reuse connections, aren\u0027t exposed to response-queue poisoning."
                }
              ],
              "value": "Exploitation requires an HTTP/1 intermediary (proxy, load balancer, or gateway) between the Mint client and the attacker-influenced origin that frames a response whose final transfer coding is not chunked as ending at connection close and forwards its Transfer-Encoding header to the client unchanged, and HTTP/1 connections between the client and the intermediary that are reused across requests. Intermediaries that reject such a header or re-frame the body do not create the disagreement. Mint clients that connect to the origin directly, or that don\u0027t reuse connections, aren\u0027t exposed to response-queue poisoning."
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.10.2",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "zx"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "zx"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Eric Meadows-J\u00f6nsson"
            }
          ],
          "dateAssigned": "2026-09-27T11:54:52.000Z",
          "datePublic": "2026-09-28T11:15:31.000Z",
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eInconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize an intermediary and the Mint client on a pooled connection, poisoning the responses to subsequent requests that share the connection.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003emessage_body/1\u003c/code\u003e in \u003ccode\u003elib/mint/http1.ex\u003c/code\u003e selects chunked framing when \u003ccode\u003echunked\u003c/code\u003e is the first coding listed in a response\u0027s \u003ccode\u003eTransfer-Encoding\u003c/code\u003e fields. RFC 9112 section 6.3 applies chunked framing only when \u003ccode\u003echunked\u003c/code\u003e is the final coding, and otherwise reads the body until the server closes the connection. For a response such as \u003ccode\u003eTransfer-Encoding: chunked, gzip\u003c/code\u003e, an intermediary that follows the RFC treats every byte up to the close as the body, while Mint ends the body at the zero-length chunk and parses the remaining bytes as the response to the next request on the connection.\u003c/p\u003e\n\u003cp\u003eMint also keeps the connection open after an HTTP/1.0 response, final or 1xx, that carries \u003ccode\u003eTransfer-Encoding\u003c/code\u003e and \u003ccode\u003eConnection: keep-alive\u003c/code\u003e. RFC 9112 section 6.1 requires treating the framing of such a message as faulty and closing the connection after it, so bytes after its chunked body are parsed as the response to the next request in the same way.\u003c/p\u003e\n\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.10.2.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize an intermediary and the Mint client on a pooled connection, poisoning the responses to subsequent requests that share the connection.\n\n`message_body/1` in `lib/mint/http1.ex` selects chunked framing when `chunked` is the first coding listed in a response\u0027s `Transfer-Encoding` fields. RFC 9112 section 6.3 applies chunked framing only when `chunked` is the final coding, and otherwise reads the body until the server closes the connection. For a response such as `Transfer-Encoding: chunked, gzip`, an intermediary that follows the RFC treats every byte up to the close as the body, while Mint ends the body at the zero-length chunk and parses the remaining bytes as the response to the next request on the connection.\n\nMint also keeps the connection open after an HTTP/1.0 response, final or 1xx, that carries `Transfer-Encoding` and `Connection: keep-alive`. RFC 9112 section 6.1 requires treating the framing of such a message as faulty and closing the connection after it, so bytes after its chunked body are parsed as the response to the next request in the same way.\n\nThis issue affects mint: from 0.1.0 before 1.10.2."
                }
              ],
              "value": "Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize an intermediary and the Mint client on a pooled connection, poisoning the responses to subsequent requests that share the connection.\n\nmessage_body/1 in lib/mint/http1.ex selects chunked framing when chunked is the first coding listed in a response\u0027s Transfer-Encoding fields. RFC 9112 section 6.3 applies chunked framing only when chunked is the final coding, and otherwise reads the body until the server closes the connection. For a response such as Transfer-Encoding: chunked, gzip, an intermediary that follows the RFC treats every byte up to the close as the body, while Mint ends the body at the zero-length chunk and parses the remaining bytes as the response to the next request on the connection.\n\nMint also keeps the connection open after an HTTP/1.0 response, final or 1xx, that carries Transfer-Encoding and Connection: keep-alive. RFC 9112 section 6.1 requires treating the framing of such a message as faulty and closing the connection after it, so bytes after its chunked body are parsed as the response to the next request in the same way.\n\nThis issue affects mint: from 0.1.0 before 1.10.2."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-273",
              "descriptions": [
                {
                  "lang": "en",
                  "supportingMedia": [
                    {
                      "base64": false,
                      "type": "text/html",
                      "value": "\u003cp\u003eA malicious or attacker-influenced HTTP/1 origin behind an intermediary that follows RFC 9112 framing can make the intermediary and the Mint client disagree on where a response ends. On a pooled keep-alive connection, bytes the origin appends to one response become the response to the next request sharing the connection, and the real responses shift to later requests.\u003c/p\u003e"
                    },
                    {
                      "base64": false,
                      "type": "text/markdown",
                      "value": "A malicious or attacker-influenced HTTP/1 origin behind an intermediary that follows RFC 9112 framing can make the intermediary and the Mint client disagree on where a response ends. On a pooled keep-alive connection, bytes the origin appends to one response become the response to the next request sharing the connection, and the real responses shift to later requests."
                    }
                  ],
                  "value": "A malicious or attacker-influenced HTTP/1 origin behind an intermediary that follows RFC 9112 framing can make the intermediary and the Mint client disagree on where a response ends. On a pooled keep-alive connection, bytes the origin appends to one response become the response to the next request sharing the connection, and the real responses shift to later requests."
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-444",
                  "description": "CWE-444 Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-29T10:16:39.032Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "name": "GitHub Advisory",
              "tags": [
                "related",
                "vendor-advisory"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-gvrc-75rc-7gj9"
            },
            {
              "name": "EEF CNA record for CVE-2026-94194",
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-94194.html"
            },
            {
              "name": "OSV record EEF-CVE-2026-94194",
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-94194"
            },
            {
              "name": "Introducing commit 6008958 in elixir-mint/mint",
              "tags": [
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/60089586ec7adc9fddb09f69a2f5919ba9ac7f33"
            },
            {
              "name": "Fix commit 2ec8b69 in elixir-mint/mint",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/2ec8b696b5475ecbdaa87c0098957bca339e17c0"
            },
            {
              "name": "Fix commit 8d1bbcf in elixir-mint/mint",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/8d1bbcfa566a8c1dc23d33f40d550c28250ac7b9"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Mint HTTP/1 client applies chunked framing when chunked is not the final transfer coding, enabling response smuggling through intermediaries",
          "x_proofOfConcept": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003col\u003e\n\u003cli\u003eStart a loopback TCP server that answers the first request with \u003ccode\u003eHTTP/1.1 200 OK\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding: chunked, gzip\u003c/code\u003e, the chunked body \u003ccode\u003e5\\r\\nLEGIT\\r\\n0\\r\\n\\r\\n\u003c/code\u003e, and directly after it the bytes \u003ccode\u003eHTTP/1.1 200 OK\\r\\nContent-Length: 8\\r\\n\\r\\nSMUGGLED\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eConnect with \u003ccode\u003eMint.HTTP1\u003c/code\u003e and send a request. Mint returns \u003ccode\u003eLEGIT\u003c/code\u003e as the complete body, keeps the connection open, and holds the second response in \u003ccode\u003econn.buffer\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eSend a second request on the same connection and have the server answer it with a real response. Mint returns \u003ccode\u003eSMUGGLED\u003c/code\u003e as the response to the second request and keeps the real one in the buffer.\u003c/li\u003e\n\u003cli\u003ePipelining both requests before the server answers gives the same result from a single \u003ccode\u003eMint.HTTP1.stream/2\u003c/code\u003e call.\u003c/li\u003e\n\u003c/ol\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "1. Start a loopback TCP server that answers the first request with `HTTP/1.1 200 OK` and `Transfer-Encoding: chunked, gzip`, the chunked body `5\\r\\nLEGIT\\r\\n0\\r\\n\\r\\n`, and directly after it the bytes `HTTP/1.1 200 OK\\r\\nContent-Length: 8\\r\\n\\r\\nSMUGGLED`.\n2. Connect with `Mint.HTTP1` and send a request. Mint returns `LEGIT` as the complete body, keeps the connection open, and holds the second response in `conn.buffer`.\n3. Send a second request on the same connection and have the server answer it with a real response. Mint returns `SMUGGLED` as the response to the second request and keeps the real one in the buffer.\n4. Pipelining both requests before the server answers gives the same result from a single `Mint.HTTP1.stream/2` call."
                }
              ],
              "value": "* Start a loopback TCP server that answers the first request with HTTP/1.1 200 OK and Transfer-Encoding: chunked, gzip, the chunked body 5\\r\\nLEGIT\\r\\n0\\r\\n\\r\\n, and directly after it the bytes HTTP/1.1 200 OK\\r\\nContent-Length: 8\\r\\n\\r\\nSMUGGLED.\n* Connect with Mint.HTTP1 and send a request. Mint returns LEGIT as the complete body, keeps the connection open, and holds the second response in conn.buffer.\n* Send a second request on the same connection and have the server answer it with a real response. Mint returns SMUGGLED as the response to the second request and keeps the real one in the buffer.\n* Pipelining both requests before the server answers gives the same result from a single Mint.HTTP1.stream/2 call."
            }
          ],
          "x_technicalAnalysis": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003cstrong\u003e1. Coding list.\u003c/strong\u003e \u003ccode\u003estore_header/3\u003c/code\u003e in \u003ccode\u003elib/mint/http1.ex\u003c/code\u003e tokenizes each \u003ccode\u003eTransfer-Encoding\u003c/code\u003e field with \u003ccode\u003eMint.HTTP1.Parse.transfer_encoding_header/1\u003c/code\u003e and appends the codings to \u003ccode\u003erequest.transfer_encoding\u003c/code\u003e in the order received.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2. Framing decision.\u003c/strong\u003e \u003ccode\u003emessage_body/1\u003c/code\u003e returns chunked framing when \u003ccode\u003eList.first(request.transfer_encoding)\u003c/code\u003e is \u003ccode\u003e\"chunked\"\u003c/code\u003e. The only other \u003ccode\u003eTransfer-Encoding\u003c/code\u003e check rejects a response that also carries \u003ccode\u003eContent-Length\u003c/code\u003e, so \u003ccode\u003echunked, gzip\u003c/code\u003e on its own is framed as chunked.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e3. Leftover bytes.\u003c/strong\u003e \u003ccode\u003edecode_body/5\u003c/code\u003e ends the body at the zero-length chunk and its trailer section, and \u003ccode\u003enext_request/3\u003c/code\u003e keeps the rest of the data in \u003ccode\u003econn.buffer\u003c/code\u003e or decodes it immediately as the next queued response. An RFC 9112 intermediary frames the same response as ending at connection close, so bytes it forwarded as body of the first response become the response to the next request on the Mint connection, and that request\u0027s real response is left in the buffer for the one after it.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e4. HTTP/1.0 keep-alive.\u003c/strong\u003e \u003ccode\u003erequest_done/2\u003c/code\u003e keeps an HTTP/1.0 connection open when the response has \u003ccode\u003eConnection: keep-alive\u003c/code\u003e, without checking for \u003ccode\u003eTransfer-Encoding\u003c/code\u003e, and \u003ccode\u003edecode_body(:informational, ...)\u003c/code\u003e resets the framing state of a 1xx response and keeps parsing. An HTTP/1.0 response with \u003ccode\u003eTransfer-Encoding: chunked\u003c/code\u003e and \u003ccode\u003eConnection: keep-alive\u003c/code\u003e therefore leaves the connection open after its chunked body, and the following bytes are decoded as the next queued response, although RFC 9112 section 6.1 requires closing the connection after such a message.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "**1. Coding list.** `store_header/3` in `lib/mint/http1.ex` tokenizes each `Transfer-Encoding` field with `Mint.HTTP1.Parse.transfer_encoding_header/1` and appends the codings to `request.transfer_encoding` in the order received.\n\n**2. Framing decision.** `message_body/1` returns chunked framing when `List.first(request.transfer_encoding)` is `\"chunked\"`. The only other `Transfer-Encoding` check rejects a response that also carries `Content-Length`, so `chunked, gzip` on its own is framed as chunked.\n\n**3. Leftover bytes.** `decode_body/5` ends the body at the zero-length chunk and its trailer section, and `next_request/3` keeps the rest of the data in `conn.buffer` or decodes it immediately as the next queued response. An RFC 9112 intermediary frames the same response as ending at connection close, so bytes it forwarded as body of the first response become the response to the next request on the Mint connection, and that request\u0027s real response is left in the buffer for the one after it.\n\n**4. HTTP/1.0 keep-alive.** `request_done/2` keeps an HTTP/1.0 connection open when the response has `Connection: keep-alive`, without checking for `Transfer-Encoding`, and `decode_body(:informational, ...)` resets the framing state of a 1xx response and keeps parsing. An HTTP/1.0 response with `Transfer-Encoding: chunked` and `Connection: keep-alive` therefore leaves the connection open after its chunked body, and the following bytes are decoded as the next queued response, although RFC 9112 section 6.1 requires closing the connection after such a message."
                }
              ],
              "value": "1. Coding list. store_header/3 in lib/mint/http1.ex tokenizes each Transfer-Encoding field with Mint.HTTP1.Parse.transfer_encoding_header/1 and appends the codings to request.transfer_encoding in the order received.\n\n2. Framing decision. message_body/1 returns chunked framing when List.first(request.transfer_encoding) is \"chunked\". The only other Transfer-Encoding check rejects a response that also carries Content-Length, so chunked, gzip on its own is framed as chunked.\n\n3. Leftover bytes. decode_body/5 ends the body at the zero-length chunk and its trailer section, and next_request/3 keeps the rest of the data in conn.buffer or decodes it immediately as the next queued response. An RFC 9112 intermediary frames the same response as ending at connection close, so bytes it forwarded as body of the first response become the response to the next request on the Mint connection, and that request\u0027s real response is left in the buffer for the one after it.\n\n4. HTTP/1.0 keep-alive. request_done/2 keeps an HTTP/1.0 connection open when the response has Connection: keep-alive, without checking for Transfer-Encoding, and decode_body(:informational, ...) resets the framing state of a 1xx response and keeps parsing. An HTTP/1.0 response with Transfer-Encoding: chunked and Connection: keep-alive therefore leaves the connection open after its chunked body, and the following bytes are decoded as the next queued response, although RFC 9112 section 6.1 requires closing the connection after such a message."
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-94194",
        "datePublished": "2026-09-28T11:15:30.684Z",
        "dateReserved": "2026-09-24T13:45:02.496Z",
        "dateUpdated": "2026-09-30T13:17:02.563Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-92103 (GCVE-0-2026-92103)

    Vulnerability from cvelistv5 – Published: 2026-09-28 11:15 – Updated: 2026-09-30 15:00
    VLAI
    Title
    Mint HTTP/2 client buffers oversized frames up to 16 MiB before enforcing max_frame_size
    Summary
    Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to make the client hold up to about 16 MiB per connection in frames it should reject, consuming client memory. Mint.HTTP2.Frame.decode_next/2 in lib/mint/http2/frame.ex compares a frame with the client's max_frame_size (16,384 bytes by default) only once the whole declared payload has arrived. Until then it returns :more, and Mint.HTTP2 keeps every received byte in the connection buffer. A server can declare a frame length of up to 16,777,215 bytes and withhold the last byte, keeping roughly 1,024 times the advertised limit buffered for as long as the connection stays open. The server has to send every byte the client buffers, so there is no amplification, and the buffer stops at the 24-bit frame length limit. This issue affects mint: from 0.1.0 before 1.10.2.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-30 15:00 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.10.2 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 596ca4304504be68939c4929e0831557097962b8 , < * (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Date Public
    2026-09-28 11:15
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-92103",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-30T15:00:25.491334Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-30T15:00:38.567Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2.Frame\u0027",
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2/frame.ex",
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2.Frame\u0027:decode_next/2"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:stream/2"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:recv/3"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_new_data/3"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.10.2",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2.Frame\u0027",
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2/frame.ex",
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2.Frame\u0027:decode_next/2"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:stream/2"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:recv/3"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_new_data/3"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "20252ca85065f4d1092aed9ee4ed21841a507dfe",
                      "status": "unaffected"
                    },
                    {
                      "at": "44d7ce4755d0444ee415cbcca7ce4942382da4dd",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "596ca4304504be68939c4929e0831557097962b8",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.10.2",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "zx"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "zx"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Andrea Leopardi"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Eric Meadows-J\u00f6nsson"
            }
          ],
          "dateAssigned": "2026-09-24T09:19:17.000Z",
          "datePublic": "2026-09-28T11:15:20.000Z",
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAllocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to make the client hold up to about 16 MiB per connection in frames it should reject, consuming client memory.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eMint.HTTP2.Frame.decode_next/2\u003c/code\u003e in \u003ccode\u003elib/mint/http2/frame.ex\u003c/code\u003e compares a frame with the client\u0027s \u003ccode\u003emax_frame_size\u003c/code\u003e (16,384 bytes by default) only once the whole declared payload has arrived. Until then it returns \u003ccode\u003e:more\u003c/code\u003e, and \u003ccode\u003eMint.HTTP2\u003c/code\u003e keeps every received byte in the connection buffer. A server can declare a frame length of up to 16,777,215 bytes and withhold the last byte, keeping roughly 1,024 times the advertised limit buffered for as long as the connection stays open. The server has to send every byte the client buffers, so there is no amplification, and the buffer stops at the 24-bit frame length limit.\u003c/p\u003e\n\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.10.2.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to make the client hold up to about 16 MiB per connection in frames it should reject, consuming client memory.\n\n`Mint.HTTP2.Frame.decode_next/2` in `lib/mint/http2/frame.ex` compares a frame with the client\u0027s `max_frame_size` (16,384 bytes by default) only once the whole declared payload has arrived. Until then it returns `:more`, and `Mint.HTTP2` keeps every received byte in the connection buffer. A server can declare a frame length of up to 16,777,215 bytes and withhold the last byte, keeping roughly 1,024 times the advertised limit buffered for as long as the connection stays open. The server has to send every byte the client buffers, so there is no amplification, and the buffer stops at the 24-bit frame length limit.\n\nThis issue affects mint: from 0.1.0 before 1.10.2."
                }
              ],
              "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to make the client hold up to about 16 MiB per connection in frames it should reject, consuming client memory.\n\nMint.HTTP2.Frame.decode_next/2 in lib/mint/http2/frame.ex compares a frame with the client\u0027s max_frame_size (16,384 bytes by default) only once the whole declared payload has arrived. Until then it returns :more, and Mint.HTTP2 keeps every received byte in the connection buffer. A server can declare a frame length of up to 16,777,215 bytes and withhold the last byte, keeping roughly 1,024 times the advertised limit buffered for as long as the connection stays open. The server has to send every byte the client buffers, so there is no amplification, and the buffer stops at the 24-bit frame length limit.\n\nThis issue affects mint: from 0.1.0 before 1.10.2."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "supportingMedia": [
                    {
                      "base64": false,
                      "type": "text/html",
                      "value": "\u003cp\u003eA malicious or compromised HTTP/2 server can make a Mint client keep up to about 16 MiB per connection buffered, and keep it there while the connection stays open. Clients that hold many HTTP/2 connections to attacker-influenced origins, such as webhook senders, crawlers and proxies, can run out of memory.\u003c/p\u003e"
                    },
                    {
                      "base64": false,
                      "type": "text/markdown",
                      "value": "A malicious or compromised HTTP/2 server can make a Mint client keep up to about 16 MiB per connection buffered, and keep it there while the connection stays open. Clients that hold many HTTP/2 connections to attacker-influenced origins, such as webhook senders, crawlers and proxies, can run out of memory."
                    }
                  ],
                  "value": "A malicious or compromised HTTP/2 server can make a Mint client keep up to about 16 MiB per connection buffered, and keep it there while the connection stays open. Clients that hold many HTTP/2 connections to attacker-influenced origins, such as webhook senders, crawlers and proxies, can run out of memory."
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "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",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-29T10:15:35.604Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "name": "GitHub Advisory",
              "tags": [
                "related",
                "vendor-advisory"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-q95c-ccq6-j5j6"
            },
            {
              "name": "EEF CNA record for CVE-2026-92103",
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-92103.html"
            },
            {
              "name": "OSV record EEF-CVE-2026-92103",
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-92103"
            },
            {
              "name": "Introducing commit 596ca43 in elixir-mint/mint",
              "tags": [
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/596ca4304504be68939c4929e0831557097962b8"
            },
            {
              "name": "Fix commit 20252ca in elixir-mint/mint",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/20252ca85065f4d1092aed9ee4ed21841a507dfe"
            },
            {
              "name": "Fix commit 44d7ce4 in elixir-mint/mint",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/44d7ce4755d0444ee415cbcca7ce4942382da4dd"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Mint HTTP/2 client buffers oversized frames up to 16 MiB before enforcing max_frame_size",
          "workarounds": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eConnect to untrusted origins over HTTP/1 only, with \u003ccode\u003eprotocols: [:http1]\u003c/code\u003e in \u003ccode\u003eMint.HTTP.connect/4\u003c/code\u003e, which never runs the HTTP/2 frame decoder. Finch and Req pools use HTTP/1 only unless \u003ccode\u003e:http2\u003c/code\u003e is added to their \u003ccode\u003eprotocols\u003c/code\u003e option.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Connect to untrusted origins over HTTP/1 only, with `protocols: [:http1]` in `Mint.HTTP.connect/4`, which never runs the HTTP/2 frame decoder. Finch and Req pools use HTTP/1 only unless `:http2` is added to their `protocols` option."
                }
              ],
              "value": "Connect to untrusted origins over HTTP/1 only, with protocols: [:http1] in Mint.HTTP.connect/4, which never runs the HTTP/2 frame decoder. Finch and Req pools use HTTP/1 only unless :http2 is added to their protocols option."
            }
          ],
          "x_proofOfConcept": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003col\u003e\n\u003cli\u003eBuild an HTTP/2 frame header whose 24-bit length field declares 1,000,000 bytes, above the default \u003ccode\u003emax_frame_size\u003c/code\u003e of 16,384.\u003c/li\u003e\n\u003cli\u003ePass the header followed by 16,384 and then 512,000 payload bytes to \u003ccode\u003eMint.HTTP2.Frame.decode_next/2\u003c/code\u003e with a limit of 16,384. Each call returns \u003ccode\u003e:more\u003c/code\u003e, which makes \u003ccode\u003eMint.HTTP2\u003c/code\u003e keep the bytes in \u003ccode\u003econn.buffer\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePass the header with the complete 1,000,000-byte payload. Only this call returns \u003ccode\u003e{:error, :payload_too_big}\u003c/code\u003e.\u003c/li\u003e\n\u003c/ol\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "1. Build an HTTP/2 frame header whose 24-bit length field declares 1,000,000 bytes, above the default `max_frame_size` of 16,384.\n2. Pass the header followed by 16,384 and then 512,000 payload bytes to `Mint.HTTP2.Frame.decode_next/2` with a limit of 16,384. Each call returns `:more`, which makes `Mint.HTTP2` keep the bytes in `conn.buffer`.\n3. Pass the header with the complete 1,000,000-byte payload. Only this call returns `{:error, :payload_too_big}`."
                }
              ],
              "value": "* Build an HTTP/2 frame header whose 24-bit length field declares 1,000,000 bytes, above the default max_frame_size of 16,384.\n* Pass the header followed by 16,384 and then 512,000 payload bytes to Mint.HTTP2.Frame.decode_next/2 with a limit of 16,384. Each call returns :more, which makes Mint.HTTP2 keep the bytes in conn.buffer.\n* Pass the header with the complete 1,000,000-byte payload. Only this call returns {:error, :payload_too_big}."
            }
          ],
          "x_technicalAnalysis": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003cstrong\u003e1. Late size check.\u003c/strong\u003e \u003ccode\u003eMint.HTTP2.Frame.decode_next/2\u003c/code\u003e calls \u003ccode\u003edecode_next_raw/1\u003c/code\u003e, whose binary pattern only matches once the full declared payload is present. The \u003ccode\u003emax_frame_size\u003c/code\u003e guard runs on the matched payload, so a partial frame of any declared length returns \u003ccode\u003e:more\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2. Unbounded buffering.\u003c/strong\u003e On \u003ccode\u003e:more\u003c/code\u003e, \u003ccode\u003eMint.HTTP2.handle_new_data/3\u003c/code\u003e stores the accumulated data in \u003ccode\u003econn.buffer\u003c/code\u003e, and \u003ccode\u003emaybe_concat_and_handle_new_data/2\u003c/code\u003e prepends it to every later socket read, in both \u003ccode\u003estream/2\u003c/code\u003e (active mode) and \u003ccode\u003erecv/3\u003c/code\u003e (passive mode). Nothing caps the buffer.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e3. No release.\u003c/strong\u003e Mint has no idle timer. In active mode the buffer is held until the caller closes the connection. In passive mode a \u003ccode\u003erecv/3\u003c/code\u003e timeout closes it, but a server that sends a byte within each timeout keeps it open. \u003ccode\u003emax_frame_size\u003c/code\u003e can\u0027t be set below the 16,384-byte protocol minimum, and no setting moves the check earlier.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "**1. Late size check.** `Mint.HTTP2.Frame.decode_next/2` calls `decode_next_raw/1`, whose binary pattern only matches once the full declared payload is present. The `max_frame_size` guard runs on the matched payload, so a partial frame of any declared length returns `:more`.\n\n**2. Unbounded buffering.** On `:more`, `Mint.HTTP2.handle_new_data/3` stores the accumulated data in `conn.buffer`, and `maybe_concat_and_handle_new_data/2` prepends it to every later socket read, in both `stream/2` (active mode) and `recv/3` (passive mode). Nothing caps the buffer.\n\n**3. No release.** Mint has no idle timer. In active mode the buffer is held until the caller closes the connection. In passive mode a `recv/3` timeout closes it, but a server that sends a byte within each timeout keeps it open. `max_frame_size` can\u0027t be set below the 16,384-byte protocol minimum, and no setting moves the check earlier."
                }
              ],
              "value": "1. Late size check. Mint.HTTP2.Frame.decode_next/2 calls decode_next_raw/1, whose binary pattern only matches once the full declared payload is present. The max_frame_size guard runs on the matched payload, so a partial frame of any declared length returns :more.\n\n2. Unbounded buffering. On :more, Mint.HTTP2.handle_new_data/3 stores the accumulated data in conn.buffer, and maybe_concat_and_handle_new_data/2 prepends it to every later socket read, in both stream/2 (active mode) and recv/3 (passive mode). Nothing caps the buffer.\n\n3. No release. Mint has no idle timer. In active mode the buffer is held until the caller closes the connection. In passive mode a recv/3 timeout closes it, but a server that sends a byte within each timeout keeps it open. max_frame_size can\u0027t be set below the 16,384-byte protocol minimum, and no setting moves the check earlier."
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-92103",
        "datePublished": "2026-09-28T11:15:20.657Z",
        "dateReserved": "2026-09-15T16:00:01.513Z",
        "dateUpdated": "2026-09-30T15:00:38.567Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-91043 (GCVE-0-2026-91043)

    Vulnerability from cvelistv5 – Published: 2026-09-28 11:15 – Updated: 2026-09-29 10:15
    VLAI
    Title
    HPACK-indexed cookie fields in Mint HTTP/2 responses bypass max_header_list_size and exhaust client memory
    Summary
    Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to exhaust memory on the client host and cause a denial of service. Mint.HTTP2 enforces the client's max_header_list_size setting only on the compressed size of an inbound header block, while RFC 9113 section 6.5.2 defines the limit on the decoded header list. An HPACK indexed field costs one byte on the wire and decodes to a dynamic table entry of up to 4 KB, and join_cookie_headers/1 in lib/mint/http2.ex copies every cookie value of a response into one new binary. A header block under the default 256 KB wire limit therefore makes the client allocate about 1 GB for a single response, and several such responses in one delivery exhaust the memory of the process that owns the connection or of the whole VM. This issue affects mint: from 1.1.0 before 1.10.2.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-28 13:20 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 1.1.0 , < 1.10.2 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 8e0e04680476f90f9f68db4dfeabcbe66dabfc4d , < * (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Date Public
    2026-09-28 11:15
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-91043",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-28T13:20:39.397915Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-28T13:31:29.037Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:stream/2"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:decode_hbf_and_add_responses/5"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:join_cookie_headers/1"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.10.2",
                  "status": "affected",
                  "version": "1.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:stream/2"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:decode_hbf_and_add_responses/5"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:join_cookie_headers/1"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "c7895cb022196c77ec35570c8e873a84393ff4b8",
                      "status": "unaffected"
                    },
                    {
                      "at": "65a0d61c9eab6b0dedac809de7212515bf506250",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "8e0e04680476f90f9f68db4dfeabcbe66dabfc4d",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.10.2",
                      "versionStartIncluding": "1.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Andrea Leopardi"
            }
          ],
          "dateAssigned": "2026-09-21T12:06:31.000Z",
          "datePublic": "2026-09-28T11:15:09.000Z",
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAllocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to exhaust memory on the client host and cause a denial of service.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eMint.HTTP2\u003c/code\u003e enforces the client\u0027s \u003ccode\u003emax_header_list_size\u003c/code\u003e setting only on the compressed size of an inbound header block, while RFC 9113 section 6.5.2 defines the limit on the decoded header list. An HPACK indexed field costs one byte on the wire and decodes to a dynamic table entry of up to 4 KB, and \u003ccode\u003ejoin_cookie_headers/1\u003c/code\u003e in \u003ccode\u003elib/mint/http2.ex\u003c/code\u003e copies every \u003ccode\u003ecookie\u003c/code\u003e value of a response into one new binary. A header block under the default 256 KB wire limit therefore makes the client allocate about 1 GB for a single response, and several such responses in one delivery exhaust the memory of the process that owns the connection or of the whole VM.\u003c/p\u003e\n\u003cp\u003eThis issue affects mint: from 1.1.0 before 1.10.2.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to exhaust memory on the client host and cause a denial of service.\n\n`Mint.HTTP2` enforces the client\u0027s `max_header_list_size` setting only on the compressed size of an inbound header block, while RFC 9113 section 6.5.2 defines the limit on the decoded header list. An HPACK indexed field costs one byte on the wire and decodes to a dynamic table entry of up to 4 KB, and `join_cookie_headers/1` in `lib/mint/http2.ex` copies every `cookie` value of a response into one new binary. A header block under the default 256 KB wire limit therefore makes the client allocate about 1 GB for a single response, and several such responses in one delivery exhaust the memory of the process that owns the connection or of the whole VM.\n\nThis issue affects mint: from 1.1.0 before 1.10.2."
                }
              ],
              "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to exhaust memory on the client host and cause a denial of service.\n\nMint.HTTP2 enforces the client\u0027s max_header_list_size setting only on the compressed size of an inbound header block, while RFC 9113 section 6.5.2 defines the limit on the decoded header list. An HPACK indexed field costs one byte on the wire and decodes to a dynamic table entry of up to 4 KB, and join_cookie_headers/1 in lib/mint/http2.ex copies every cookie value of a response into one new binary. A header block under the default 256 KB wire limit therefore makes the client allocate about 1 GB for a single response, and several such responses in one delivery exhaust the memory of the process that owns the connection or of the whole VM.\n\nThis issue affects mint: from 1.1.0 before 1.10.2."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "supportingMedia": [
                    {
                      "base64": false,
                      "type": "text/html",
                      "value": "\u003cp\u003eA malicious or compromised HTTP/2 server can make a Mint client allocate about 1 GB per response with default settings, exhausting host memory until the operating system kills the BEAM. HTTP/2 connection pools in Finch and Req, webhook and scraper clients, and reverse proxies fetching from untrusted upstreams are affected without any opt-in.\u003c/p\u003e"
                    },
                    {
                      "base64": false,
                      "type": "text/markdown",
                      "value": "A malicious or compromised HTTP/2 server can make a Mint client allocate about 1 GB per response with default settings, exhausting host memory until the operating system kills the BEAM. HTTP/2 connection pools in Finch and Req, webhook and scraper clients, and reverse proxies fetching from untrusted upstreams are affected without any opt-in."
                    }
                  ],
                  "value": "A malicious or compromised HTTP/2 server can make a Mint client allocate about 1 GB per response with default settings, exhausting host memory until the operating system kills the BEAM. HTTP/2 connection pools in Finch and Req, webhook and scraper clients, and reverse proxies fetching from untrusted upstreams are affected without any opt-in."
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 8.2,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-29T10:15:15.619Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "name": "GitHub Advisory",
              "tags": [
                "related",
                "vendor-advisory"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-9x8p-qrf4-jq7g"
            },
            {
              "name": "EEF CNA record for CVE-2026-91043",
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-91043.html"
            },
            {
              "name": "OSV record EEF-CVE-2026-91043",
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-91043"
            },
            {
              "name": "Introducing commit 8e0e046 in elixir-mint/mint",
              "tags": [
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/8e0e04680476f90f9f68db4dfeabcbe66dabfc4d"
            },
            {
              "name": "Fix commit c7895cb in elixir-mint/mint",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/c7895cb022196c77ec35570c8e873a84393ff4b8"
            },
            {
              "name": "Fix commit 65a0d61 in elixir-mint/mint",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/65a0d61c9eab6b0dedac809de7212515bf506250"
            }
          ],
          "source": {
            "discovery": "INTERNAL"
          },
          "title": "HPACK-indexed cookie fields in Mint HTTP/2 responses bypass max_header_list_size and exhaust client memory",
          "workarounds": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eLower \u003ccode\u003eclient_settings: [max_header_list_size: n]\u003c/code\u003e in \u003ccode\u003eMint.HTTP.connect/4\u003c/code\u003e. The compressed check still applies, and each byte of the block can expand to at most one 4 KB table entry, so a limit of 4,096 bounds a response to roughly 16 MB. Alternatively, restrict connections to untrusted servers to HTTP/1 with \u003ccode\u003eprotocols: [:http1]\u003c/code\u003e, which avoids the HTTP/2 receive path entirely. Do not set \u003ccode\u003emax_header_list_size: :infinity\u003c/code\u003e, which disables the compressed check as well.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Lower `client_settings: [max_header_list_size: n]` in `Mint.HTTP.connect/4`. The compressed check still applies, and each byte of the block can expand to at most one 4 KB table entry, so a limit of 4,096 bounds a response to roughly 16 MB. Alternatively, restrict connections to untrusted servers to HTTP/1 with `protocols: [:http1]`, which avoids the HTTP/2 receive path entirely. Do not set `max_header_list_size: :infinity`, which disables the compressed check as well."
                }
              ],
              "value": "Lower client_settings: [max_header_list_size: n] in Mint.HTTP.connect/4. The compressed check still applies, and each byte of the block can expand to at most one 4 KB table entry, so a limit of 4,096 bounds a response to roughly 16 MB. Alternatively, restrict connections to untrusted servers to HTTP/1 with protocols: [:http1], which avoids the HTTP/2 receive path entirely. Do not set max_header_list_size: :infinity, which disables the compressed check as well."
            }
          ],
          "x_proofOfConcept": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003col\u003e\n\u003cli\u003eConnect a \u003ccode\u003eMint.HTTP2\u003c/code\u003e client with default \u003ccode\u003eclient_settings\u003c/code\u003e to a server that writes raw HTTP/2 frames, and open a request.\u003c/li\u003e\n\u003cli\u003eAnswer with a header block that stores one large \u003ccode\u003ecookie\u003c/code\u003e value in the HPACK dynamic table and then references it many times with indexed fields, keeping the compressed block under the 262,144-byte limit.\u003c/li\u003e\n\u003cli\u003eMint accepts the block and returns one \u003ccode\u003ecookie\u003c/code\u003e header thousands of times larger than the wire bytes; the reporter measured a 1,047,808,858-byte value from 262,296 wire bytes on mint 1.10.1.\u003c/li\u003e\n\u003cli\u003eAnswering several open requests in one delivery adds up: four responses held 4,240,710,592 bytes of cookie values at once.\u003c/li\u003e\n\u003cli\u003eA block of 60,000 references costs about 240 MB under the \u003ccode\u003ecookie\u003c/code\u003e field name and about 5 MB under a non-cookie name, which isolates \u003ccode\u003ejoin_cookie_headers/1\u003c/code\u003e as the amplifier.\u003c/li\u003e\n\u003c/ol\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "1. Connect a `Mint.HTTP2` client with default `client_settings` to a server that writes raw HTTP/2 frames, and open a request.\n2. Answer with a header block that stores one large `cookie` value in the HPACK dynamic table and then references it many times with indexed fields, keeping the compressed block under the 262,144-byte limit.\n3. Mint accepts the block and returns one `cookie` header thousands of times larger than the wire bytes; the reporter measured a 1,047,808,858-byte value from 262,296 wire bytes on mint 1.10.1.\n4. Answering several open requests in one delivery adds up: four responses held 4,240,710,592 bytes of cookie values at once.\n5. A block of 60,000 references costs about 240 MB under the `cookie` field name and about 5 MB under a non-cookie name, which isolates `join_cookie_headers/1` as the amplifier."
                }
              ],
              "value": "* Connect a Mint.HTTP2 client with default client_settings to a server that writes raw HTTP/2 frames, and open a request.\n* Answer with a header block that stores one large cookie value in the HPACK dynamic table and then references it many times with indexed fields, keeping the compressed block under the 262,144-byte limit.\n* Mint accepts the block and returns one cookie header thousands of times larger than the wire bytes; the reporter measured a 1,047,808,858-byte value from 262,296 wire bytes on mint 1.10.1.\n* Answering several open requests in one delivery adds up: four responses held 4,240,710,592 bytes of cookie values at once.\n* A block of 60,000 references costs about 240 MB under the cookie field name and about 5 MB under a non-cookie name, which isolates join_cookie_headers/1 as the amplifier."
            }
          ],
          "x_technicalAnalysis": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003cstrong\u003e1. Compressed-size check only.\u003c/strong\u003e \u003ccode\u003eMint.HTTP2.assert_header_block_within_max_size/2\u003c/code\u003e compares the accumulated \u003ccode\u003eHEADERS\u003c/code\u003e plus \u003ccode\u003eCONTINUATION\u003c/code\u003e bytes with \u003ccode\u003eclient_settings.max_header_list_size\u003c/code\u003e, which bounds a \u003ccode\u003eCONTINUATION\u003c/code\u003e chain but not the decoded size. After \u003ccode\u003eHPAX.decode/2\u003c/code\u003e returns, \u003ccode\u003edecode_hbf_and_add_responses/5\u003c/code\u003e passes the header list to \u003ccode\u003ehandle_decoded_headers_for_stream/5\u003c/code\u003e without measuring it. The only implementation of the RFC 9113 section 6.5.2 formula, \u003ccode\u003eassert_headers_smaller_than_max_header_list_size/2\u003c/code\u003e, applies the server\u0027s setting to headers Mint sends.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2. Indexed-field expansion.\u003c/strong\u003e An HPACK indexed field (RFC 7541 section 6.1) is one byte for small table indexes and refers to a dynamic table entry of up to 4 KB. HPAX returns one shared binary per reference, so the decoded list itself stays small.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e3. Cookie join.\u003c/strong\u003e \u003ccode\u003ejoin_cookie_headers/1\u003c/code\u003e runs \u003ccode\u003eEnum.map_join/3\u003c/code\u003e over every \u003ccode\u003ecookie\u003c/code\u003e value, copying each shared value into one contiguous binary. The dynamic table entry persists for the connection, so the same block can answer every open stream, and \u003ccode\u003eMint.HTTP.stream/2\u003c/code\u003e returns all responses parsed from one delivery together.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "**1. Compressed-size check only.** `Mint.HTTP2.assert_header_block_within_max_size/2` compares the accumulated `HEADERS` plus `CONTINUATION` bytes with `client_settings.max_header_list_size`, which bounds a `CONTINUATION` chain but not the decoded size. After `HPAX.decode/2` returns, `decode_hbf_and_add_responses/5` passes the header list to `handle_decoded_headers_for_stream/5` without measuring it. The only implementation of the RFC 9113 section 6.5.2 formula, `assert_headers_smaller_than_max_header_list_size/2`, applies the server\u0027s setting to headers Mint sends.\n\n**2. Indexed-field expansion.** An HPACK indexed field (RFC 7541 section 6.1) is one byte for small table indexes and refers to a dynamic table entry of up to 4 KB. HPAX returns one shared binary per reference, so the decoded list itself stays small.\n\n**3. Cookie join.** `join_cookie_headers/1` runs `Enum.map_join/3` over every `cookie` value, copying each shared value into one contiguous binary. The dynamic table entry persists for the connection, so the same block can answer every open stream, and `Mint.HTTP.stream/2` returns all responses parsed from one delivery together."
                }
              ],
              "value": "1. Compressed-size check only. Mint.HTTP2.assert_header_block_within_max_size/2 compares the accumulated HEADERS plus CONTINUATION bytes with client_settings.max_header_list_size, which bounds a CONTINUATION chain but not the decoded size. After HPAX.decode/2 returns, decode_hbf_and_add_responses/5 passes the header list to handle_decoded_headers_for_stream/5 without measuring it. The only implementation of the RFC 9113 section 6.5.2 formula, assert_headers_smaller_than_max_header_list_size/2, applies the server\u0027s setting to headers Mint sends.\n\n2. Indexed-field expansion. An HPACK indexed field (RFC 7541 section 6.1) is one byte for small table indexes and refers to a dynamic table entry of up to 4 KB. HPAX returns one shared binary per reference, so the decoded list itself stays small.\n\n3. Cookie join. join_cookie_headers/1 runs Enum.map_join/3 over every cookie value, copying each shared value into one contiguous binary. The dynamic table entry persists for the connection, so the same block can answer every open stream, and Mint.HTTP.stream/2 returns all responses parsed from one delivery together."
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-91043",
        "datePublished": "2026-09-28T11:15:09.158Z",
        "dateReserved": "2026-09-15T23:45:02.178Z",
        "dateUpdated": "2026-09-29T10:15:15.619Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-82672 (GCVE-0-2026-82672)

    Vulnerability from cvelistv5 – Published: 2026-09-19 17:00 – Updated: 2026-09-21 18:30
    VLAI
    Title
    Unvalidated chunk-size line tail in Mint HTTP/1 client enables response smuggling against strict intermediaries on pooled connections
    Summary
    Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize a strict intermediary and the Mint client on a pooled connection, enabling response-queue poisoning against subsequent requests that share the connection. Mint.HTTP1.Parse.chunk_size/1 in lib/mint/http1/parse.ex stops at the first non-hexadecimal byte of a chunked response's chunk-size line and returns the remainder unexamined. Mint.HTTP1.decode_body/5 in lib/mint/http1.ex then discards every byte up to the CRLF with Parse.ignore_until_crlf/1, so the accepted grammar is a run of hex digits followed by arbitrary bytes, where RFC 9112 permits only a ;-introduced chunk extension. Lines such as 5ZZZZZ and 5 9 are accepted as chunk size 5, and 0ZZZZ is accepted as the terminating chunk that ends the message body. An RFC-strict intermediary rejects such a line while Mint accepts it, so the two disagree on chunk boundaries and on where the response ends. This issue affects mint: from 0.1.0 before 1.10.1.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-21 18:29 UTC
    CWE
    • CWE-444 - Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.10.1 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 60089586ec7adc9fddb09f69a2f5919ba9ac7f33 , < c82377838dc6e275ef40bafa664fbcdf50270c60 (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-82672",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-21T18:29:40.588404Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-21T18:30:02.604Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-rj5m-69wp-cxq9"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1.Parse\u0027",
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1/parse.ex",
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Parse\u0027:chunk_size/1"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Parse\u0027:ignore_until_crlf/1"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.10.1",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1.Parse\u0027",
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1/parse.ex",
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Parse\u0027:chunk_size/1"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Parse\u0027:ignore_until_crlf/1"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "c82377838dc6e275ef40bafa664fbcdf50270c60",
                  "status": "affected",
                  "version": "60089586ec7adc9fddb09f69a2f5919ba9ac7f33",
                  "versionType": "git"
                }
              ]
            }
          ],
          "configurations": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eExploitation requires a deployment topology in which an RFC-strict HTTP/1 intermediary (proxy, load balancer, or WAF) sits between the Mint client and the attacker-influenced origin, and HTTP/1 connections between the client and the intermediary are reused across requests (keep-alive with connection pooling). Mint clients that talk directly to an origin without an intermediary, or that do not reuse connections, are not exploitable for response-queue poisoning even if the vulnerable parsing behavior is present.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Exploitation requires a deployment topology in which an RFC-strict HTTP/1 intermediary (proxy, load balancer, or WAF) sits between the Mint client and the attacker-influenced origin, and HTTP/1 connections between the client and the intermediary are reused across requests (keep-alive with connection pooling). Mint clients that talk directly to an origin without an intermediary, or that do not reuse connections, are not exploitable for response-queue poisoning even if the vulnerable parsing behavior is present."
                }
              ],
              "value": "Exploitation requires a deployment topology in which an RFC-strict HTTP/1 intermediary (proxy, load balancer, or WAF) sits between the Mint client and the attacker-influenced origin, and HTTP/1 connections between the client and the intermediary are reused across requests (keep-alive with connection pooling). Mint clients that talk directly to an origin without an intermediary, or that do not reuse connections, are not exploitable for response-queue poisoning even if the vulnerable parsing behavior is present."
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.10.1",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Eurico Nicacio"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "Eurico Nicacio"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Andrea Leopardi"
            }
          ],
          "dateAssigned": "2026-09-19T15:55:00.000Z",
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eInconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize a strict intermediary and the Mint client on a pooled connection, enabling response-queue poisoning against subsequent requests that share the connection.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eMint.HTTP1.Parse.chunk_size/1\u003c/code\u003e in \u003ccode\u003elib/mint/http1/parse.ex\u003c/code\u003e stops at the first non-hexadecimal byte of a chunked response\u0027s chunk-size line and returns the remainder unexamined. \u003ccode\u003eMint.HTTP1.decode_body/5\u003c/code\u003e in \u003ccode\u003elib/mint/http1.ex\u003c/code\u003e then discards every byte up to the CRLF with \u003ccode\u003eParse.ignore_until_crlf/1\u003c/code\u003e, so the accepted grammar is a run of hex digits followed by arbitrary bytes, where RFC 9112 permits only a \u003ccode\u003e;\u003c/code\u003e-introduced chunk extension. Lines such as \u003ccode\u003e5ZZZZZ\u003c/code\u003e and \u003ccode\u003e5 9\u003c/code\u003e are accepted as chunk size 5, and \u003ccode\u003e0ZZZZ\u003c/code\u003e is accepted as the terminating chunk that ends the message body. An RFC-strict intermediary rejects such a line while Mint accepts it, so the two disagree on chunk boundaries and on where the response ends.\u003c/p\u003e\n\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.10.1.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize a strict intermediary and the Mint client on a pooled connection, enabling response-queue poisoning against subsequent requests that share the connection.\n\n`Mint.HTTP1.Parse.chunk_size/1` in `lib/mint/http1/parse.ex` stops at the first non-hexadecimal byte of a chunked response\u0027s chunk-size line and returns the remainder unexamined. `Mint.HTTP1.decode_body/5` in `lib/mint/http1.ex` then discards every byte up to the CRLF with `Parse.ignore_until_crlf/1`, so the accepted grammar is a run of hex digits followed by arbitrary bytes, where RFC 9112 permits only a `;`-introduced chunk extension. Lines such as `5ZZZZZ` and `5 9` are accepted as chunk size 5, and `0ZZZZ` is accepted as the terminating chunk that ends the message body. An RFC-strict intermediary rejects such a line while Mint accepts it, so the two disagree on chunk boundaries and on where the response ends.\n\nThis issue affects mint: from 0.1.0 before 1.10.1."
                }
              ],
              "value": "Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize a strict intermediary and the Mint client on a pooled connection, enabling response-queue poisoning against subsequent requests that share the connection.\n\nMint.HTTP1.Parse.chunk_size/1 in lib/mint/http1/parse.ex stops at the first non-hexadecimal byte of a chunked response\u0027s chunk-size line and returns the remainder unexamined. Mint.HTTP1.decode_body/5 in lib/mint/http1.ex then discards every byte up to the CRLF with Parse.ignore_until_crlf/1, so the accepted grammar is a run of hex digits followed by arbitrary bytes, where RFC 9112 permits only a ;-introduced chunk extension. Lines such as 5ZZZZZ and 5 9 are accepted as chunk size 5, and 0ZZZZ is accepted as the terminating chunk that ends the message body. An RFC-strict intermediary rejects such a line while Mint accepts it, so the two disagree on chunk boundaries and on where the response ends.\n\nThis issue affects mint: from 0.1.0 before 1.10.1."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-273",
              "descriptions": [
                {
                  "lang": "en",
                  "supportingMedia": [
                    {
                      "base64": false,
                      "type": "text/html",
                      "value": "\u003cp\u003eA malicious or attacker-influenced HTTP/1 origin behind an RFC-strict intermediary can make the intermediary and the Mint client disagree on chunk boundaries and on where the response body ends. On a pooled keep-alive connection that disagreement lets bytes from one response be attributed to the next, poisoning the responses returned to unrelated requests that share the connection.\u003c/p\u003e"
                    },
                    {
                      "base64": false,
                      "type": "text/markdown",
                      "value": "A malicious or attacker-influenced HTTP/1 origin behind an RFC-strict intermediary can make the intermediary and the Mint client disagree on chunk boundaries and on where the response body ends. On a pooled keep-alive connection that disagreement lets bytes from one response be attributed to the next, poisoning the responses returned to unrelated requests that share the connection."
                    }
                  ],
                  "value": "A malicious or attacker-influenced HTTP/1 origin behind an RFC-strict intermediary can make the intermediary and the Mint client disagree on chunk boundaries and on where the response body ends. On a pooled keep-alive connection that disagreement lets bytes from one response be attributed to the next, poisoning the responses returned to unrelated requests that share the connection."
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-444",
                  "description": "CWE-444 Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-19T17:00:31.648Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "name": "GitHub Advisory",
              "tags": [
                "related",
                "vendor-advisory"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-rj5m-69wp-cxq9"
            },
            {
              "name": "EEF CNA record for CVE-2026-82672",
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-82672.html"
            },
            {
              "name": "OSV record EEF-CVE-2026-82672",
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-82672"
            },
            {
              "name": "Introducing commit 6008958 in elixir-mint/mint",
              "tags": [
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/60089586ec7adc9fddb09f69a2f5919ba9ac7f33"
            },
            {
              "name": "Fix commit c823778 in elixir-mint/mint",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/c82377838dc6e275ef40bafa664fbcdf50270c60"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Unvalidated chunk-size line tail in Mint HTTP/1 client enables response smuggling against strict intermediaries on pooled connections",
          "x_proofOfConcept": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003col\u003e\n\u003cli\u003eStart a loopback TCP server that serves one \u003ccode\u003eHTTP/1.1 200 OK\u003c/code\u003e response with \u003ccode\u003etransfer-encoding: chunked\u003c/code\u003e and controls the chunk-size line byte for byte.\u003c/li\u003e\n\u003cli\u003eConnect with \u003ccode\u003eMint.HTTP1\u003c/code\u003e (mint 1.10.0 from Hex), send a request and stream the response.\u003c/li\u003e\n\u003cli\u003ePositive controls: chunk-size lines \u003ccode\u003e+5\u003c/code\u003e, \u003ccode\u003eZ5\u003c/code\u003e and \u003ccode\u003e00000000000000005\u003c/code\u003e are refused with \u003ccode\u003e:invalid_chunk_size\u003c/code\u003e, confirming the build carries the earlier chunk-size fixes.\u003c/li\u003e\n\u003cli\u003eBaseline: \u003ccode\u003e5\u003c/code\u003e and \u003ccode\u003e5;name=value\u003c/code\u003e are accepted with body \u003ccode\u003ehello\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFinding: \u003ccode\u003e5ZZZZZ\u003c/code\u003e, \u003ccode\u003e5 anything at all\u003c/code\u003e, \u003ccode\u003e5\u0026lt;TAB\u0026gt;foo\u003c/code\u003e, \u003ccode\u003e5 9\u003c/code\u003e and \u003ccode\u003e5}~!\u003c/code\u003e are each accepted as chunk size 5 with body \u003ccode\u003ehello\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eTerminator: \u003ccode\u003e0ZZZZ\u003c/code\u003e and \u003ccode\u003e0 9\u003c/code\u003e in place of the final \u003ccode\u003e0\u003c/code\u003e chunk are accepted and end the body.\u003c/li\u003e\n\u003cli\u003eContrast: \u003ccode\u003eContent-Length: +5\u003c/code\u003e, \u003ccode\u003eContent-Length: 5ZZZ\u003c/code\u003e and \u003ccode\u003eContent-Length: 5 9\u003c/code\u003e are refused with \u003ccode\u003e:invalid_content_length_header\u003c/code\u003e in the same run.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eThe reporter ran this on Elixir 1.18 / OTP 27 and Elixir 1.18.4 / OTP 28 with identical results.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "1. Start a loopback TCP server that serves one `HTTP/1.1 200 OK` response with `transfer-encoding: chunked` and controls the chunk-size line byte for byte.\n2. Connect with `Mint.HTTP1` (mint 1.10.0 from Hex), send a request and stream the response.\n3. Positive controls: chunk-size lines `+5`, `Z5` and `00000000000000005` are refused with `:invalid_chunk_size`, confirming the build carries the earlier chunk-size fixes.\n4. Baseline: `5` and `5;name=value` are accepted with body `hello`.\n5. Finding: `5ZZZZZ`, `5 anything at all`, `5\u003cTAB\u003efoo`, `5 9` and `5}~!` are each accepted as chunk size 5 with body `hello`.\n6. Terminator: `0ZZZZ` and `0 9` in place of the final `0` chunk are accepted and end the body.\n7. Contrast: `Content-Length: +5`, `Content-Length: 5ZZZ` and `Content-Length: 5 9` are refused with `:invalid_content_length_header` in the same run.\n\nThe reporter ran this on Elixir 1.18 / OTP 27 and Elixir 1.18.4 / OTP 28 with identical results."
                }
              ],
              "value": "* Start a loopback TCP server that serves one HTTP/1.1 200 OK response with transfer-encoding: chunked and controls the chunk-size line byte for byte.\n* Connect with Mint.HTTP1 (mint 1.10.0 from Hex), send a request and stream the response.\n* Positive controls: chunk-size lines +5, Z5 and 00000000000000005 are refused with :invalid_chunk_size, confirming the build carries the earlier chunk-size fixes.\n* Baseline: 5 and 5;name=value are accepted with body hello.\n* Finding: 5ZZZZZ, 5 anything at all, 5\u003cTAB\u003efoo, 5 9 and 5}~! are each accepted as chunk size 5 with body hello.\n* Terminator: 0ZZZZ and 0 9 in place of the final 0 chunk are accepted and end the body.\n* Contrast: Content-Length: +5, Content-Length: 5ZZZ and Content-Length: 5 9 are refused with :invalid_content_length_header in the same run.\n\nThe reporter ran this on Elixir 1.18 / OTP 27 and Elixir 1.18.4 / OTP 28 with identical results."
            }
          ],
          "x_technicalAnalysis": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003cstrong\u003e1. Chunk-size parsing.\u003c/strong\u003e \u003ccode\u003eMint.HTTP1.Parse.chunk_size/1\u003c/code\u003e in \u003ccode\u003elib/mint/http1/parse.ex\u003c/code\u003e folds leading hexadecimal digits into an accumulator through \u003ccode\u003eparse_hex_prefix/3\u003c/code\u003e and, on the first byte that is not a hex digit, returns \u003ccode\u003e{:ok, size, rest}\u003c/code\u003e with \u003ccode\u003erest\u003c/code\u003e unexamined. The sign and digit-count checks added by earlier fixes constrain only the digits.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2. Tail skipping.\u003c/strong\u003e The caller, \u003ccode\u003eMint.HTTP1.decode_body/5\u003c/code\u003e in \u003ccode\u003elib/mint/http1.ex\u003c/code\u003e, hands \u003ccode\u003erest\u003c/code\u003e to \u003ccode\u003eParse.ignore_until_crlf/1\u003c/code\u003e, which advances over any byte until it finds CRLF. Nothing between the last hex digit and the CRLF is validated, so the accepted grammar is \u003ccode\u003e1*HEXDIG *OCTET CRLF\u003c/code\u003e, where RFC 9112 section 7.1 allows only an optional \u003ccode\u003e;\u003c/code\u003e-introduced \u003ccode\u003echunk-ext\u003c/code\u003e. The same tolerance applies to the terminating zero-length chunk, which is the token that ends the message body.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e3. Parser disagreement.\u003c/strong\u003e The sibling \u003ccode\u003eContent-Length\u003c/code\u003e parser, \u003ccode\u003eMint.HTTP1.Parse.content_length_header/1\u003c/code\u003e, trims trailing whitespace and requires the whole remaining value to be digits, rejecting anything else. An RFC-strict intermediary that rejects or reframes a chunk-size line with a non-extension tail, on a connection where Mint accepts it, yields a framing disagreement about chunk length and, through the terminating chunk, about where the message ends.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "**1. Chunk-size parsing.** `Mint.HTTP1.Parse.chunk_size/1` in `lib/mint/http1/parse.ex` folds leading hexadecimal digits into an accumulator through `parse_hex_prefix/3` and, on the first byte that is not a hex digit, returns `{:ok, size, rest}` with `rest` unexamined. The sign and digit-count checks added by earlier fixes constrain only the digits.\n\n**2. Tail skipping.** The caller, `Mint.HTTP1.decode_body/5` in `lib/mint/http1.ex`, hands `rest` to `Parse.ignore_until_crlf/1`, which advances over any byte until it finds CRLF. Nothing between the last hex digit and the CRLF is validated, so the accepted grammar is `1*HEXDIG *OCTET CRLF`, where RFC 9112 section 7.1 allows only an optional `;`-introduced `chunk-ext`. The same tolerance applies to the terminating zero-length chunk, which is the token that ends the message body.\n\n**3. Parser disagreement.** The sibling `Content-Length` parser, `Mint.HTTP1.Parse.content_length_header/1`, trims trailing whitespace and requires the whole remaining value to be digits, rejecting anything else. An RFC-strict intermediary that rejects or reframes a chunk-size line with a non-extension tail, on a connection where Mint accepts it, yields a framing disagreement about chunk length and, through the terminating chunk, about where the message ends."
                }
              ],
              "value": "1. Chunk-size parsing. Mint.HTTP1.Parse.chunk_size/1 in lib/mint/http1/parse.ex folds leading hexadecimal digits into an accumulator through parse_hex_prefix/3 and, on the first byte that is not a hex digit, returns {:ok, size, rest} with rest unexamined. The sign and digit-count checks added by earlier fixes constrain only the digits.\n\n2. Tail skipping. The caller, Mint.HTTP1.decode_body/5 in lib/mint/http1.ex, hands rest to Parse.ignore_until_crlf/1, which advances over any byte until it finds CRLF. Nothing between the last hex digit and the CRLF is validated, so the accepted grammar is 1*HEXDIG *OCTET CRLF, where RFC 9112 section 7.1 allows only an optional ;-introduced chunk-ext. The same tolerance applies to the terminating zero-length chunk, which is the token that ends the message body.\n\n3. Parser disagreement. The sibling Content-Length parser, Mint.HTTP1.Parse.content_length_header/1, trims trailing whitespace and requires the whole remaining value to be digits, rejecting anything else. An RFC-strict intermediary that rejects or reframes a chunk-size line with a non-extension tail, on a connection where Mint accepts it, yields a framing disagreement about chunk length and, through the terminating chunk, about where the message ends."
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-82672",
        "datePublished": "2026-09-19T17:00:31.648Z",
        "dateReserved": "2026-09-17T05:30:01.748Z",
        "dateUpdated": "2026-09-21T18:30:02.604Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-82728 (GCVE-0-2026-82728)

    Vulnerability from cvelistv5 – Published: 2026-09-04 14:31 – Updated: 2026-09-04 19:32
    VLAI
    Title
    Unbounded HTTP/1 status-line and chunk-extension buffering in Mint causes memory-exhaustion DoS
    Summary
    Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a remote HTTP server to exhaust memory on the client host and cause a denial of service. Two HTTP/1 response-parser states accumulate server data without any cap. In lib/mint/http1.ex, decode_status_line/4 stores the unconsumed data in conn.buffer when the status line is incomplete, and decode_body/5 does the same for an unterminated chunk-extension line. Both wait for a CRLF the server never has to send, and conn.buffer is prepended to every subsequent socket message. The :max_header_list_size budget is wired only into decode_headers/5 and decode_trailer_headers/4, so neither of these states is covered by it. A malicious server, or one reached through an attacker-controlled redirect or a fetched URL, streams bytes indefinitely until the BEAM node is killed by the operating system out-of-memory handler. The chunk-extension variant is reached after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response. This issue affects mint: from 0.1.0 before 1.10.0.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-04 19:32 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.10.0 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: c088e4b6430545338841ab8d294369e45d39856a , < 19be5558b6a317e271c78666498dd78b151e490a (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-82728",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-04T19:32:07.642690Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-04T19:32:44.727Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-g83f-2j6r-q6m4"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_status_line/4"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.10.0",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_status_line/4"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "19be5558b6a317e271c78666498dd78b151e490a",
                  "status": "affected",
                  "version": "c088e4b6430545338841ab8d294369e45d39856a",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.10.0",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Tr3bor"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "Tr3bor"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Andrea Leopardi"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAllocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a remote HTTP server to exhaust memory on the client host and cause a denial of service.\u003c/p\u003e\n\u003cp\u003eTwo HTTP/1 response-parser states accumulate server data without any cap. In \u003ccode\u003elib/mint/http1.ex\u003c/code\u003e, \u003ccode\u003edecode_status_line/4\u003c/code\u003e stores the unconsumed data in \u003ccode\u003econn.buffer\u003c/code\u003e when the status line is incomplete, and \u003ccode\u003edecode_body/5\u003c/code\u003e does the same for an unterminated chunk-extension line. Both wait for a CRLF the server never has to send, and \u003ccode\u003econn.buffer\u003c/code\u003e is prepended to every subsequent socket message. The \u003ccode\u003e:max_header_list_size\u003c/code\u003e budget is wired only into \u003ccode\u003edecode_headers/5\u003c/code\u003e and \u003ccode\u003edecode_trailer_headers/4\u003c/code\u003e, so neither of these states is covered by it. A malicious server, or one reached through an attacker-controlled redirect or a fetched URL, streams bytes indefinitely until the BEAM node is killed by the operating system out-of-memory handler. The chunk-extension variant is reached after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\u003c/p\u003e\n\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.10.0.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a remote HTTP server to exhaust memory on the client host and cause a denial of service.\n\nTwo HTTP/1 response-parser states accumulate server data without any cap. In `lib/mint/http1.ex`, `decode_status_line/4` stores the unconsumed data in `conn.buffer` when the status line is incomplete, and `decode_body/5` does the same for an unterminated chunk-extension line. Both wait for a CRLF the server never has to send, and `conn.buffer` is prepended to every subsequent socket message. The `:max_header_list_size` budget is wired only into `decode_headers/5` and `decode_trailer_headers/4`, so neither of these states is covered by it. A malicious server, or one reached through an attacker-controlled redirect or a fetched URL, streams bytes indefinitely until the BEAM node is killed by the operating system out-of-memory handler. The chunk-extension variant is reached after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\n\nThis issue affects mint: from 0.1.0 before 1.10.0."
                }
              ],
              "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a remote HTTP server to exhaust memory on the client host and cause a denial of service.\n\nTwo HTTP/1 response-parser states accumulate server data without any cap. In lib/mint/http1.ex, decode_status_line/4 stores the unconsumed data in conn.buffer when the status line is incomplete, and decode_body/5 does the same for an unterminated chunk-extension line. Both wait for a CRLF the server never has to send, and conn.buffer is prepended to every subsequent socket message. The :max_header_list_size budget is wired only into decode_headers/5 and decode_trailer_headers/4, so neither of these states is covered by it. A malicious server, or one reached through an attacker-controlled redirect or a fetched URL, streams bytes indefinitely until the BEAM node is killed by the operating system out-of-memory handler. The chunk-extension variant is reached after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\n\nThis issue affects mint: from 0.1.0 before 1.10.0."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 8.2,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-04T14:31:30.059Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-g83f-2j6r-q6m4"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-82728.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-82728"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/19be5558b6a317e271c78666498dd78b151e490a"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Unbounded HTTP/1 status-line and chunk-extension buffering in Mint causes memory-exhaustion DoS"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-82728",
        "datePublished": "2026-09-04T14:31:30.059Z",
        "dateReserved": "2026-08-31T00:59:08.960Z",
        "dateUpdated": "2026-09-04T19:32:44.727Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-82729 (GCVE-0-2026-82729)

    Vulnerability from cvelistv5 – Published: 2026-09-04 14:31 – Updated: 2026-09-04 19:33
    VLAI
    Title
    Quadratic chunk-size parsing in Mint.HTTP1.Parse allows CPU-exhaustion DoS
    Summary
    Inefficient Algorithmic Complexity vulnerability in elixir-mint mint allows a remote HTTP server to exhaust CPU on the client host and cause a denial of service. parse_hex_prefix/2 in lib/mint/http1/parse.ex folds each hex digit of a chunked response's chunk-size field into an arbitrary-precision accumulator with acc * 16 + digit and imposes no limit on the digit count. Because the accumulator grows without bound, the multiplication is not constant time and one pass over N digits costs O(N squared). handle_data/2 prepends conn.buffer and re-parses from the start on every socket message, so a server that dribbles the digits out in small packets makes the client pay that cost repeatedly. A run of roughly 512,000 hex digits costs over ten seconds of CPU in a single pass, measured on stock defaults. The parser reaches this state after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response. This issue affects mint: from 1.9.3 before 1.10.0.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-04 19:33 UTC
    CWE
    • CWE-407 - Inefficient Algorithmic Complexity
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 1.9.3 , < 1.10.0 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: fc7d16538db7e40b56ed489f08683225cb0197fa , < bd2a4e7513594997c140cfef9fe0e968712fb588 (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-82729",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-04T19:33:08.928597Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-04T19:33:32.398Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-7p8w-j234-7qc8"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1.Parse\u0027",
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1/parse.ex",
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Parse\u0027:chunk_size/1"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.10.0",
                  "status": "affected",
                  "version": "1.9.3",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1.Parse\u0027",
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1/parse.ex",
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Parse\u0027:chunk_size/1"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "bd2a4e7513594997c140cfef9fe0e968712fb588",
                  "status": "affected",
                  "version": "fc7d16538db7e40b56ed489f08683225cb0197fa",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.10.0",
                      "versionStartIncluding": "1.9.3",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Tr3bor"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "Tr3bor"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Andrea Leopardi"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eInefficient Algorithmic Complexity vulnerability in elixir-mint mint allows a remote HTTP server to exhaust CPU on the client host and cause a denial of service.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eparse_hex_prefix/2\u003c/code\u003e in \u003ccode\u003elib/mint/http1/parse.ex\u003c/code\u003e folds each hex digit of a chunked response\u0027s chunk-size field into an arbitrary-precision accumulator with \u003ccode\u003eacc * 16 + digit\u003c/code\u003e and imposes no limit on the digit count. Because the accumulator grows without bound, the multiplication is not constant time and one pass over \u003ccode\u003eN\u003c/code\u003e digits costs O(N squared). \u003ccode\u003ehandle_data/2\u003c/code\u003e prepends \u003ccode\u003econn.buffer\u003c/code\u003e and re-parses from the start on every socket message, so a server that dribbles the digits out in small packets makes the client pay that cost repeatedly. A run of roughly 512,000 hex digits costs over ten seconds of CPU in a single pass, measured on stock defaults. The parser reaches this state after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\u003c/p\u003e\n\u003cp\u003eThis issue affects mint: from 1.9.3 before 1.10.0.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Inefficient Algorithmic Complexity vulnerability in elixir-mint mint allows a remote HTTP server to exhaust CPU on the client host and cause a denial of service.\n\n`parse_hex_prefix/2` in `lib/mint/http1/parse.ex` folds each hex digit of a chunked response\u0027s chunk-size field into an arbitrary-precision accumulator with `acc * 16 + digit` and imposes no limit on the digit count. Because the accumulator grows without bound, the multiplication is not constant time and one pass over `N` digits costs O(N squared). `handle_data/2` prepends `conn.buffer` and re-parses from the start on every socket message, so a server that dribbles the digits out in small packets makes the client pay that cost repeatedly. A run of roughly 512,000 hex digits costs over ten seconds of CPU in a single pass, measured on stock defaults. The parser reaches this state after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\n\nThis issue affects mint: from 1.9.3 before 1.10.0."
                }
              ],
              "value": "Inefficient Algorithmic Complexity vulnerability in elixir-mint mint allows a remote HTTP server to exhaust CPU on the client host and cause a denial of service.\n\nparse_hex_prefix/2 in lib/mint/http1/parse.ex folds each hex digit of a chunked response\u0027s chunk-size field into an arbitrary-precision accumulator with acc * 16 + digit and imposes no limit on the digit count. Because the accumulator grows without bound, the multiplication is not constant time and one pass over N digits costs O(N squared). handle_data/2 prepends conn.buffer and re-parses from the start on every socket message, so a server that dribbles the digits out in small packets makes the client pay that cost repeatedly. A run of roughly 512,000 hex digits costs over ten seconds of CPU in a single pass, measured on stock defaults. The parser reaches this state after a valid status line and a complete, valid header section, so an intermediary inspecting only headers sees an ordinary 200 response.\n\nThis issue affects mint: from 1.9.3 before 1.10.0."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "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",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-407",
                  "description": "CWE-407 Inefficient Algorithmic Complexity",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-04T14:31:20.562Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "related",
                "vendor-advisory"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-7p8w-j234-7qc8"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-82729.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-82729"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/bd2a4e7513594997c140cfef9fe0e968712fb588"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Quadratic chunk-size parsing in Mint.HTTP1.Parse allows CPU-exhaustion DoS"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-82729",
        "datePublished": "2026-09-04T14:31:20.562Z",
        "dateReserved": "2026-08-31T00:59:08.960Z",
        "dateUpdated": "2026-09-04T19:33:32.398Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-59249 (GCVE-0-2026-59249)

    Vulnerability from cvelistv5 – Published: 2026-07-16 11:39 – Updated: 2026-07-17 10:11
    VLAI
    Title
    Sign-tolerant HTTP/1 chunk-size parser in Mint enables response smuggling against strict intermediaries on pooled connections
    Summary
    Inconsistent interpretation of HTTP requests (HTTP response smuggling) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize a strict intermediary and the Mint client on the same pooled connection, enabling response-queue poisoning against subsequent requests that share the connection. The Mint.HTTP1.decode_body/5 function in lib/mint/http1.ex parses the chunk-size line of a Transfer-Encoding: chunked response with Integer.parse(data, 16). RFC 7230 defines chunk-size = 1*HEXDIG and forbids any sign prefix, but Integer.parse/2 accepts an optional leading + or -. A chunk-size line of +5 is accepted as a five-byte chunk; lines of +0 and -0 are accepted as the terminating zero-length chunk and end the message body early. An RFC-strict intermediary in the response path rejects these forms, so the intermediary and the Mint client disagree on where one response ends and the next begins. On a pooled keep-alive connection, an attacker-influenced origin can inject bytes that the client attributes to the next legitimate response on the same connection, poisoning the response queue and corrupting the responses returned to unrelated in-flight requests. This issue affects mint: from 0.1.0 before 1.9.3.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-07-16 12:37 UTC
    CWE
    • CWE-444 - Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.9.3 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 60089586ec7adc9fddb09f69a2f5919ba9ac7f33 , < fc7d16538db7e40b56ed489f08683225cb0197fa (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-59249",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-07-16T12:37:52.637521Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-07-16T12:38:16.316Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-x3x7-96vm-6h2w"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.9.3",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "fc7d16538db7e40b56ed489f08683225cb0197fa",
                  "status": "affected",
                  "version": "60089586ec7adc9fddb09f69a2f5919ba9ac7f33",
                  "versionType": "git"
                }
              ]
            }
          ],
          "configurations": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eExploitation requires a deployment topology in which an RFC-strict HTTP/1 intermediary (proxy, load balancer, or WAF) sits between the Mint client and the attacker-influenced origin, and HTTP/1 connections between the client and the intermediary are reused across requests (keep-alive with connection pooling). Mint clients that talk directly to an origin without an intermediary, or that do not reuse connections, are not exploitable for response-queue poisoning even if the vulnerable parsing behavior is present.\u003c/p\u003e"
                }
              ],
              "value": "Exploitation requires a deployment topology in which an RFC-strict HTTP/1 intermediary (proxy, load balancer, or WAF) sits between the Mint client and the attacker-influenced origin, and HTTP/1 connections between the client and the intermediary are reused across requests (keep-alive with connection pooling). Mint clients that talk directly to an origin without an intermediary, or that do not reuse connections, are not exploitable for response-queue poisoning even if the vulnerable parsing behavior is present."
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.9.3",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Thepigtails"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Andrea Leopardi"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eInconsistent interpretation of HTTP requests (HTTP response smuggling) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize a strict intermediary and the Mint client on the same pooled connection, enabling response-queue poisoning against subsequent requests that share the connection.\u003c/p\u003e\u003cp\u003eThe \u003ctt\u003eMint.HTTP1.decode_body/5\u003c/tt\u003e function in \u003ctt\u003elib/mint/http1.ex\u003c/tt\u003e parses the chunk-size line of a \u003ctt\u003eTransfer-Encoding: chunked\u003c/tt\u003e response with \u003ctt\u003eInteger.parse(data, 16)\u003c/tt\u003e. RFC 7230 defines \u003ctt\u003echunk-size = 1*HEXDIG\u003c/tt\u003e and forbids any sign prefix, but \u003ctt\u003eInteger.parse/2\u003c/tt\u003e accepts an optional leading \u003ctt\u003e+\u003c/tt\u003e or \u003ctt\u003e-\u003c/tt\u003e. A chunk-size line of \u003ctt\u003e+5\u003c/tt\u003e is accepted as a five-byte chunk; lines of \u003ctt\u003e+0\u003c/tt\u003e and \u003ctt\u003e-0\u003c/tt\u003e are accepted as the terminating zero-length chunk and end the message body early.\u003c/p\u003e\u003cp\u003eAn RFC-strict intermediary in the response path rejects these forms, so the intermediary and the Mint client disagree on where one response ends and the next begins. On a pooled keep-alive connection, an attacker-influenced origin can inject bytes that the client attributes to the next legitimate response on the same connection, poisoning the response queue and corrupting the responses returned to unrelated in-flight requests.\u003c/p\u003e\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.9.3.\u003c/p\u003e"
                }
              ],
              "value": "Inconsistent interpretation of HTTP requests (HTTP response smuggling) vulnerability in elixir-mint mint allows a malicious HTTP/1 server to desynchronize a strict intermediary and the Mint client on the same pooled connection, enabling response-queue poisoning against subsequent requests that share the connection.\n\nThe Mint.HTTP1.decode_body/5 function in lib/mint/http1.ex parses the chunk-size line of a Transfer-Encoding: chunked response with Integer.parse(data, 16). RFC 7230 defines chunk-size = 1*HEXDIG and forbids any sign prefix, but Integer.parse/2 accepts an optional leading + or -. A chunk-size line of +5 is accepted as a five-byte chunk; lines of +0 and -0 are accepted as the terminating zero-length chunk and end the message body early.\n\nAn RFC-strict intermediary in the response path rejects these forms, so the intermediary and the Mint client disagree on where one response ends and the next begins. On a pooled keep-alive connection, an attacker-influenced origin can inject bytes that the client attributes to the next legitimate response on the same connection, poisoning the response queue and corrupting the responses returned to unrelated in-flight requests.\n\nThis issue affects mint: from 0.1.0 before 1.9.3."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-273",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-273 HTTP Response Smuggling"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "LOW"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-444",
                  "description": "CWE-444 Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-07-17T10:11:36.783Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-x3x7-96vm-6h2w"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-59249.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-59249"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/fc7d16538db7e40b56ed489f08683225cb0197fa"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Sign-tolerant HTTP/1 chunk-size parser in Mint enables response smuggling against strict intermediaries on pooled connections",
          "x_generator": {
            "engine": "cvelib 1.8.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-59249",
        "datePublished": "2026-07-16T11:39:29.939Z",
        "dateReserved": "2026-07-04T04:24:03.652Z",
        "dateUpdated": "2026-07-17T10:11:36.783Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-59246 (GCVE-0-2026-59246)

    Vulnerability from cvelistv5 – Published: 2026-07-14 08:37 – Updated: 2026-07-14 15:08
    VLAI
    Title
    Zero-length HTTP/2 CONTINUATION frames bypass Mint's header-block byte-size cap and exhaust client memory
    Summary
    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.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-07-14 12:25 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.9.2 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 596ca4304504be68939c4929e0831557097962b8 , < 5779de1666344b32aefc4354184ea07f902f73ce (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-59246",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-07-14T12:25:59.949476Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-07-14T12:26:05.211Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-8pf6-g464-h6h9"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_continuation/3"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:assert_header_block_within_max_size/2"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.9.2",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_continuation/3"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:assert_header_block_within_max_size/2"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "5779de1666344b32aefc4354184ea07f902f73ce",
                  "status": "affected",
                  "version": "596ca4304504be68939c4929e0831557097962b8",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.9.2",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "zx (Jace)"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Andrea Leopardi"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAllocation 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.\u003c/p\u003e\u003cp\u003eThe \u003ctt\u003eMint.HTTP2.handle_continuation/3\u003c/tt\u003e function in \u003ctt\u003elib/mint/http2.ex\u003c/tt\u003e accumulates the header-block fragment carried by each HTTP/2 \u003ctt\u003eCONTINUATION\u003c/tt\u003e frame into a growing \u003ctt\u003econn.headers_being_processed\u003c/tt\u003e nesting, one level deeper per frame, and only releases it when a frame with the \u003ctt\u003eEND_HEADERS\u003c/tt\u003e flag arrives. The only guard on this accumulator is \u003ctt\u003eMint.HTTP2.assert_header_block_within_max_size/2\u003c/tt\u003e, which sums the byte size of the fragments received so far. Because a \u003ctt\u003eCONTINUATION\u003c/tt\u003e frame is permitted by the protocol to carry a zero-length payload, an unbounded chain of zero-length \u003ctt\u003eCONTINUATION\u003c/tt\u003e frames adds no bytes to the running total, never trips the size cap, and never emits \u003ctt\u003eEND_HEADERS\u003c/tt\u003e, yet each frame still nests the accumulator one level deeper.\u003c/p\u003e\u003cp\u003eA 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 \u003ctt\u003eHEADERS\u003c/tt\u003e frame without \u003ctt\u003eEND_HEADERS\u003c/tt\u003e and then stream zero-length \u003ctt\u003eCONTINUATION\u003c/tt\u003e 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.\u003c/p\u003e\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.9.2.\u003c/p\u003e"
                }
              ],
              "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."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "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",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-07-14T15:08:39.463Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-8pf6-g464-h6h9"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-59246.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-59246"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/5779de1666344b32aefc4354184ea07f902f73ce"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Zero-length HTTP/2 CONTINUATION frames bypass Mint\u0027s header-block byte-size cap and exhaust client memory",
          "x_generator": {
            "engine": "cvelib 1.8.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-59246",
        "datePublished": "2026-07-14T08:37:04.609Z",
        "dateReserved": "2026-07-04T04:24:03.652Z",
        "dateUpdated": "2026-07-14T15:08:39.463Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-58229 (GCVE-0-2026-58229)

    Vulnerability from cvelistv5 – Published: 2026-07-14 08:36 – Updated: 2026-07-14 15:07
    VLAI
    Title
    Unbounded HTTP/1 response-header and chunked-trailer accumulation in Mint causes memory-exhaustion DoS
    Summary
    Allocation of resources without limits vulnerability in elixir-mint mint allows a remote HTTP server to exhaust memory on the client host and cause a denial of service. The Mint.HTTP1.decode_headers/5 and Mint.HTTP1.decode_trailer_headers/4 functions in lib/mint/http1.ex accumulate every parsed response header and chunked-trailer field into a per-request list that persists across incoming TCP segments as request.headers_buffer, and only clear it when the terminating blank line is received. The section has no cap on the number of headers or on total bytes, and the underlying :erlang.decode_packet(:httph_bin, binary, []) parser is invoked with an empty option list so its per-line and per-packet size limits also default to unlimited. A malicious HTTP server (reachable directly, via an attacker-controlled redirect, via SSRF, or via a man-in-the-middle) can stream complete header lines (or, after a chunked body, complete trailer lines) indefinitely without ever emitting the terminating blank line. The connection state grows without bound until the BEAM node is killed by the operating system's out-of-memory handler, taking down the entire application that uses Mint as an HTTP client. This issue affects mint: from 0.1.0 before 1.9.2.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-07-14 12:27 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.9.2 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 3e6de4bac4821b0eb4d6109e8b1f3fb6458792c8 , < 566d702e6f29105f77522ca7aabb9f64f2f4e333 (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-58229",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-07-14T12:27:10.055823Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-07-14T12:27:15.737Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-qrfr-wh4c-3qhw"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_headers/5"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_trailer_headers/4"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.9.2",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_headers/5"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_trailer_headers/4"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "566d702e6f29105f77522ca7aabb9f64f2f4e333",
                  "status": "affected",
                  "version": "3e6de4bac4821b0eb4d6109e8b1f3fb6458792c8",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.9.2",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "zx (Jace)"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Andrea Leopardi"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAllocation of resources without limits vulnerability in elixir-mint mint allows a remote HTTP server to exhaust memory on the client host and cause a denial of service.\u003c/p\u003e\u003cp\u003eThe \u003ctt\u003eMint.HTTP1.decode_headers/5\u003c/tt\u003e and \u003ctt\u003eMint.HTTP1.decode_trailer_headers/4\u003c/tt\u003e functions in \u003ctt\u003elib/mint/http1.ex\u003c/tt\u003e accumulate every parsed response header and chunked-trailer field into a per-request list that persists across incoming TCP segments as \u003ctt\u003erequest.headers_buffer\u003c/tt\u003e, and only clear it when the terminating blank line is received. The section has no cap on the number of headers or on total bytes, and the underlying \u003ctt\u003e:erlang.decode_packet(:httph_bin, binary, [])\u003c/tt\u003e parser is invoked with an empty option list so its per-line and per-packet size limits also default to unlimited.\u003c/p\u003e\u003cp\u003eA malicious HTTP server (reachable directly, via an attacker-controlled redirect, via SSRF, or via a man-in-the-middle) can stream complete header lines (or, after a chunked body, complete trailer lines) indefinitely without ever emitting the terminating blank line. The connection state grows without bound until the BEAM node is killed by the operating system\u0027s out-of-memory handler, taking down the entire application that uses Mint as an HTTP client.\u003c/p\u003e\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.9.2.\u003c/p\u003e"
                }
              ],
              "value": "Allocation of resources without limits vulnerability in elixir-mint mint allows a remote HTTP server to exhaust memory on the client host and cause a denial of service.\n\nThe Mint.HTTP1.decode_headers/5 and Mint.HTTP1.decode_trailer_headers/4 functions in lib/mint/http1.ex accumulate every parsed response header and chunked-trailer field into a per-request list that persists across incoming TCP segments as request.headers_buffer, and only clear it when the terminating blank line is received. The section has no cap on the number of headers or on total bytes, and the underlying :erlang.decode_packet(:httph_bin, binary, []) parser is invoked with an empty option list so its per-line and per-packet size limits also default to unlimited.\n\nA malicious HTTP server (reachable directly, via an attacker-controlled redirect, via SSRF, or via a man-in-the-middle) can stream complete header lines (or, after a chunked body, complete trailer lines) indefinitely without ever emitting the terminating blank line. The connection state grows without bound until the BEAM node is killed by the operating system\u0027s out-of-memory handler, taking down the entire application that uses Mint as an HTTP client.\n\nThis issue affects mint: from 0.1.0 before 1.9.2."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 8.2,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-07-14T15:07:57.359Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-qrfr-wh4c-3qhw"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-58229.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-58229"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/566d702e6f29105f77522ca7aabb9f64f2f4e333"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Unbounded HTTP/1 response-header and chunked-trailer accumulation in Mint causes memory-exhaustion DoS",
          "x_generator": {
            "engine": "cvelib 1.8.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-58229",
        "datePublished": "2026-07-14T08:36:54.616Z",
        "dateReserved": "2026-06-29T18:54:08.633Z",
        "dateUpdated": "2026-07-14T15:07:57.359Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-56810 (GCVE-0-2026-56810)

    Vulnerability from cvelistv5 – Published: 2026-07-06 09:17 – Updated: 2026-07-07 04:32
    VLAI
    Title
    mint buffers an entire chunked response chunk in memory in Mint.HTTP1.decode_body/5
    Summary
    Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint (Mint.HTTP1 module) allows a denial of service via an oversized chunked transfer-encoded response. This vulnerability is associated with program files lib/mint/http1.ex and program routines 'Elixir.Mint.HTTP1':decode_body/5, 'Elixir.Mint.HTTP1':add_body_to_buffer/2. When Mint decodes a chunked HTTP response body, it accumulates each partial fragment of the current chunk in the connection's data_buffer (an unbounded iolist) via add_body_to_buffer/2 and does not emit the data to the caller until the full declared chunk length has been received. The chunk size is taken directly from the server and parsed with no upper bound, so a malicious or compromised server can announce one enormous chunk (for example a size line of 7FFFFFFF, about 2 GiB) and then send the body bytes slowly without ever completing the chunk. The client buffers every received byte while it waits for a completion that never arrives, and because no data responses are produced until the chunk finishes, a caller that otherwise streams large content-length bodies safely gains no protection. An unauthenticated remote server (reachable whenever a client follows redirects, fetches user-supplied URLs, or processes webhooks) can drive the client's memory arbitrarily high and trigger an out-of-memory condition. This issue affects mint: from 0.5.0 before 1.9.1.
    SSVC
    Exploitation: poc Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-07-06 15:52 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.5.0 , < 1.9.1 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: c575d819d39ebf7e9b77ec24584a5ffbb11c844e , < 193ce714907d16e8adc4ab3c40e4f0c2f045b2a6 (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-56810",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-07-06T15:52:57.089606Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-07-06T15:53:00.170Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-c59h-fq4p-r36r"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:add_body_to_buffer/2"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.9.1",
                  "status": "affected",
                  "version": "0.5.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:decode_body/5"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP1\u0027:add_body_to_buffer/2"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "193ce714907d16e8adc4ab3c40e4f0c2f045b2a6",
                  "status": "affected",
                  "version": "c575d819d39ebf7e9b77ec24584a5ffbb11c844e",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.9.1",
                      "versionStartIncluding": "0.5.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Peter Ullrich"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Andrea Leopardi"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Eric Meadows-J\u00f6nsson"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAllocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint (\u003ctt\u003eMint.HTTP1\u003c/tt\u003e module) allows a denial of service via an oversized \u003ctt\u003echunked\u003c/tt\u003e transfer-encoded response.\u003c/p\u003e\u003cp\u003eThis vulnerability is associated with program files \u003ctt\u003elib/mint/http1.ex\u003c/tt\u003e and program routines \u003ctt\u003e\u0027Elixir.Mint.HTTP1\u0027:decode_body/5\u003c/tt\u003e, \u003ctt\u003e\u0027Elixir.Mint.HTTP1\u0027:add_body_to_buffer/2\u003c/tt\u003e.\u003c/p\u003e\u003cp\u003eWhen Mint decodes a \u003ctt\u003echunked\u003c/tt\u003e HTTP response body, it accumulates each partial fragment of the current chunk in the connection\u0027s \u003ctt\u003edata_buffer\u003c/tt\u003e (an unbounded iolist) via \u003ctt\u003eadd_body_to_buffer/2\u003c/tt\u003e and does not emit the data to the caller until the full declared chunk length has been received. The chunk size is taken directly from the server and parsed with no upper bound, so a malicious or compromised server can announce one enormous chunk (for example a size line of \u003ctt\u003e7FFFFFFF\u003c/tt\u003e, about 2 GiB) and then send the body bytes slowly without ever completing the chunk. The client buffers every received byte while it waits for a completion that never arrives, and because no data responses are produced until the chunk finishes, a caller that otherwise streams large \u003ctt\u003econtent-length\u003c/tt\u003e bodies safely gains no protection. An unauthenticated remote server (reachable whenever a client follows redirects, fetches user-supplied URLs, or processes webhooks) can drive the client\u0027s memory arbitrarily high and trigger an out-of-memory condition.\u003c/p\u003e\u003cp\u003eThis issue affects mint: from 0.5.0 before 1.9.1.\u003c/p\u003e"
                }
              ],
              "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint (Mint.HTTP1 module) allows a denial of service via an oversized chunked transfer-encoded response.\n\nThis vulnerability is associated with program files lib/mint/http1.ex and program routines \u0027Elixir.Mint.HTTP1\u0027:decode_body/5, \u0027Elixir.Mint.HTTP1\u0027:add_body_to_buffer/2.\n\nWhen Mint decodes a chunked HTTP response body, it accumulates each partial fragment of the current chunk in the connection\u0027s data_buffer (an unbounded iolist) via add_body_to_buffer/2 and does not emit the data to the caller until the full declared chunk length has been received. The chunk size is taken directly from the server and parsed with no upper bound, so a malicious or compromised server can announce one enormous chunk (for example a size line of 7FFFFFFF, about 2 GiB) and then send the body bytes slowly without ever completing the chunk. The client buffers every received byte while it waits for a completion that never arrives, and because no data responses are produced until the chunk finishes, a caller that otherwise streams large content-length bodies safely gains no protection. An unauthenticated remote server (reachable whenever a client follows redirects, fetches user-supplied URLs, or processes webhooks) can drive the client\u0027s memory arbitrarily high and trigger an out-of-memory condition.\n\nThis issue affects mint: from 0.5.0 before 1.9.1."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 8.7,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-07-07T04:32:36.390Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-c59h-fq4p-r36r"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-56810.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-56810"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/193ce714907d16e8adc4ab3c40e4f0c2f045b2a6"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "mint buffers an entire chunked response chunk in memory in Mint.HTTP1.decode_body/5",
          "x_generator": {
            "engine": "cvelib 1.8.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-56810",
        "datePublished": "2026-07-06T09:17:17.429Z",
        "dateReserved": "2026-06-23T12:29:02.507Z",
        "dateUpdated": "2026-07-07T04:32:36.390Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-49753 (GCVE-0-2026-49753)

    Vulnerability from cvelistv5 – Published: 2026-06-02 14:15 – Updated: 2026-06-02 19:14
    VLAI
    Title
    HTTP response smuggling in Mint HTTP/1 client via lenient Content-Length parsing
    Summary
    Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') vulnerability in elixir-mint Mint allows attacker-controlled HTTP/1 servers to desynchronise response framing on shared connections. Mint's HTTP/1 Content-Length parser, Mint.HTTP1.Parse.content_length_header/1 in lib/mint/http1/parse.ex, parses the header value with Integer.parse/1, which accepts an optional + or - sign prefix. The length >= 0 guard rejects negatives, but inputs such as +0 or +123 are returned as valid lengths. RFC 7230 specifies Content-Length = 1*DIGIT, with no sign character permitted. A fronting proxy or load balancer that strictly enforces the grammar will reject or reframe a header like Content-Length: +0, while Mint silently treats it as zero. When Mint reuses the socket (keep-alive, pipelining, or any pooled connection shared across requesters), the parser disagreement is a response-smuggling primitive: the proxy delimits the body one way, Mint another, and bytes from one response get attributed to the next. Where the same Mint connection is shared across trust boundaries, an attacker-controlled upstream can leak bytes into a different consumer's response stream. This issue affects mint: from 0.1.0 before 1.9.0.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-06-02 18:06 UTC
    CWE
    • CWE-444 - Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.9.0 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 65e0e86d799a6d3b08e4372fccdd9747535e0dd6 , < 47e48027480228e4e32a0b4df39db497b4804921 (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-49753",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-06-02T18:06:41.525477Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-06-02T18:06:51.373Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-mjqx-c6f6-7rc2"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1.Parse\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1/parse.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Parse\u0027:content_length_header/1"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.9.0",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1.Parse\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1/parse.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Parse\u0027:content_length_header/1"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint.git",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "47e48027480228e4e32a0b4df39db497b4804921",
                  "status": "affected",
                  "version": "65e0e86d799a6d3b08e4372fccdd9747535e0dd6",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.9.0",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Peter Ullrich"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027) vulnerability in elixir-mint Mint allows attacker-controlled HTTP/1 servers to desynchronise response framing on shared connections.\u003cp\u003eMint\u0027s HTTP/1 \u003ctt\u003eContent-Length\u003c/tt\u003e parser, \u003ctt\u003e\u0027Elixir.Mint.HTTP1.Parse\u0027:content_length_header/1\u003c/tt\u003e in \u003ctt\u003elib/mint/http1/parse.ex\u003c/tt\u003e, parses the header value with \u003ctt\u003eInteger.parse/1\u003c/tt\u003e, which accepts an optional \u003ctt\u003e+\u003c/tt\u003e or \u003ctt\u003e-\u003c/tt\u003e sign prefix. The \u003ctt\u003elength \u0026gt;= 0\u003c/tt\u003e guard rejects negatives, but inputs such as \u003ctt\u003e+0\u003c/tt\u003e or \u003ctt\u003e+123\u003c/tt\u003e are returned as valid lengths. RFC 7230 specifies \u003ctt\u003eContent-Length = 1*DIGIT\u003c/tt\u003e, with no sign character permitted.\u003c/p\u003e\u003cp\u003eA fronting proxy or load balancer that strictly enforces the grammar will reject or reframe a header like \u003ctt\u003eContent-Length: +0\u003c/tt\u003e, while Mint silently treats it as zero. When Mint reuses the socket (keep-alive, pipelining, or any pooled connection shared across requesters), the parser disagreement is a response-smuggling primitive: the proxy delimits the body one way, Mint another, and bytes from one response get attributed to the next. Where the same Mint connection is shared across trust boundaries, an attacker-controlled upstream can leak bytes into a different consumer\u0027s response stream.\u003c/p\u003e\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.9.0.\u003c/p\u003e"
                }
              ],
              "value": "Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027) vulnerability in elixir-mint Mint allows attacker-controlled HTTP/1 servers to desynchronise response framing on shared connections.\n\nMint\u0027s HTTP/1 Content-Length parser, Mint.HTTP1.Parse.content_length_header/1 in lib/mint/http1/parse.ex, parses the header value with Integer.parse/1, which accepts an optional + or - sign prefix. The length \u003e= 0 guard rejects negatives, but inputs such as +0 or +123 are returned as valid lengths. RFC 7230 specifies Content-Length = 1*DIGIT, with no sign character permitted.\n\nA fronting proxy or load balancer that strictly enforces the grammar will reject or reframe a header like Content-Length: +0, while Mint silently treats it as zero. When Mint reuses the socket (keep-alive, pipelining, or any pooled connection shared across requesters), the parser disagreement is a response-smuggling primitive: the proxy delimits the body one way, Mint another, and bytes from one response get attributed to the next. Where the same Mint connection is shared across trust boundaries, an attacker-controlled upstream can leak bytes into a different consumer\u0027s response stream.\n\nThis issue affects mint: from 0.1.0 before 1.9.0."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-273",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-273 HTTP Response Smuggling"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "LOW",
                "subIntegrityImpact": "LOW",
                "userInteraction": "NONE",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:L/SI:L/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "LOW"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-444",
                  "description": "CWE-444 Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-06-02T19:14:42.817Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-mjqx-c6f6-7rc2"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-49753.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-49753"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/47e48027480228e4e32a0b4df39db497b4804921"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "HTTP response smuggling in Mint HTTP/1 client via lenient Content-Length parsing",
          "x_generator": {
            "engine": "cvelib 1.8.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-49753",
        "datePublished": "2026-06-02T14:15:17.078Z",
        "dateReserved": "2026-06-01T13:45:22.448Z",
        "dateUpdated": "2026-06-02T19:14:42.817Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-49754 (GCVE-0-2026-49754)

    Vulnerability from cvelistv5 – Published: 2026-06-02 14:15 – Updated: 2026-06-02 19:14
    VLAI
    Title
    HTTP/2 CONTINUATION flood in Mint client via unbounded header-block accumulation
    Summary
    Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint Mint allows attacker-controlled HTTP/2 servers to exhaust memory in a Mint client (HTTP/2 CONTINUATION flood). When Mint's HTTP/2 receive path observes a HEADERS frame without the END_HEADERS flag, the unparsed header-block fragment is parked in conn.headers_being_processed, and every subsequent CONTINUATION frame on that stream is appended to the accumulator. Nothing in the receive path caps the accumulator: there is no per-stream size limit, no CONTINUATION frame-count limit, and max_header_list_size is only enforced on outgoing requests, never on inbound header blocks (its default is :infinity). A malicious or compromised HTTP/2 server can stream an endless sequence of CONTINUATION frames (each up to the peer-advertised SETTINGS_MAX_FRAME_SIZE) and drive the client's iolist to arbitrary size, causing memory exhaustion and BEAM process death. A single connection to an attacker-controlled HTTP/2 endpoint is sufficient. This issue affects mint: from 0.1.0 before 1.9.0.
    SSVC
    Exploitation: poc Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-06-02 18:08 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.9.0 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 596ca4304504be68939c4929e0831557097962b8 , < b662d127d3028b5426c88d4c9cc7fe430491a10b (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-49754",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-06-02T18:08:02.308938Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-06-02T18:08:05.621Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-2p26-p43x-fhp8"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_continuation/3"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_headers/3"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.9.0",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_continuation/3"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_headers/3"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint.git",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "b662d127d3028b5426c88d4c9cc7fe430491a10b",
                  "status": "affected",
                  "version": "596ca4304504be68939c4929e0831557097962b8",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.9.0",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Peter Ullrich"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint Mint allows attacker-controlled HTTP/2 servers to exhaust memory in a Mint client (HTTP/2 CONTINUATION flood).\u003cp\u003eWhen Mint\u0027s HTTP/2 receive path observes a \u003ctt\u003eHEADERS\u003c/tt\u003e frame without the \u003ctt\u003eEND_HEADERS\u003c/tt\u003e flag, the unparsed header-block fragment is parked in \u003ctt\u003econn.headers_being_processed\u003c/tt\u003e, and every subsequent \u003ctt\u003eCONTINUATION\u003c/tt\u003e frame on that stream is appended to the accumulator. Nothing in the receive path caps the accumulator: there is no per-stream size limit, no \u003ctt\u003eCONTINUATION\u003c/tt\u003e frame-count limit, and \u003ctt\u003emax_header_list_size\u003c/tt\u003e is only enforced on outgoing requests, never on inbound header blocks (its default is \u003ctt\u003e:infinity\u003c/tt\u003e).\u003c/p\u003e\u003cp\u003eA malicious or compromised HTTP/2 server can stream an endless sequence of \u003ctt\u003eCONTINUATION\u003c/tt\u003e frames (each up to the peer-advertised \u003ctt\u003eSETTINGS_MAX_FRAME_SIZE\u003c/tt\u003e) and drive the client\u0027s iolist to arbitrary size, causing memory exhaustion and BEAM process death. A single connection to an attacker-controlled HTTP/2 endpoint is sufficient.\u003c/p\u003e\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.9.0.\u003c/p\u003e"
                }
              ],
              "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint Mint allows attacker-controlled HTTP/2 servers to exhaust memory in a Mint client (HTTP/2 CONTINUATION flood).\n\nWhen Mint\u0027s HTTP/2 receive path observes a HEADERS frame without the END_HEADERS flag, the unparsed header-block fragment is parked in conn.headers_being_processed, and every subsequent CONTINUATION frame on that stream is appended to the accumulator. Nothing in the receive path caps the accumulator: there is no per-stream size limit, no CONTINUATION frame-count limit, and max_header_list_size is only enforced on outgoing requests, never on inbound header blocks (its default is :infinity).\n\nA malicious or compromised HTTP/2 server can stream an endless sequence of CONTINUATION frames (each up to the peer-advertised SETTINGS_MAX_FRAME_SIZE) and drive the client\u0027s iolist to arbitrary size, causing memory exhaustion and BEAM process death. A single connection to an attacker-controlled HTTP/2 endpoint is sufficient.\n\nThis issue affects mint: from 0.1.0 before 1.9.0."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 8.2,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-06-02T19:14:33.100Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-2p26-p43x-fhp8"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-49754.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-49754"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/b662d127d3028b5426c88d4c9cc7fe430491a10b"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "HTTP/2 CONTINUATION flood in Mint client via unbounded header-block accumulation",
          "workarounds": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eRestrict Mint to HTTP/1 on connections to untrusted servers by passing \u003ctt\u003eprotocols: [:http1]\u003c/tt\u003e to \u003ctt\u003e\u0027Elixir.Mint.HTTP\u0027:connect/4\u003c/tt\u003e. This avoids the vulnerable HTTP/2 receive path entirely, at the cost of losing HTTP/2 for those connections.\u003c/p\u003e"
                }
              ],
              "value": "Restrict Mint to HTTP/1 on connections to untrusted servers by passing protocols: [:http1] to Mint.HTTP.connect/4. This avoids the vulnerable HTTP/2 receive path entirely, at the cost of losing HTTP/2 for those connections."
            }
          ],
          "x_generator": {
            "engine": "cvelib 1.8.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-49754",
        "datePublished": "2026-06-02T14:15:14.951Z",
        "dateReserved": "2026-06-01T13:45:22.448Z",
        "dateUpdated": "2026-06-02T19:14:33.100Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-48862 (GCVE-0-2026-48862)

    Vulnerability from cvelistv5 – Published: 2026-06-02 14:15 – Updated: 2026-06-02 19:14
    VLAI
    Title
    Unbounded conn.streams growth in Mint HTTP/2 client via unenforced PUSH_PROMISE concurrency
    Summary
    Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint Mint allows attacker-controlled HTTP/2 servers to exhaust memory in a Mint client via PUSH_PROMISE flooding. In lib/mint/http2.ex, Mint.HTTP2.decode_push_promise_headers_and_add_response/5 inserts a :reserved_remote entry into conn.streams for every promised stream ID. The neighbouring Mint.HTTP2.assert_valid_promised_stream_id/2 only verifies that the promised ID is even and not already present; client_settings.max_concurrent_streams is not consulted at promise time. The concurrency cap is only checked when the response HEADERS for the promised stream arrive, so a server that emits PUSH_PROMISE frames and withholds the matching HEADERS never trips that check. HTTP/2 server push is accepted by default (client_settings.enable_push defaults to true). A single long-lived HTTP/2 connection to a hostile server lets that server pin one conn.streams entry per PUSH_PROMISE frame it sends, with no upper bound, until the client process runs out of memory. This issue affects mint: from 0.2.0 before 1.9.0.
    SSVC
    Exploitation: poc Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-06-02 18:11 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.2.0 , < 1.9.0 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 65c6394d05a1b8aa4a7461708c3aa173e8d7a5cf , < 70b97b6a5209fb288b0e04d8e657dda26c59de67 (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-48862",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-06-02T18:11:00.524487Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-06-02T18:11:05.599Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-g586-ccqf-7x4r"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_push_promise/3"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:decode_push_promise_headers_and_add_response/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.9.0",
                  "status": "affected",
                  "version": "0.2.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP2\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http2.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:handle_push_promise/3"
                },
                {
                  "name": "\u0027Elixir.Mint.HTTP2\u0027:decode_push_promise_headers_and_add_response/5"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint.git",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "70b97b6a5209fb288b0e04d8e657dda26c59de67",
                  "status": "affected",
                  "version": "65c6394d05a1b8aa4a7461708c3aa173e8d7a5cf",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.9.0",
                      "versionStartIncluding": "0.2.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Peter Ullrich"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint Mint allows attacker-controlled HTTP/2 servers to exhaust memory in a Mint client via PUSH_PROMISE flooding.\u003cp\u003eIn \u003ctt\u003elib/mint/http2.ex\u003c/tt\u003e, \u003ctt\u003e\u0027Elixir.Mint.HTTP2\u0027:decode_push_promise_headers_and_add_response/5\u003c/tt\u003e inserts a \u003ctt\u003e:reserved_remote\u003c/tt\u003e entry into \u003ctt\u003econn.streams\u003c/tt\u003e for every promised stream ID. The neighbouring \u003ctt\u003e\u0027Elixir.Mint.HTTP2\u0027:assert_valid_promised_stream_id/2\u003c/tt\u003e only verifies that the promised ID is even and not already present; \u003ctt\u003eclient_settings.max_concurrent_streams\u003c/tt\u003e is not consulted at promise time. The concurrency cap is only checked when the response \u003ctt\u003eHEADERS\u003c/tt\u003e for the promised stream arrive, so a server that emits \u003ctt\u003ePUSH_PROMISE\u003c/tt\u003e frames and withholds the matching \u003ctt\u003eHEADERS\u003c/tt\u003e never trips that check.\u003c/p\u003e\u003cp\u003eHTTP/2 server push is accepted by default (\u003ctt\u003eclient_settings.enable_push\u003c/tt\u003e defaults to \u003ctt\u003etrue\u003c/tt\u003e). A single long-lived HTTP/2 connection to a hostile server lets that server pin one \u003ctt\u003econn.streams\u003c/tt\u003e entry per \u003ctt\u003ePUSH_PROMISE\u003c/tt\u003e frame it sends, with no upper bound, until the client process runs out of memory.\u003c/p\u003e\u003cp\u003eThis issue affects mint: from 0.2.0 before 1.9.0.\u003c/p\u003e"
                }
              ],
              "value": "Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint Mint allows attacker-controlled HTTP/2 servers to exhaust memory in a Mint client via PUSH_PROMISE flooding.\n\nIn lib/mint/http2.ex, Mint.HTTP2.decode_push_promise_headers_and_add_response/5 inserts a :reserved_remote entry into conn.streams for every promised stream ID. The neighbouring Mint.HTTP2.assert_valid_promised_stream_id/2 only verifies that the promised ID is even and not already present; client_settings.max_concurrent_streams is not consulted at promise time. The concurrency cap is only checked when the response HEADERS for the promised stream arrive, so a server that emits PUSH_PROMISE frames and withholds the matching HEADERS never trips that check.\n\nHTTP/2 server push is accepted by default (client_settings.enable_push defaults to true). A single long-lived HTTP/2 connection to a hostile server lets that server pin one conn.streams entry per PUSH_PROMISE frame it sends, with no upper bound, until the client process runs out of memory.\n\nThis issue affects mint: from 0.2.0 before 1.9.0."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 8.2,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-06-02T19:14:09.683Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-g586-ccqf-7x4r"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-48862.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-48862"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/70b97b6a5209fb288b0e04d8e657dda26c59de67"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Unbounded conn.streams growth in Mint HTTP/2 client via unenforced PUSH_PROMISE concurrency",
          "workarounds": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eDisable HTTP/2 server push on connections to untrusted servers by passing \u003ctt\u003eclient_settings: [enable_push: false]\u003c/tt\u003e to \u003ctt\u003e\u0027Elixir.Mint.HTTP\u0027:connect/4\u003c/tt\u003e. This makes Mint reject any inbound \u003ctt\u003ePUSH_PROMISE\u003c/tt\u003e frame with a \u003ctt\u003ePROTOCOL_ERROR\u003c/tt\u003e before the vulnerable code path is reached.\u003c/p\u003e"
                }
              ],
              "value": "Disable HTTP/2 server push on connections to untrusted servers by passing client_settings: [enable_push: false] to Mint.HTTP.connect/4. This makes Mint reject any inbound PUSH_PROMISE frame with a PROTOCOL_ERROR before the vulnerable code path is reached."
            }
          ],
          "x_generator": {
            "engine": "cvelib 1.8.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-48862",
        "datePublished": "2026-06-02T14:15:10.591Z",
        "dateReserved": "2026-05-25T20:44:10.697Z",
        "dateUpdated": "2026-06-02T19:14:09.683Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-48861 (GCVE-0-2026-48861)

    Vulnerability from cvelistv5 – Published: 2026-06-02 14:15 – Updated: 2026-06-02 19:14
    VLAI
    Title
    CRLF injection in HTTP/1 request line via unvalidated method in Mint
    Summary
    Improper Neutralization of CRLF Sequences ('CRLF Injection') vulnerability in elixir-mint Mint allows HTTP Request Splitting and HTTP Request Smuggling. In lib/mint/http1/request.ex, the encode_request_line/2 function splices the caller-supplied method and target arguments directly into the HTTP/1 request line without any character validation: [method, ?\s, target, " HTTP/1.1\r\n"]. An application that forwards attacker-controlled input as the HTTP method or target to Mint.HTTP.request/5 is therefore exposed to request-line CRLF injection: the attacker can terminate the request line early, inject arbitrary headers, and smuggle an entirely separate pipelined HTTP request onto the same TCP connection. Mint 1.7.0 introduced validate_request_target/2, which rejects CRLF and other control characters in the target by default and closes the path/query vector unless the caller opts out via skip_target_validation: true. The method field remains unvalidated, so the method-based injection is exploitable under the default Mint configuration on all versions. This issue affects mint: from 0.1.0 before 1.9.0.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-06-02 18:11 UTC
    CWE
    • CWE-93 - Improper Neutralization of CRLF Sequences ('CRLF Injection')
    Impacted products
    Vendor Product Version
    elixir-mint mint Affected: 0.1.0 , < 1.9.0 (semver)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    elixir-mint mint Affected: 8db1acff30b6a9433762c18b1e1f891b8c1f74f7 , < fad091454cbb7449b19edb8e1fee12ca7cf28c3a (git)
        cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-48861",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-06-02T18:11:46.297986Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-06-02T18:12:22.736Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-2pg6-44cx-c49v"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1.Request\u0027"
              ],
              "packageName": "mint",
              "packageURL": "pkg:hex/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1/request.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Request\u0027:encode_request_line/2"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "1.9.0",
                  "status": "affected",
                  "version": "0.1.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Mint.HTTP1.Request\u0027"
              ],
              "packageName": "elixir-mint/mint",
              "packageURL": "pkg:github/elixir-mint/mint",
              "product": "mint",
              "programFiles": [
                "lib/mint/http1/request.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Mint.HTTP1.Request\u0027:encode_request_line/2"
                }
              ],
              "repo": "https://github.com/elixir-mint/mint.git",
              "vendor": "elixir-mint",
              "versions": [
                {
                  "lessThan": "fad091454cbb7449b19edb8e1fee12ca7cf28c3a",
                  "status": "affected",
                  "version": "8db1acff30b6a9433762c18b1e1f891b8c1f74f7",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.9.0",
                      "versionStartIncluding": "0.1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Peter Ullrich"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Eric Meadows-J\u00f6nsson"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Improper Neutralization of CRLF Sequences (\u0027CRLF Injection\u0027) vulnerability in elixir-mint Mint allows HTTP Request Splitting and HTTP Request Smuggling.\u003cp\u003eIn \u003ctt\u003elib/mint/http1/request.ex\u003c/tt\u003e, the \u003ctt\u003eencode_request_line/2\u003c/tt\u003e function splices the caller-supplied \u003ctt\u003emethod\u003c/tt\u003e and \u003ctt\u003etarget\u003c/tt\u003e arguments directly into the HTTP/1 request line without any character validation: \u003ctt\u003e[method, ?\\s, target, \" HTTP/1.1\\r\\n\"]\u003c/tt\u003e. An application that forwards attacker-controlled input as the HTTP method or target to \u003ctt\u003e\u0027Elixir.Mint.HTTP\u0027:request/5\u003c/tt\u003e is therefore exposed to request-line CRLF injection: the attacker can terminate the request line early, inject arbitrary headers, and smuggle an entirely separate pipelined HTTP request onto the same TCP connection.\u003c/p\u003e\u003cp\u003eMint 1.7.0 introduced \u003ctt\u003evalidate_request_target/2\u003c/tt\u003e, which rejects CRLF and other control characters in the \u003ctt\u003etarget\u003c/tt\u003e by default and closes the path/query vector unless the caller opts out via \u003ctt\u003eskip_target_validation: true\u003c/tt\u003e. The \u003ctt\u003emethod\u003c/tt\u003e field remains unvalidated, so the method-based injection is exploitable under the default Mint configuration on all versions.\u003c/p\u003e\u003cp\u003eThis issue affects mint: from 0.1.0 before 1.9.0.\u003c/p\u003e"
                }
              ],
              "value": "Improper Neutralization of CRLF Sequences (\u0027CRLF Injection\u0027) vulnerability in elixir-mint Mint allows HTTP Request Splitting and HTTP Request Smuggling.\n\nIn lib/mint/http1/request.ex, the encode_request_line/2 function splices the caller-supplied method and target arguments directly into the HTTP/1 request line without any character validation: [method, ?\\s, target, \" HTTP/1.1\\r\\n\"]. An application that forwards attacker-controlled input as the HTTP method or target to Mint.HTTP.request/5 is therefore exposed to request-line CRLF injection: the attacker can terminate the request line early, inject arbitrary headers, and smuggle an entirely separate pipelined HTTP request onto the same TCP connection.\n\nMint 1.7.0 introduced validate_request_target/2, which rejects CRLF and other control characters in the target by default and closes the path/query vector unless the caller opts out via skip_target_validation: true. The method field remains unvalidated, so the method-based injection is exploitable under the default Mint configuration on all versions.\n\nThis issue affects mint: from 0.1.0 before 1.9.0."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-33",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-33 HTTP Request Smuggling"
                }
              ]
            },
            {
              "capecId": "CAPEC-105",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-105 HTTP Request Splitting"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "LOCAL",
                "baseScore": 2.1,
                "baseSeverity": "LOW",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "LOW",
                "userInteraction": "NONE",
                "vectorString": "CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "LOW"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-93",
                  "description": "CWE-93 Improper Neutralization of CRLF Sequences (\u0027CRLF Injection\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-06-02T19:14:00.466Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/elixir-mint/mint/security/advisories/GHSA-2pg6-44cx-c49v"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-48861.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-48861"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/elixir-mint/mint/commit/fad091454cbb7449b19edb8e1fee12ca7cf28c3a"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "CRLF injection in HTTP/1 request line via unvalidated method in Mint",
          "x_generator": {
            "engine": "cvelib 1.8.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-48861",
        "datePublished": "2026-06-02T14:15:09.015Z",
        "dateReserved": "2026-05-25T20:44:10.697Z",
        "dateUpdated": "2026-06-02T19:14:00.466Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }