GHSA-8v2v-wjwg-vx6r: Actix files Actix-files Has A Possible Exposure Vulnerability
MODERATEGHSA-8v2v-wjwg-vx6r is a MODERATE actix-files has a possible exposure vulnerability (CWE-200: Exposure of Sensitive Information to an Unauthorized Actor) affecting Actix files libraries in the crates.io ecosystem. The issue involves actix-files has a possible exposure of information vulnerability. Remediation is available by upgrading affected packages to version 0.6.10.
GHSA-8v2v-wjwg-vx6r at a Glance
How to Fix GHSA-8v2v-wjwg-vx6r
To remediate this vulnerability, upgrade all affected Actix files dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade actix-files to 0.6.10
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for actix-files
How to Check if You Are Affected
To determine whether your application is affected by GHSA-8v2v-wjwg-vx6r, inspect your project dependencies for Actix files:
inspect dependencies for actix-files
Analyze the terminal output to locate any version of Actix files in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 0.6.10), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-200: Exposure of Sensitive Information to an Unauthorized Actor, where the product exposes sensitive information to an actor that is not explicitly authorized to have access to that information. In Actix files, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
GHSA-8v2v-wjwg-vx6r Affected Actix files Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
actix-files
|
crates.io |
< 0.6.10
|
0.6.10
|
References
Frequently Asked Questions
What is GHSA-8v2v-wjwg-vx6r?
Which Actix files versions are affected?
What version fixes GHSA-8v2v-wjwg-vx6r?
Is actix-files affected?
What CWE is associated with GHSA-8v2v-wjwg-vx6r?
How can I check crates.io dependencies for GHSA-8v2v-wjwg-vx6r?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-8v2v-wjwg-vx6r",
"modified" : "2026-02-06T18:56:20Z",
"published" : "2026-02-06T18:56:20Z",
"aliases" : [ ],
"summary" : "actix-files has a possible exposure of information vulnerability",
"details" : "### Summary\n\nWhen passing a non-existing folder to the `actix_files::Files::new()` method causes the actix server to expose unexpected files.\n\n### Details\n\nThe `actix-files` library exposes a [`Files` struct](https://github.com/actix/actix-web/blob/fba766b4beb92278665d58815c94d336015225c5/actix-files/src/files.rs#L38) that configures an actix `service` to serve the files in a folder as static assets. Below you can find the [signature of the `Files::new` method](https://github.com/actix/actix-web/blob/fba766b4beb92278665d58815c94d336015225c5/actix-files/src/files.rs#L98):\n\n```rust\npub fn new<T: Into<PathBuf>>(mount_path: &str, serve_from: T) -> Files\n```\n\nWhen the `mount_path` you pass to `Files` doesn't exist, [it defaults to an empty path](https://github.com/actix/actix-web/blob/fba766b4beb92278665d58815c94d336015225c5/actix-files/src/files.rs#L104) (`Path::new()`). When the service receives a HTTP request, it [joins the request information with the empty path](https://github.com/actix/actix-web/blob/fba766b4beb92278665d58815c94d336015225c5/actix-files/src/service.rs#L136) and calls `canonicalize`. Rust resolves this path as relative and returns any file that matches it.\n\nThis behavior causes the library to expose unexpected files when the folder is not present.\n\n### PoC\n\n_There is a working PoC on https://github.com/Angelmmiguel/actix-files-vuln, although the next steps can be followed to reproduce the issue_\n\n1. Clone the https://github.com/actix/examples repository.\n2. Change your directory to the `basics/static-files` folder.\n3. Edit the `src/main.rs` file and change the line 13 to mount a non-existing folder:\n\n ```diff\n - .service(Files::new(\"/images\", \"static/images/\").show_files_listing())\n + .service(Files::new(\"/images\", \"static/missing/\").show_files_listing())\n ```\n \n4. Run the project with `cargo run`.\n5. Access the <http://localhost:8080/images/Cargo.toml> URL.\n\n### Impact\n\nThis is an exposure of information vulnerability. It affects anyone using the `actix-files::Files` library that mounts a non-existing folder for any reason.",
"severity" : [ {
"type" : "CVSS_V4",
"score" : "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "crates.io",
"name" : "actix-files"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "0.6.10"
} ]
} ],
"database_specific" : {
"last_known_affected_version_range" : "<= 0.6.9"
}
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/actix/actix-web/security/advisories/GHSA-8v2v-wjwg-vx6r"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/actix/actix-web"
}, {
"type" : "WEB",
"url" : "https://github.com/actix/actix-web/blob/fba766b4beb92278665d58815c94d336015225c5/actix-files/src/files.rs#L104"
}, {
"type" : "WEB",
"url" : "https://github.com/actix/actix-web/blob/fba766b4beb92278665d58815c94d336015225c5/actix-files/src/files.rs#L38"
}, {
"type" : "WEB",
"url" : "https://github.com/actix/actix-web/blob/fba766b4beb92278665d58815c94d336015225c5/actix-files/src/files.rs#L98"
}, {
"type" : "WEB",
"url" : "https://github.com/actix/actix-web/blob/fba766b4beb92278665d58815c94d336015225c5/actix-files/src/service.rs#L136"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-200" ],
"severity" : "MODERATE",
"github_reviewed" : true,
"github_reviewed_at" : "2026-02-06T18:56:20Z",
"nvd_published_at" : null
}
}