Skip to content

Stored XSS in directory listings via file names

Moderate
joseluisq published GHSA-rwfq-v4hq-h7fg Apr 30, 2024

Package

cargo static-web-server (Rust)

Affected versions

<= 2.28.0

Patched versions

>= 2.30.0

Description

Summary

If directory listings are enabled for a directory that an untrusted user has upload privileges for, a malicious file name like <img src=x onerror=alert(1)>.txt will allow JavaScript code execution in the context of the web server’s domain.

Details

SWS generally does not perform escaping of HTML entities on any values inserted in the directory listing. At the very least file_name and current_path could contain malicious data however. file_uri could also be malicious but the relevant scenarios seem to be all caught by hyper.

PoC

  1. Run SWS with directory listings enabled.
  2. Run touch '/path/to/root/<img src=x onerror=alert(1)>.txt' from the command line where /path/to/root is the path of the SWS root directory.
  3. Open http://localhost/ (SWS directory listing) in your browser.

An alert message will appear on the page – malicious file name executed JavaScript code.

Impact

For any web server that allow users to upload files or create directories under a name of their choosing this becomes a stored XSS vulnerability.

Severity

Moderate

CVE ID

CVE-2024-32966

Weaknesses

Credits