CVE-2026-43974
CVE-2026-43974 is a high-severity vulnerability with a CVSS 4.0 base score of 8.7. It is not currently listed as actively exploited by CISA, and its EPSS exploit-prediction score is low. The underlying weakness is classified as CWE-841.
Key facts
- Severity: High (CVSS 4.0 base score 8.7)
- EPSS exploit prediction: 0% (30th percentile)
- Actively exploited: Not listed in CISA KEV
- EU (EUVD) id: EUVD-2026-35072
- Weakness: CWE-841
- Published:
- Last modified:
Description
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.
Frequently asked questions
- What is CVE-2026-43974?
- 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.
- How severe is CVE-2026-43974?
- CVE-2026-43974 has a CVSS 4.0 base score of 8.7, rated high severity.
- Is CVE-2026-43974 being actively exploited?
- It is not currently listed in CISA's KEV catalog. Its EPSS exploit-prediction score is 0% (30th percentile), an estimate of the probability of exploitation in the next 30 days.
- How do I fix CVE-2026-43974?
- Review the linked vendor and NVD advisories for patched versions and mitigations, then upgrade or apply the recommended workaround. Given its high severity, prioritise patching exposed systems.
- Does CVE-2026-43974 have an EU (EUVD) identifier?
- Yes. CVE-2026-43974 is tracked in the ENISA EU Vulnerability Database (EUVD) as EUVD-2026-35072.
- When was CVE-2026-43974 published?
- CVE-2026-43974 was published on 2026-06-08 and last updated on 2026-06-17.
References
- https://cna.erlef.org/cves/CVE-2026-43974.html
- https://github.com/ninenines/gun/commit/5b48068c29ce5e112cb149b5857c7d4dc319a81b
- https://osv.dev/vulnerability/EEF-CVE-2026-43974
Other CWE-841 vulnerabilities
- CVE-2026-3130 — Critical (CVSS 9.8): Improper Enforcement of Behavioral Controls in Devolutions Server 2025.3.15 and earlier allows an authenticated…
- CVE-2025-48481 — Critical (CVSS 9.8): FreeScout is a free self-hosted help desk and shared mailbox. Prior to version 1.8.180, an attacker with an unactivated…
- CVE-2022-2105 — Critical (CVSS 9.4): Client-side JavaScript controls may be bypassed to change user credentials and permissions without authentication,…
- CVE-2026-34582 — Critical (CVSS 9.1): Botan is a C++ cryptography library. Prior to version 3.11.1, the TLS 1.3 implementation allowed ApplicationData…
- CVE-2025-48476 — High (CVSS 8.8): FreeScout is a free self-hosted help desk and shared mailbox. Prior to version 1.8.180, when adding and editing user…
- CVE-2025-48477 — High (CVSS 8.1): FreeScout is a free self-hosted help desk and shared mailbox. Prior to version 1.8.180, the application's logic…