Skip to main content

actix-files CVE-2026-72813

| EUVDEUVD-2026-58628 MEDIUM
Uncaught Exception (CWE-248)
2026-08-14 VulnCheck GHSA-v47c-94r2-rjm7
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify actix-files static file endpoint
  2. Delivery
    Send GET request with empty Range header
  3. Exploit
    HttpRange::parse() returns Ok(vec![])
  4. Execution
    Index into empty vector panics at named.rs:534
  5. Persist
    panic = abort terminates process
  6. Impact
    Server unavailable

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Exception handling completeness
Exploitation Conditions

The vulnerability causes significant impact only when the application is compiled with panic = "abort" in its Rust build profile (e.g., [profile.release] panic = "abort" or [profile.dev] panic = "abort" in Cargo.toml) - this is a non-default configuration that developers must explicitly opt into. The attacker must be able to send a GET request to any endpoint that serves static files via actix-files (i.e., the application must expose actix_files::NamedFile or actix_files::Files). No authentication is required (CVSS PR:N). Applications compiled with the default panic = "unwind" are not significantly affected: the panicking worker thread unwinds, the connection closes, and new worker threads are spawned, making the impact limited to the single affected request. Rate limiting does not reliably prevent exploitation since a single unblocked request suffices to crash the process.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms maximum attacker-side ease: no authentication, no complexity, no user interaction, reachable over the network. The provided score uses VA:L (low availability impact to the vulnerable system), which reflects that most Rust applications use the default panic = "unwind" profile. However, the actual impact on applications compiled with panic = "abort" is a complete and immediate process termination from a single request - a real priority for any such deployment. No EPSS data was provided, preventing probabilistic exploitation comparison. The CVE is not listed in CISA KEV at time of analysis. A working PoC is embedded directly in the vendor advisory and requires only netcat, meaning exploitation friction is essentially zero for discoverable endpoints. The rate-limiting note in the advisory is significant: since a single request suffices, conventional rate limiting cannot reliably prevent this - it merely narrows the exploit window. Real-world priority is medium-to-high specifically for services compiled with panic = "abort" and low for standard builds.

Exploit ScenarioDerived

An attacker identifies a web service built with actix-files and compiled with panic = "abort" - detectable via response headers or binary fingerprinting - and sends a single HTTP GET request to any static file endpoint with a bare Range: header containing no value. The server process receives the request, HttpRange::parse() returns an empty vector, the handler panics at named.rs:534, and with panic = "abort" the entire process terminates instantly, taking down all concurrent connections. A working PoC demonstrating this with netcat is publicly available in the GHSA advisory.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 14, 2026

Remote process termination in actix-files 0.6.9 and earlier allows any unauthenticated network attacker to crash a Rust web server by sending a single GET request with an empty Range header, triggering a panic in the static file handler at named.rs:534. The vulnerability is only catastrophic when the application is compiled with panic = "abort" - the non-default Rust build profile - because in that mode the entire process terminates rather than unwinding the panicking thread. A publicly available proof-of-concept exists in the vendor advisory, and no public exploit identification beyond a netcat one-liner is required.

RemediationAI

Upgrade actix-files to version 0.6.10 or later by updating the dependency in Cargo.toml and running cargo update, per the vendor advisory GHSA-gcqf-3g44-vc9p (https://github.com/actix/actix-web/security/advisories/GHSA-gcqf-3g44-vc9p). If an immediate upgrade is blocked and the application is compiled with panic = "abort", switching the affected build profile back to panic = "unwind" (e.g., removing panic = "abort" from [profile.release] in Cargo.toml) eliminates the process-kill risk, though it changes panic behavior globally and may affect performance-critical or safety-sensitive code that depended on abort semantics. As an alternative network-level compensating control, configure a reverse proxy or WAF to reject or strip requests where the Range header is present but empty (e.g., an nginx directive matching Range: with no subsequent byte-range value); this prevents the malformed header from reaching actix-files but requires careful regex to avoid blocking valid Range requests.

Affected VersionsENISA

actix-web 0 <0.6.10

Affected Packages

cargo actix-files fix: 0.6.10
euvd actix_web fix: 0.6.10

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in cargo, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

actix-files is the static file serving component of the actix-web Rust async HTTP framework (CPE: cpe:2.3:a:actix:actix-web:*). The root cause is CWE-248 (Uncaught Exception): at named.rs line 534, the code indexes into the result of HttpRange::parse() without verifying the returned vector is non-empty. When the HTTP Range header is present but empty (i.e., Range: with no value), HttpRange::parse() receives an empty string and returns Ok(vec![]) - a successful parse with zero elements - rather than an error. The subsequent vector index panics. Rust's panic behavior is controlled by the build profile: the default panic = "unwind" causes only the panicking worker thread to unwind, closing that connection while the server continues; panic = "abort" causes the entire OS process to terminate immediately, enabling remote DoS.

Know when Actix Web gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Attack requires no auth, no complexity, and no interaction; A:H reflects confirmed full process termination under the documented panic=abort configuration.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Red Hat 7.5 HIGH

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Aug 14, 2026 - 13:01 EUVD

DescriptionCVE.org

actix-files before 0.6.10 contains a denial of service vulnerability triggered by an empty Range header in GET requests for static files. When panic is set to abort, remote attackers can crash the process on-demand by sending a GET request with an empty Range header.

Threat Intelligence Overview

EPSS Score
0.4%
Top 67% exploitable
Prevalence
Medium
popular Rust async web framework, growing but not ubiquitous adoption
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Server 16.0 Affected
SUSE Linux Enterprise Server 16.1 Not-Affected
SUSE Linux Enterprise Server for SAP applications 16.0 Affected
SUSE Linux Enterprise Server for SAP applications 16.1 Not-Affected
openSUSE Leap 16.0 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy