8.7 HIGH
- CVSS version (CVSS): 4.0
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Attack Requirement (AT): None (N)
- Privileges Required (PR): None (N)
- User Interaction (UI): None (N)
- Vulnerable System Impact Confidentiality (VC): None (N)
- Vulnerable System Impact Integrity (VI): None (N)
- Vulnerable System Impact Availability (VA): High (H)
- Subsequent System Impact Confidentiality (SC): None (N)
- Subsequent System Impact Integrity (SI): None (N)
- Subsequent System Impact Availability (SA): None (N)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): Low (L)
- Modified Attack Requirement (MAT): None (N)
- Modified Privileges Required (MPR): None (N)
- Modified User Interaction (MUI): None (N)
- Modified Vulnerable System Impact Confidentiality (MVC): None (N)
- Modified Vulnerable System Impact Integrity (MVI): None (N)
- Modified Vulnerable System Impact Availability (MVA): High (H)
- Modified Subsequent System Impact Confidentiality (MSC): Negligible (N)
- Modified Subsequent System Impact Integrity (MSI): Negligible (N)
- Modified Subsequent System Impact Availability (MSA): Negligible (N)
- Safety (S): Not Defined (X)
- Automatable (AU): Not Defined (X)
- Recovery (R): Not Defined (X)
- Value Density (V): Not Defined (X)
- Vulnerability Response Effort (RE): Not Defined (X)
- Provider Urgency (U): Not Defined (X)
- Confidentiality Req. (CR): Not Defined (X)
- Integrity Req. (IR): Not Defined (X)
- Availability Req. (AR): Not Defined (X)
- Exploit Maturity (E): Not Defined (X)
by @LeSuisse Activity log
- Created suggestion
- @LeSuisse dismissed (not in Nixpkgs)
gun HTTP/1.1 client accepts unsolicited 101 Switching Protocols response allowing server-driven protocol hijack and OOM
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.
References
Affected products
- <2.4.0
- <5b48068c29ce5e112cb149b5857c7d4dc319a81b
Matching in nixpkgs
pkgs.shogun
Toolbox which offers a wide range of efficient and unified machine learning methods
pkgs.gungnir
Command-line tool that continuously monitors certificate transparency (CT) logs for newly issued SSL/TLS certificates
pkgs.nailgun
Client, protocol, and server for running Java programs from the command line without incurring the JVM startup overhead
pkgs.shotgun
Minimal X screenshot utility
pkgs.haskellPackages.hailgun
Mailgun REST api interface for Haskell
pkgs.python313Packages.gunicorn
WSGI HTTP Server for UNIX, fast clients and sleepy applications
pkgs.python314Packages.gunicorn
WSGI HTTP Server for UNIX, fast clients and sleepy applications
pkgs.python313Packages.freezegun
Library that allows your Python tests to travel through time
pkgs.python314Packages.freezegun
Library that allows your Python tests to travel through time
pkgs.terraform-providers.mailgun
None
pkgs.haskellPackages.hailgun-simple
Easy-to-use wrapper for the hailgun package
pkgs.python313Packages.pymailgunner
Library for interacting with Mailgun e-mail service
pkgs.python314Packages.pymailgunner
Library for interacting with Mailgun e-mail service
pkgs.python313Packages.types-freezegun
Typing stubs for freezegun
pkgs.python314Packages.types-freezegun
Typing stubs for freezegun
pkgs.python313Packages.pytest-freezegun
Wrap tests with fixtures in freeze_time
pkgs.python314Packages.pytest-freezegun
Wrap tests with fixtures in freeze_time
pkgs.terraform-providers.wgebis_mailgun
None
Package maintainers
-
@CherryKitten CherryKitten <contact@cherrykitten.dev>
-
@fabaff Fabian Affolter <mail@fabian-affolter.ch>
-
@getchoo Seth Flynn <getchoo@tuta.io>
-
@Mic92 Jörg Thalheim <joerg@thalheim.io>
-
@jpetrucciani Jacobi Petrucciani <j@cobi.dev>
-
@smancill Sebastián Mancilla <smancill@smancill.dev>
-
@edwtjo Edward Tjörnhammar <ed@cflags.cc>
-
@lumi-me-not lumi <lumi@pew.im>