CVE-2018-6346

HIGH7.5/ 10.0
Share:
Published: December 31, 2018 at 10:29 PM
Modified: May 6, 2025 at 04:15 PM
Source: cve-assign@fb.com

Vulnerability Description

A potential denial-of-service issue in the Proxygen handling of invalid HTTP2 priority settings (specifically a circular dependency). This affects Proxygen prior to v2018.12.31.00.

CVSS Metrics

Base Score
7.5
Severity
HIGH
Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Weaknesses (CWE)

Source: cve-assign@fb.com
Source: nvd@nist.gov

AI Security Analysis

01 // Technical Summary

Proxygen, a Facebook-developed HTTP proxy, is vulnerable to a denial-of-service (DoS) attack due to improper handling of HTTP/2 priority settings. Attackers can exploit a circular dependency within the priority handling logic to exhaust server resources, leading to a complete service outage.

02 // Vulnerability Mechanism

Step 1: Malicious Request Creation: An attacker crafts a specially crafted HTTP/2 PRIORITY frame. This frame specifies a set of stream dependencies that, when combined, create a circular dependency.

Step 2: Frame Delivery: The attacker sends the malicious PRIORITY frame to a Proxygen instance.

Step 3: Priority Tree Processing: Proxygen receives the frame and attempts to update its internal priority tree based on the attacker's instructions.

Step 4: Circular Dependency Detection Failure: The Proxygen implementation fails to detect the circular dependency introduced by the attacker's frame.

Step 5: Resource Exhaustion: The server enters an infinite loop or consumes excessive resources attempting to resolve the circular dependency. This might involve repeated calculations, memory allocations, or CPU cycles.

Step 6: Denial of Service: The server's resources are exhausted, leading to a denial-of-service condition. Legitimate requests are either dropped or significantly delayed, rendering the service unusable.

03 // Deep Technical Analysis

The vulnerability stems from a flaw in Proxygen's HTTP/2 priority handling. Specifically, the code fails to properly validate and prevent the creation of circular dependencies within the priority tree. When an attacker crafts a malicious HTTP/2 priority frame that establishes a circular dependency (e.g., stream A depends on B, B depends on C, and C depends on A), the server enters an infinite loop or consumes excessive resources attempting to resolve the dependency graph. This can lead to CPU exhaustion, memory allocation failures, and ultimately, a DoS condition. The root cause is a lack of proper input validation and cycle detection within the priority tree management logic.

CVE-2018-6346 - HIGH Severity (7.5) | Free CVE Database | 4nuxd