<?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://vulnerability.circl.lu</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>Mon, 05 Oct 2026 02:48:31 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2025-68705</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2025-68705</link>
      <description>&lt;p&gt;RustFS is a distributed object storage system built in Rust. In versions 1.0.0-alpha.13 to 1.0.0-alpha.78, RustFS contains a path traversal vulnerability in the /rustfs/rpc/read_file_stream endpoint. This issue has been patched in version 1.0.0-alpha.79.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;RustFS is a distributed object storage system built in Rust. In versions 1.0.0-alpha.13 to 1.0.0-alpha.78, RustFS contains a path traversal vulnerability in the /rustfs/rpc/read_file_stream endpoint. This issue has been patched in version 1.0.0-alpha.79.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2025-68705</guid>
    </item>
    <item>
      <title>GHSA-pq29-69jg-9mxc — RustFS Path Traversal Vulnerability</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-pq29-69jg-9mxc</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; crates.io: rustfs&lt;/p&gt;
&lt;p&gt;# RustFS Path Traversal Vulnerability&lt;/p&gt;
&lt;p&gt;## Vulnerability Details&lt;/p&gt;
&lt;p&gt;- **CVE ID**: 
- **Severity**: Critical (CVSS estimated 9.9)
- **Impact**: Arbitrary File Read/Write
- **Component**: `/rustfs/rpc/read_file_stream` endpoint
- **Root Cause**: Insufficient path validation in `crates/ecstore/src/disk/local.rs:1791`&lt;/p&gt;
&lt;p&gt;### Vulnerable Code&lt;/p&gt;
&lt;p&gt;```rust
// local.rs:1791 - No path sanitization!
let file_path = volume_dir.join(Path::new(&amp;amp;path)); // DANGEROUS!
check_path_length(file_path.to_string_lossy().to_string().as_str())?; // Only checks length
let mut f = self.open_file(file_path, O_RDONLY, volume_dir).await?;
```&lt;/p&gt;
&lt;p&gt;The code uses `PathBuf::join()` without:
- Canonicalization
- Path boundary validation
- Protection against `../` sequences
- Protection against absolute paths&lt;/p&gt;
&lt;p&gt;## Proof of Concept&lt;/p&gt;
&lt;p&gt;### Test Environment&lt;/p&gt;
&lt;p&gt;- **Target**: RustFS v0.0.5 (Docker container)
- **Endpoint**: `http://localhost:9000/rustfs/rpc/read_file_stream`
- **RPC Secret**: `rustfsadmin` (from RUSTFS_SECRET_KEY)
- **Disk ID**: `/data/rustfs0`
- **Volume**: `.rustfs.sys`&lt;/p&gt;
&lt;p&gt;### Attack Scenario&lt;/p&gt;
&lt;p&gt;#### Exploit Parameters&lt;/p&gt;
&lt;p&gt;```
disk: /data/rustfs0
volume: .rustfs.sys
path: ../../../../etc/passwd  # Path traversal payload
offset: 0
length: 751  # Must match file size
```&lt;/p&gt;
&lt;p&gt;#### Required Authentication&lt;/p&gt;
&lt;p&gt;RPC requests require HMAC-SHA256 signature:&lt;/p&gt;
&lt;p&gt;```python
# Signature format: HMAC-SHA256(secret, &amp;#34;{url}|{method}|{timestamp}&amp;#34;)
Headers:
  x-rustfs-signature: Base64(HMAC-SHA256(secret, data))
  x-rustfs-timestamp: Unix timest…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; crates.io: rustfs&lt;/p&gt;
&lt;p&gt;# RustFS Path Traversal Vulnerability&lt;/p&gt;
&lt;p&gt;## Vulnerability Details&lt;/p&gt;
&lt;p&gt;- **CVE ID**: 
- **Severity**: Critical (CVSS estimated 9.9)
- **Impact**: Arbitrary File Read/Write
- **Component**: `/rustfs/rpc/read_file_stream` endpoint
- **Root Cause**: Insufficient path validation in `crates/ecstore/src/disk/local.rs:1791`&lt;/p&gt;
&lt;p&gt;### Vulnerable Code&lt;/p&gt;
&lt;p&gt;```rust
// local.rs:1791 - No path sanitization!
let file_path = volume_dir.join(Path::new(&amp;amp;path)); // DANGEROUS!
check_path_length(file_path.to_string_lossy().to_string().as_str())?; // Only checks length
let mut f = self.open_file(file_path, O_RDONLY, volume_dir).await?;
```&lt;/p&gt;
&lt;p&gt;The code uses `PathBuf::join()` without:
- Canonicalization
- Path boundary validation
- Protection against `../` sequences
- Protection against absolute paths&lt;/p&gt;
&lt;p&gt;## Proof of Concept&lt;/p&gt;
&lt;p&gt;### Test Environment&lt;/p&gt;
&lt;p&gt;- **Target**: RustFS v0.0.5 (Docker container)
- **Endpoint**: `http://localhost:9000/rustfs/rpc/read_file_stream`
- **RPC Secret**: `rustfsadmin` (from RUSTFS_SECRET_KEY)
- **Disk ID**: `/data/rustfs0`
- **Volume**: `.rustfs.sys`&lt;/p&gt;
&lt;p&gt;### Attack Scenario&lt;/p&gt;
&lt;p&gt;#### Exploit Parameters&lt;/p&gt;
&lt;p&gt;```
disk: /data/rustfs0
volume: .rustfs.sys
path: ../../../../etc/passwd  # Path traversal payload
offset: 0
length: 751  # Must match file size
```&lt;/p&gt;
&lt;p&gt;#### Required Authentication&lt;/p&gt;
&lt;p&gt;RPC requests require HMAC-SHA256 signature:&lt;/p&gt;
&lt;p&gt;```python
# Signature format: HMAC-SHA256(secret, &amp;#34;{url}|{method}|{timestamp}&amp;#34;)
Headers:
  x-rustfs-signature: Base64(HMAC-SHA256(secret, data))
  x-rustfs-timestamp: Unix timest…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-pq29-69jg-9mxc</guid>
    </item>
  </channel>
</rss>
