Read the docs
TI-2026-32019 Aliases CVE-2026-43974GHSA-2j82-37xg-f9wp

gun HTTP/1.1 client accepts unsolicited 101 Switching Protocols response allowing server-driven protocol hijack and OOM

Priority MEDIUM 44CWE-841Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
None
Impact type
—
Confidentiality · integrity · availability
None · None · High
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub.

Summary

Unexpected Status Code or Return Value vulnerability in ninenines gun (gun_http module) allows a malicious HTTP server to force the client into raw protocol mode via an unsolicited 101 Switching Protocols response. In gun_http:handle_inform/8, when a 101 Switching Protocols response is received over HTTP/1.1, the function verifies only that the Upgrade header is syntactically valid and that the stream reference is a plain reference(). It does not check whether the client ever sent an Upgrade or Connection: upgrade header on the corresponding request. Because this check is absent, any 101 response (solicited or not) causes gun to dispatch a gun_upgrade message to the caller and transition the entire connection to raw protocol mode. A malicious or compromised HTTP server can send an unsolicited 101 response to any HTTP/1.1 request, causing the gun client to abandon HTTP framing for that connection. Once in raw mode, gun_raw applies no flow control (flow=infinity) and re-arms socket active mode after every received packet, so the server can flood the client with arbitrary bytes. These are forwarded as unbounded gun_data messages to the owner process, exhausting its mailbox and BEAM memory, ultimately crashing the VM. This issue affects gun: from 2.0.0 before 2.4.0.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00482 41st percentileScored 2026-11-07
Fix Fixed gun (ninenines): 2.4.0gun (Hex): 2.4.0

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
nineninesgun2.0.0 to before 2.4.02.4.0Patch availableCNA
—gun (Hex)2.0.0 to before 2.4.02.4.0Patch availableGHSA-2j82-37xg-f9wp
  • gun Vendorninenines Affected 2.0.0 to before 2.4.0 Fixed in 2.4.0 Patch available CNA
  • gun (Hex) Vendor— Affected 2.0.0 to before 2.4.0 Fixed in 2.4.0 Patch available GHSA-2j82-37xg-f9wp

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:ninenines:gun:*:*:*:*:*:*:*:*2.0.0 to before 2.4.0Vulnerableninenines
  • cpe:2.3:a:ninenines:gun:*:*:*:*:*:*:*:* Versions 2.0.0 to before 2.4.0 Vulnerable ·ninenines

Remediation

  • Fix · CNA gun (ninenines) Fixed in 2.4.0
  • Fix · GHSA-2j82-37xg-f9wp gun (Hex) Fixed in 2.4.0 Advisory →

Fixed in the same release

Records fixed by the same vendor advisory or release, as the CNA lists them.

  • Release ·

    ninenines gun 2.4.0

    3 records Highest priority Priority MEDIUM 2 MEDIUM, 1 LOW

    Other records, highest priority first

    • TI-2026-32018 gun HTTP/1.1 response buffer has no size limit allowing server-controlled memory exhaustionPriority MEDIUM 44
    • TI-2026-32017 gun HTTP/2 PUSH_PROMISE authority not validated against connection origin allows cross-origin cookie injectionPriority LOW 27

Vendor assessments

Red Hat

Red Hat's page for this CVE →

Not affected: 1 product
  • Red Hat

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-43974
  2. 2026-10-03 Alias added: GHSA-2j82-37xg-f9wp
  3. 2026-10-21 EPSS moved to the 50th–90th percentile
  4. 2026-10-25 EPSS moved to the below the 50th percentile

References

  • TI-2026-32018 gun HTTP/1.1 response buffer has no size limit allowing server-controlled memory exhaustion CVSS 4.0HIGH 8.7
  • TI-2026-32017 gun HTTP/2 PUSH_PROMISE authority not validated against connection origin allows cross-origin cookie injection CVSS 4.0MEDIUM 6.3

Sources