openclaw - 💡(How to fix) Fix MEDIA: protocol file disclosure — silently fixed, report denied (GHSA-4749-wr9h-9qxx) [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#54401Fetched 2026-04-08 01:28:05
View on GitHub
Comments
0
Participants
1
Timeline
0
Reactions
1
Author
Participants
RAW_BUFFERClick to expand / collapse

I reported a file disclosure vulnerability via GitHub Security Advisory (GHSA-4749-wr9h-9qxx). Any group chat member can steal API keys via the MEDIA: protocol — zero authentication, bypasses tools.deny:["*"].

Timeline:

  • Mar 21 — Reported via Security Advisory
  • Mar 22 — Silently fixed (commit 5863ce1 fix(media): narrow default local attachment roots)
  • Mar 23 — Fix shipped in v2026.3.22, report closed as "not a vulnerability"
  • Mar 25 — Fix discovered only after reproduction failed on latest version

The reporter was never notified.

If it warranted a one-day fix by the project founder, it warranted a notification to the reporter.

Details: https://x.com/oldfresher/status/2036726898534015164

extent analysis

Fix Plan

To address the file disclosure vulnerability, the fix involves narrowing the default local attachment roots to prevent unauthorized access.

  • Update the tools configuration to explicitly deny access to sensitive files and directories.
  • Implement authentication for the MEDIA protocol to ensure only authorized users can access attachments.

Example code snippet (in JavaScript):

// Narrow default local attachment roots
const defaultAttachmentRoots = ['/public', '/uploads'];

// Deny access to sensitive files and directories
const denyList = ['*'];

// Implement authentication for MEDIA protocol
function authenticateMediaRequest(req) {
  // Authenticate the request using your authentication mechanism
  // For example, using JSON Web Tokens (JWT)
  const token = req.headers['authorization'];
  if (!token || !verifyToken(token)) {
    return false;
  }
  return true;
}

// Verify authentication before serving media requests
if (!authenticateMediaRequest(req)) {
  res.status(401).send('Unauthorized');
  return;
}

Verification

To verify the fix, test the following scenarios:

  • Attempt to access a sensitive file or directory using the MEDIA protocol without authentication.
  • Verify that the request is denied and returns a 401 Unauthorized response.
  • Test with a valid authentication token and verify that the request is successful.

Extra Tips

  • Regularly review and update your tools configuration to ensure it aligns with your security requirements.
  • Consider implementing additional security measures, such as rate limiting and IP blocking, to prevent abuse.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix MEDIA: protocol file disclosure — silently fixed, report denied (GHSA-4749-wr9h-9qxx) [1 participants]