• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

elixir-mint / mint / b662d127d3028b5426c88d4c9cc7fe430491a10b
88%

Build:
DEFAULT BRANCH: main
Ran 02 Jun 2026 01:30PM UTC
Jobs 1
Files 20
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

02 Jun 2026 01:29PM UTC coverage: 88.171% (+0.08%) from 88.088%
b662d127d3028b5426c88d4c9cc7fe430491a10b

push

github

web-flow
Merge commit from fork

A malicious or compromised HTTP/2 server could exhaust client memory by
sending a HEADERS frame without END_HEADERS followed by an unbounded chain
of CONTINUATION frames. Each fragment was appended to
`conn.headers_being_processed` with no cap on size or count, and the block is
only decoded once END_HEADERS arrives — which a hostile server simply never
sends. A single connection could drive the client to OOM (~1 GiB from ~64k
16 KiB frames in the reported PoC).

The client now bounds the accumulated header block by the locally advertised
SETTINGS_MAX_HEADER_LIST_SIZE, which defaults to 256 KB (previously
:infinity, i.e. unbounded). The limit is checked against the compressed
accumulator as each fragment is parked, before it grows, and the connection
is torn down with a PROTOCOL_ERROR GOAWAY once exceeded. The default is also
advertised to the server so well-behaved peers never send oversized blocks;
the receive-side check backstops misbehaving ones. Because the compressed
accumulator is never larger than the header list it decodes to, the limit
never rejects a header block that fits within the advertised size.

The bound is tracked with a running byte count carried in
`headers_being_processed`, so enforcement is O(1) per frame rather than
rescanning the accumulator (which would be O(n^2) under a flood).

15 of 16 new or added lines in 1 file covered. (93.75%)

1379 of 1564 relevant lines covered (88.17%)

249.63 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
94.25
0.1% lib/mint/http2.ex
Jobs
ID Job ID Ran Files Coverage
1 b662d127d3028b5426c88d4c9cc7fe430491a10b.1 02 Jun 2026 01:30PM UTC 20
88.17
GitHub Action Run
Source Files on build b662d127d3028b5426c88d4c9cc7fe430491a10b
  • Tree
  • List 20
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • b662d127 on github
  • Prev Build on main (#FAD09145...)
  • Next Build on main (#70B97B6A...)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc