GHSA-333v-68xh-8mmq

Suggest an improvement
Source
https://github.com/advisories/GHSA-333v-68xh-8mmq
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/01/GHSA-333v-68xh-8mmq/GHSA-333v-68xh-8mmq.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-333v-68xh-8mmq
Aliases
Published
2026-01-16T15:48:58Z
Modified
2026-02-03T03:17:04Z
Severity
  • 2.9 (Low) CVSS_V4 - 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/E:P CVSS Calculator
Summary
RustFS's RPC signature verification logs shared secret
Details

Summary

Invalid RPC signatures cause the server to log the shared HMAC secret (and expected signature), which exposes the secret to log readers and enables forged RPC calls.

Details

In crates/ecstore/src/rpc/http_auth.rs:115-122 , the invalid signature branch logs sensitive data:

if signature != expected_signature {
    error!(
        "verify_rpc_signature: Invalid signature: secret {}, url {}, method {}, timestamp {}, signature {}, expected_signature {}",
        secret, url, method, timestamp, signature, expected_signature
    );

    return Err(std::io::Error::other("Invalid signature"));
}

This log line includes secret and expected_signature, both derived from the shared HMAC key. Any invalidly signed request triggers this path. The function is reachable from RPC and admin request handlers.

PoC

  1. Run RustFS with error logging enabled.
  2. Send a request with an invalid signature:
     ts=$(date +%s)
     curl -v \
       -H "x-rustfs-timestamp: $ts" \
       -H "x-rustfs-signature: invalid-signature" \
       "http://localhost:9000/rustfs/rpc/read_file_stream?disk=foo&volume=bar&path=baz&offset=0&length=1"
    
  3. Observed output:
     HTTP 403 AccessDenied: Invalid signature
     verify_rpc_signature: Invalid signature: secret rustfsadmin, url /rustfs/rpc/read_file_stream?disk=foo&volume=bar&path=baz&offset=0&length=1, method GET, timestamp 1767852115, signature invalid-signature, expected_signature oisNxNRTb80GXf97s/PGdScJzu8QB9Oxs+uOwf8RiK8=
    

Impact

  • Exposes the shared RPC HMAC secret to log readers.
  • Enables attackers with log access to forge valid RPC signatures and make unauthorized RPC calls.
Database specific
{
    "cwe_ids":  [
        "CWE-532"
    ],
    "github_reviewed":  true,
    "github_reviewed_at":  "2026-01-16T15:48:58Z",
    "nvd_published_at":  "2026-01-16T17:15:54Z",
    "severity":  "LOW"
}
References

Affected packages

crates.io / rustfs

Package

Affected ranges

Type
SEMVER
Events
Introduced
1.0.0-alpha.1
Fixed
1.0.0-alpha.80

Database specific

last_known_affected_version_range
"<= 1.0.0-alpha.79"
source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/01/GHSA-333v-68xh-8mmq/GHSA-333v-68xh-8mmq.json"