<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Wed, 14 Oct 2026 21:22:13 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-265207</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-265207</link>
      <description>EUVD-2026-265207</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-265207</guid>
    </item>
    <item>
      <title>fkie_cve-2026-22257</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-22257</link>
      <description>&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-22257</guid>
    </item>
    <item>
      <title>GHSA-54m3-5fxr-2f3j — Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-54m3-5fxr-2f3j</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; crates.io: salvo&lt;/p&gt;
&lt;p&gt;# Summary&lt;/p&gt;
&lt;p&gt;The function `list_html` generates a file view of a folder without sanitizing the files or folders names, potentially leading to XSS in cases where a website allows access to public files using this feature, allowing  anyone to upload a file.&lt;/p&gt;
&lt;p&gt;# Details&lt;/p&gt;
&lt;p&gt;The vulnerable snippet of code is the following:
[**dir.rs**](https://github.com/salvo-rs/salvo/blob/16efeba312a274739606ce76366d921768628654/crates/serve-static/src/dir.rs#L581)&lt;/p&gt;
&lt;p&gt;```rust
// ... fn list_html(...
        let mut link = &amp;#34;&amp;#34;.to_owned();
        format!(
            r#&amp;#34;&amp;lt;a href=&amp;#34;/&amp;#34;&amp;gt;{}&amp;lt;/a&amp;gt;{}&amp;#34;#,
            HOME_ICON,
            segments
                .map(|seg| {
                    link = format!(&amp;#34;{link}/{seg}&amp;#34;);
                    format!(&amp;#34;/&amp;lt;a href=\&amp;#34;{link}\&amp;#34;&amp;gt;{seg}&amp;lt;/a&amp;gt;&amp;#34;)
                })
                .collect::&amp;lt;Vec&amp;lt;_&amp;gt;&amp;gt;()
                .join(&amp;#34;&amp;#34;)
        )
// ...
```&lt;/p&gt;
&lt;p&gt;# PoC&lt;/p&gt;
&lt;p&gt;https://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4&lt;/p&gt;
&lt;p&gt;Here is the example app we used:&lt;/p&gt;
&lt;p&gt;`mian.rs`
```rs
use salvo::prelude::*;
use salvo::serve_static::StaticDir;
use std::path::PathBuf;
use tokio::fs;&lt;/p&gt;
&lt;p&gt;const INDEX_HTML: &amp;amp;str = r#&amp;#34;&amp;lt;!doctype html&amp;gt;
&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;&amp;lt;meta charset=&amp;#34;utf-8&amp;#34;&amp;gt;&amp;lt;title&amp;gt;StaticDir PoC&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;h2&amp;gt;Upload a file&amp;lt;/h2&amp;gt;
    &amp;lt;form action=&amp;#34;/upload&amp;#34; method=&amp;#34;post&amp;#34; enctype=&amp;#34;multipart/form-data&amp;#34;&amp;gt;
      &amp;lt;input type=&amp;#34;file&amp;#34; name=&amp;#34;file&amp;#34; /&amp;gt;
      &amp;lt;button type=&amp;#34;submit&amp;#34;&amp;gt;Upload&amp;lt;/button&amp;gt;
    &amp;lt;/form&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;p&amp;gt;Browse uploads:&amp;lt;/p&amp;gt;
    &amp;lt;ul&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href=&amp;#34;/files&amp;#34;&amp;gt;/files&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; crates.io: salvo&lt;/p&gt;
&lt;p&gt;# Summary&lt;/p&gt;
&lt;p&gt;The function `list_html` generates a file view of a folder without sanitizing the files or folders names, potentially leading to XSS in cases where a website allows access to public files using this feature, allowing  anyone to upload a file.&lt;/p&gt;
&lt;p&gt;# Details&lt;/p&gt;
&lt;p&gt;The vulnerable snippet of code is the following:
[**dir.rs**](https://github.com/salvo-rs/salvo/blob/16efeba312a274739606ce76366d921768628654/crates/serve-static/src/dir.rs#L581)&lt;/p&gt;
&lt;p&gt;```rust
// ... fn list_html(...
        let mut link = &amp;#34;&amp;#34;.to_owned();
        format!(
            r#&amp;#34;&amp;lt;a href=&amp;#34;/&amp;#34;&amp;gt;{}&amp;lt;/a&amp;gt;{}&amp;#34;#,
            HOME_ICON,
            segments
                .map(|seg| {
                    link = format!(&amp;#34;{link}/{seg}&amp;#34;);
                    format!(&amp;#34;/&amp;lt;a href=\&amp;#34;{link}\&amp;#34;&amp;gt;{seg}&amp;lt;/a&amp;gt;&amp;#34;)
                })
                .collect::&amp;lt;Vec&amp;lt;_&amp;gt;&amp;gt;()
                .join(&amp;#34;&amp;#34;)
        )
// ...
```&lt;/p&gt;
&lt;p&gt;# PoC&lt;/p&gt;
&lt;p&gt;https://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4&lt;/p&gt;
&lt;p&gt;Here is the example app we used:&lt;/p&gt;
&lt;p&gt;`mian.rs`
```rs
use salvo::prelude::*;
use salvo::serve_static::StaticDir;
use std::path::PathBuf;
use tokio::fs;&lt;/p&gt;
&lt;p&gt;const INDEX_HTML: &amp;amp;str = r#&amp;#34;&amp;lt;!doctype html&amp;gt;
&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;&amp;lt;meta charset=&amp;#34;utf-8&amp;#34;&amp;gt;&amp;lt;title&amp;gt;StaticDir PoC&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;h2&amp;gt;Upload a file&amp;lt;/h2&amp;gt;
    &amp;lt;form action=&amp;#34;/upload&amp;#34; method=&amp;#34;post&amp;#34; enctype=&amp;#34;multipart/form-data&amp;#34;&amp;gt;
      &amp;lt;input type=&amp;#34;file&amp;#34; name=&amp;#34;file&amp;#34; /&amp;gt;
      &amp;lt;button type=&amp;#34;submit&amp;#34;&amp;gt;Upload&amp;lt;/button&amp;gt;
    &amp;lt;/form&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;p&amp;gt;Browse uploads:&amp;lt;/p&amp;gt;
    &amp;lt;ul&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href=&amp;#34;/files&amp;#34;&amp;gt;/files&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-54m3-5fxr-2f3j</guid>
    </item>
  </channel>
</rss>
