Description
Salvo is a Rust web backend framework. Prior to version 0.88.1, the function list_html generates a file view of a folder without sanitizing the files or folders names, this may potentially lead to XSS in cases where a website allow the access to public files using this feature and anyone can upload a file. This issue has been patched in version 0.88.1.
Published: 2026-01-08
Score: 8.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Stored Cross‑Site Scripting
Action: Update
AI Analysis

Impact

Salvo is a Rust web backend framework. Prior to version 0.88.1, its list_html function renders a directory listing without sanitizing file or folder names. An attacker who can upload a file with a maliciously crafted name that includes script tags can cause the generated page to execute that script in the browsers of any user who views the listing. The vulnerability is a stored cross‑site scripting flaw that could be exploited to steal session information, deface sites, or perform other malicious actions as the victim user. The description indicates that the issue arises when public files are accessible and the framework does not validate filenames.

Affected Systems

Versions of Salvo earlier than 0.88.1, including 0.88.0 and earlier releases, are affected because the bug resides in the crates/serve-static/src/dir.rs file. The vulnerability was fixed in commit 16efeba... and is addressed in the 0.88.1 release announced by the maintainers. Any deployments that still use the vulnerable code and allow file uploads to the directory listing endpoint remain exposed. The affected product is the Salvo Rust crate, as listed by the CNA.

Risk and Exploitability

The CVSS score of 8.8 signals a high impact. Although the EPSS score is below 1 % and the vulnerability is not currently in CISA’s KEV catalog, the possibility of an attacker being able to upload arbitrary filenames gives the flaw a potentially wide‑scope attack surface. The exploitation path requires the attacker only to supply a file name containing script content; if the target site permits unauthenticated uploads, the risk level rises. Once the malicious name is displayed, the script runs in the context of any user that views the directory listing, compromising confidentiality and integrity of the application and its users.

Generated by OpenCVE AI on April 18, 2026 at 07:33 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to Salvo 0.88.1 or later, which contains the fixed list_html sanitization.
  • If upgrading is not immediately possible, enforce strict validation of uploaded file names to remove or escape characters that can trigger XSS.
  • Restrict access to the folder listing to authenticated users or disable the public directory listing feature entirely.

Generated by OpenCVE AI on April 18, 2026 at 07:33 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-54m3-5fxr-2f3j Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
History

Thu, 05 Mar 2026 17:45:00 +0000

Type Values Removed Values Added
First Time appeared Salvo
Salvo salvo
CPEs cpe:2.3:a:salvo:salvo:*:*:*:*:*:rust:*:*
Vendors & Products Salvo
Salvo salvo

Fri, 09 Jan 2026 13:30:00 +0000

Type Values Removed Values Added
First Time appeared Salvo-rs
Salvo-rs salvo
Vendors & Products Salvo-rs
Salvo-rs salvo

Thu, 08 Jan 2026 19:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 08 Jan 2026 18:30:00 +0000

Type Values Removed Values Added
Description Salvo is a Rust web backend framework. Prior to version 0.88.1, the function list_html generates a file view of a folder without sanitizing the files or folders names, this may potentially lead to XSS in cases where a website allow the access to public files using this feature and anyone can upload a file. This issue has been patched in version 0.88.1.
Title Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
Weaknesses CWE-79
References
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:L'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-01-08T18:38:12.920Z

Reserved: 2026-01-07T05:19:12.922Z

Link: CVE-2026-22257

cve-icon Vulnrichment

Updated: 2026-01-08T18:38:08.608Z

cve-icon NVD

Status : Analyzed

Published: 2026-01-08T19:16:00.277

Modified: 2026-03-05T17:42:52.990

Link: CVE-2026-22257

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-04-18T07:45:24Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')