<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Vulnerability Spoiler Alert - openclaw/openclaw</title>
    <link>https://spaceraccoon.github.io/vulnerability-spoiler-alert</link>
    <description>Vulnerability alerts for openclaw/openclaw</description>
    <language>en-us</language>
    <lastBuildDate>Tue, 11 Aug 2026 21:01:38 GMT</lastBuildDate>
    <atom:link href="https://spaceraccoon.github.io/vulnerability-spoiler-alert/feed/openclaw-openclaw.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>[MEDIUM] Denial of Service (Uncontrolled Recursion / Resource Exhaustion) in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/408</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/408</guid>
      <pubDate>Tue, 11 Aug 2026 18:04:21 GMT</pubDate>
      <description>Both the chrome-mcp accessibility snapshot builder and the CDP renderRoleTree function recursively walked the accessibility tree without an enforced depth limit. A malicious or pathologically-nested web page (e.g., tens of thousands of nested DOM elements) could cause the recursive traversal to overflow the call stack (RangeError: Maximum call stack size exceeded), crashing the browser automation/gateway process, or generate quadratically growing indentation output (hundreds of MB) before any truncation logic runs, exhausting memory.</description>
      <category>medium</category>
      <category>unverified</category>
      
    </item>
    <item>
      <title>[HIGH] Missing Authorization / Broken Access Control in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/395</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/395</guid>
      <pubDate>Mon, 10 Aug 2026 10:06:33 GMT</pubDate>
      <description>The Matrix plugin&apos;s &apos;permissions&apos; action (used for verification-management operations like verification-bootstrap, which can reset cross-signing keys and set recovery keys) was gated only by an &apos;encryption&apos; and &apos;verification&apos; config flag, without checking whether the sender was actually the bot owner. Any Matrix user able to send messages/commands to the bot could invoke sensitive verification actions such as forcing a cross-signing reset or listing verification state, potentially compromising encryption trust or account security. The patch adds an explicit senderIsOwner check both when advertising the action in tool discovery and when dispatching it, throwing a ToolAuthorizationError for non-owners.</description>
      <category>high</category>
      <category>verified</category>
      
    </item>
    <item>
      <title>[MEDIUM] Information Disclosure / Sensitive Data Exposure (Incomplete Secret Redaction) in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/392</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/392</guid>
      <pubDate>Mon, 10 Aug 2026 05:51:53 GMT</pubDate>
      <description>The memory-host SDK maintained its own stale SECRET_PATTERNS table for redacting sensitive data in error messages, which lacked coverage for payment card numbers, CVV codes, and other payment credentials that the canonical redactor (src/logging/redact.ts) covers. Additionally, ACP&apos;s error redaction depended on module load order via a fragile injection hook, and when operator-configured redactPatterns were non-empty they fully replaced (rather than extended) built-in provider-token patterns, causing default secret patterns to go unredacted. This meant sensitive data such as credit card numbers or provider tokens could leak unredacted into error logs/output at these security boundaries.</description>
      <category>medium</category>
      <category>verified</category>
      
    </item>
    <item>
      <title>[HIGH] Authorization Bypass / Access Control Bypass in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/393</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/393</guid>
      <pubDate>Mon, 10 Aug 2026 05:52:35 GMT</pubDate>
      <description>The MS Teams group message admission logic only fell back to the allowlist re-check when the sender access denial reason was exactly &apos;group_policy_not_allowlisted&apos;. If the sender access group was missing or referenced an unsupported/unrecognized group type (e.g., a Discord-typed access group), the denial reason code would differ, causing the code to skip the deny path entirely and treat the message as admitted, allowing unauthorized senders&apos; messages to be processed and persisted. The fix makes any &apos;!senderAccess.allowed&apos; result authoritative, ensuring fail-closed behavior regardless of the specific reason code.</description>
      <category>high</category>
      <category>verified</category>
      
    </item>
    <item>
      <title>[MEDIUM] Sensitive Data Exposure / Information Disclosure in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/391</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/391</guid>
      <pubDate>Sun, 09 Aug 2026 17:01:50 GMT</pubDate>
      <description>The chat display projection only sanitized audio blocks with `entry.source.type === &apos;base64&apos;` and string `source.data`, failing to strip top-level `data` fields, non-string `source.data`, or filesystem/local path references (e.g. `file://`, `~/`, `C:\\`, UNC paths) embedded in audio block fields like `path`, `file`, `url`, `openUrl`. Authenticated WebSocket and HTTP/SSE history clients could therefore retrieve raw audio bytes or host-local filesystem paths that were persisted in transcript blocks, leaking sensitive local file locations or raw audio payloads that should have been redacted at the shared history boundary.</description>
      <category>medium</category>
      <category>verified</category>
      
    </item>
    <item>
      <title>[MEDIUM] Denial of Service (Resource Exhaustion / Unbounded Wait) in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/390</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/390</guid>
      <pubDate>Sat, 08 Aug 2026 23:42:00 GMT</pubDate>
      <description>The debug proxy capture cloned every response body and read it with no bound on inter-chunk wait time. A malicious or stalled remote server could send response headers plus a single chunk and then go silent indefinitely, leaving the clone() tee branch open forever; since a tee branch only settles when both branches cancel or reach EOF, this caused the caller&apos;s own cancellation and the subsequent transport release to hang, tying up connection/transport resources. The patch bounds the read with an idle timeout, cancelling the stalled branch and recording the exchange as &apos;stalled&apos; metadata instead of blocking indefinitely.</description>
      <category>medium</category>
      <category>verified</category>
      
    </item>
    <item>
      <title>[MEDIUM] Denial of Service (Uncontrolled Recursion / Stack Overflow) in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/389</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/389</guid>
      <pubDate>Sat, 08 Aug 2026 19:59:08 GMT</pubDate>
      <description>normalizeActRequest recursively processed nested &apos;batch&apos; actions without any depth limit, allowing a specially crafted POST /act request body (up to the 1MB limit) with tens of thousands of nested batch wrappers to cause unbounded recursion and crash the process with a RangeError (stack overflow) before validation checks could run. The patch introduces a depth parameter bound by ACT_MAX_BATCH_DEPTH, rejecting deeply nested payloads early with a clear error instead of overflowing the call stack.</description>
      <category>medium</category>
      <category>verified</category>
      
    </item>
    <item>
      <title>[LOW] Uncaught Exception / Denial of Service (Improper Input Validation) in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/388</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/388</guid>
      <pubDate>Sat, 08 Aug 2026 19:40:48 GMT</pubDate>
      <description>The decodeMatrixEnvAccountToken function used Number.isFinite to validate hex-decoded code points before passing them to String.fromCodePoint, but Number.isFinite does not bound values to the valid Unicode range (0x0-0x10FFFF). A crafted environment variable name with a hex escape exceeding 0x10FFFF causes String.fromCodePoint to throw an uncaught RangeError, crashing listMatrixEnvAccountIds and preventing discovery of all Matrix accounts during startup/doctor checks. The patch adds an explicit upper-bound check (codePoint &amp;gt; 0x10ffff) to reject such tokens gracefully.</description>
      <category>low</category>
      <category>verified</category>
      
    </item>
    <item>
      <title>[HIGH] Sensitive Information Exposure (Credential Leak in Error Messages/Logs) in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/387</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/387</guid>
      <pubDate>Sat, 08 Aug 2026 04:44:06 GMT</pubDate>
      <description>The voice-call provider clients (Twilio/Telnyx/Plivo) built error messages by directly embedding the raw provider HTTP error response body, which can echo back credential-bearing request details such as the Authorization header value, API keys, or account tokens. These unredacted error messages were thrown and could propagate into application logs or user-facing diagnostics, exposing secrets to anyone with access to logs or error output. The patch adds `redactSensitiveText` to strip credential-like content from the error snippet before it is used in thrown errors.</description>
      <category>high</category>
      <category>verified</category>
      
    </item>
    <item>
      <title>[HIGH] Authorization Bypass / Access Control in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/382</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/382</guid>
      <pubDate>Fri, 07 Aug 2026 11:28:24 GMT</pubDate>
      <description>The sub-agent hard-deny list (blocking tools like sessions_send, message, conversations_*, gateway) could be overridden by configuring those tool names in an operator&apos;s allow/alsoAllow config, allowing a sub-agent session to regain direct message-sending and session-control capabilities that are supposed to be permanently restricted to enforce the announce-chain communication contract. Additionally, the message tool was only disabled at spawn time for hidden launches, so resumed or dashboard-visible sub-agent sessions could rebuild their tool set without that restriction and message users directly, bypassing the intended isolation boundary.</description>
      <category>high</category>
      <category>verified</category>
      
    </item>
    <item>
      <title>[MEDIUM] Sensitive Information Exposure (Credential Leak in Logs/Diagnostics) in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/383</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/383</guid>
      <pubDate>Fri, 07 Aug 2026 11:28:40 GMT</pubDate>
      <description>Gateway connection URLs can embed basic-auth credentials or token/API-key query parameters. Before this patch, several diagnostic surfaces (`openclaw status`, `status --all` text/JSON, and `logs` CLI error output) printed the raw connection URL verbatim, including embedded secrets, and probe failure text/thrown errors could also echo credential-bearing URLs. This exposes live credentials to terminal output, log files, or bug reports pasted by operators.</description>
      <category>medium</category>
      <category>verified</category>
      
    </item>
    <item>
      <title>[MEDIUM] Sensitive Information Exposure (Credential Leak) in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/380</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/380</guid>
      <pubDate>Fri, 07 Aug 2026 00:31:25 GMT</pubDate>
      <description>The Google Chat API client read error response bodies from remote/proxy servers and included the raw text verbatim in surfaced error messages without redaction. If a malicious or misconfigured upstream/proxy server reflected the request&apos;s Authorization header (bearer token) back in the error response body, that token would be exposed in error messages returned to users, logs, or downstream consumers. The fix applies forced redaction (redactToolPayloadText) to the error response text before it is used in any error message.</description>
      <category>medium</category>
      <category>verified</category>
      
    </item>
    <item>
      <title>[MEDIUM] Authorization Bypass / Improper Access Control in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/376</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/376</guid>
      <pubDate>Thu, 06 Aug 2026 09:48:15 GMT</pubDate>
      <description>The plugin-node capability authorizer only checked whether a capability token existed and was unexpired, without checking if the owning client had already been invalidated (e.g., removed by an operator). This allowed a removed node&apos;s already-issued capability URL to continue authorizing Canvas HTTP requests during the window between invalidation and full connection teardown, since the invalidated client remained in the clients set and its capability entry was still matched.</description>
      <category>medium</category>
      <category>verified</category>
      
    </item>
    <item>
      <title>[MEDIUM] Broken Access Control / Authorization Bypass (Cross-Context Restriction Bypass) in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/377</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/377</guid>
      <pubDate>Thu, 06 Aug 2026 09:49:00 GMT</pubDate>
      <description>Feishu&apos;s message-action contract did not declare its native camel-case/snake-case chat identifier fields (chatId, chat_id, channel_id) as delivery targets for the edit, pin, and unpin actions. Because the shared cross-context policy engine only inspects declared delivery-target aliases, operators using these native Feishu fields could bypass the configured &apos;disable within-provider cross-context messaging&apos; restriction and perform message mutations against a chat/conversation different from the current context.</description>
      <category>medium</category>
      <category>verified</category>
      
    </item>
    <item>
      <title>[MEDIUM] Sensitive Information Exposure (Credential Leak) in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/374</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/374</guid>
      <pubDate>Thu, 06 Aug 2026 04:27:38 GMT</pubDate>
      <description>When a proxy or upstream server reflected the Discord bot&apos;s Authorization header value back in an error response (either HTML/text or JSON body), the raw bot token would be included unredacted in the error message surfaced to users/logs. This could expose the bot credential to anyone who could view logs, error output, or troubleshooting UI. The patch adds redaction of the token via redactToolPayloadText before formatting the final error text and before summarizing HTML bodies.</description>
      <category>medium</category>
      <category>verified</category>
      
    </item>
    <item>
      <title>[HIGH] Denial of Service (Uncaught Exception) in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/369</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/369</guid>
      <pubDate>Wed, 05 Aug 2026 04:28:35 GMT</pubDate>
      <description>The stdout data handler for MCP stdio child processes called ReadBuffer.append synchronously without a try/catch. When a server (or attacker-influenced tool-result payload) produces a stdout frame exceeding the 10MiB ReadBuffer cap, append() throws synchronously inside the event callback, resulting in an unhandled exception that crashes the entire host process and terminates all concurrent sessions. The patch wraps the append/processReadBuffer calls in a try/catch that routes errors to onerror and gracefully closes the transport instead of crashing.</description>
      <category>high</category>
      <category>verified</category>
      
    </item>
    <item>
      <title>[HIGH] Information Disclosure / Access Control Bypass in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/360</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/360</guid>
      <pubDate>Tue, 04 Aug 2026 15:06:14 GMT</pubDate>
      <description>Shared group and channel chat sessions automatically loaded the workspace-root MEMORY.md file into the bootstrap context, exposing private long-term memory/context intended only for the main private session to all participants in a shared group or channel. Additionally, hooks could re-add or relabel the MEMORY.md file after initial filtering, bypassing session-type-based restrictions on private memory exposure. The patch enforces filtering of private memory files based on an authoritative chatType, re-applies the filter after hook mutations, and tracks file source identity to prevent relabeling/aliasing bypasses.</description>
      <category>high</category>
      <category>verified</category>
      
    </item>
    <item>
      <title>[MEDIUM] Uncontrolled Resource Consumption (Memory Exhaustion / DoS) in openclaw/openclaw</title>
      <link>https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/361</link>
      <guid isPermaLink="true">https://github.com/spaceraccoon/vulnerability-spoiler-alert/issues/361</guid>
      <pubDate>Tue, 04 Aug 2026 15:07:45 GMT</pubDate>
      <description>The DiscordRealtimeVoiceSession queued completed &apos;exact speech&apos; messages without any bound on count or size while provider readiness, an active response, or playback prevented delivery. A stalled or misbehaving session could accumulate an unbounded backlog of speech text in memory, leading to unbounded memory growth and eventual resource exhaustion, and could later flush a large stale backlog. The patch introduces a fixed budget (32 messages / 32 KiB) and terminates the session on overflow, clearing state to prevent unbounded growth.</description>
      <category>medium</category>
      <category>verified</category>
      
    </item>
  </channel>
</rss>