PHP2Shell: Read our blog on the critical RCE vulnerabilities affecting 70% of the Internet
Vulnerability DatabaseGHSA-cf8x-9m69-3gg3

GHSA-cf8x-9m69-3gg3: 
JavaScript vulnerability analysis and mitigation

Summary

A remote, unauthenticated peer can exhaust memory or stall a Bun process that uses HTTP/3. A small request can decode to a very large set of headers, and Bun 1.4.3 and earlier do not limit the decoded size. This is the "Header Accordions" QPACK amplification attack that FoxIO published on October 20, 2026. The write-up lists Bun as affected. Bun 1.4.4 fixes the bug.

Details

QPACK is the header compression of HTTP/3. A peer can add one large entry to the dynamic table and then refer to that entry many times, with one byte for each reference. Each reference decodes to a full copy of the entry. Bun.serve advertised a limit of 16 KB for a set of request headers, but it did not enforce the limit. It checked only the size of each single header. It also did not limit the number of fields. Affected:

  • Bun.serve with http3: true. HTTP/3 is off by default.
  • The HTTP/3 client of fetch. fetch uses HTTP/3 only when you ask for it, with fetch(url, { protocol: "http3" }) or the --experimental-http3-fetch flag. A malicious server can attack the client in the same way. HTTP/1.1 and HTTP/2 are not affected by this bug. Executables built with bun build --compile embed the Bun runtime. An executable built with an affected version stays affected until it is rebuilt.

Impact

Denial of service. No credentials are necessary. In our tests on Bun 1.4.3:

  • About 6 MB of traffic made a server with a 2 GB memory limit run out of memory and get killed.
  • One request of about 20 KB stalled the server for more than a minute, and other requests were not answered during that time.
  • A request of about 530 KB kept the server at 100% CPU, and it answered no other requests. A handler does not need to read the headers. The work happens before Bun calls the handler.

Patches

Upgrade to Bun 1.4.4, and rebuild any bun build --compile executables with it. Bun 1.4.4 enforces a limit on the decoded size of a set of headers, counted as in RFC 9114 section 4.2.2, and limits the number of fields (#46392). This changes behavior for large headers over HTTP/3:

  • A Bun.serve request over the limit (16 KB by default, set with --max-http-header-size) gets a 431 response.
  • A much larger request closes the connection.
  • fetch over HTTP/3 rejects a response with more than 256 KB of headers.

Workarounds

Do not enable http3 on a server that untrusted clients can reach, and do not use the HTTP/3 client of fetch with untrusted servers. HTTP/1.1 and HTTP/2 are not affected.

References


Source: NVD

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-whwv-ppvg-jwgxHIGH7.4
  • JavaScript logoJavaScript
  • @veritasacta/verify
NoYesOct 23, 2026
GHSA-q96h-922g-m3h3MEDIUM6.5
  • JavaScript logoJavaScript
  • @zereight/mcp-gitlab
NoYesOct 24, 2026
GHSA-83jp-cppw-c3v6MEDIUMN/A
  • JavaScript logoJavaScript
  • llm-fw
NoYesOct 24, 2026
GHSA-j68c-59h4-h9hgMEDIUMN/A
  • JavaScript logoJavaScript
  • @k2b/cloud
NoYesOct 24, 2026
GHSA-cf8x-9m69-3gg3HIGHN/A
  • JavaScript logoJavaScript
  • bun
NoYesOct 24, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management