CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



GHSA-GW85-XP4Q-5GP9

GHSA-GW85-XP4Q-5GP9: Authorization Bypass in OpenClaw Synology Chat Extension

Alon Barad
Alon Barad
Software Engineer

Mar 4, 2026·4 min read·24 visits

Executive Summary (TL;DR)

OpenClaw's Synology Chat extension fails to enforce access controls when an allowlist is empty, effectively treating a restricted policy as an open one. This allows any user with access to the webhook to dispatch AI agents and execute commands.

A critical authorization bypass vulnerability exists in the Synology Chat extension of the OpenClaw AI assistant infrastructure. The vulnerability arises from a 'fail-open' logic error in the user allowlist enforcement mechanism. When the `dmPolicy` is configured to `allowlist` but the list of allowed user IDs is left empty, the system defaults to permitting all traffic rather than denying it. This flaw allows unauthenticated remote attackers to interact with the AI agent, potentially triggering sensitive tools or workflows intended only for authorized administrators.

Vulnerability Overview

The vulnerability affects OpenClaw, a personal AI assistant platform, specifically within its Synology Chat integration extension. This component exposes a webhook endpoint designed to receive messages from Synology Chat and dispatch them to an AI agent for processing. The security model relies on a configuration parameter, dmPolicy, which dictates whether the bot should respond to all users (open) or a specific subset (allowlist).

The core issue lies in the implementation of the allowlist logic. In secure system design, an empty access control list (ACL) under a restrictive policy should typically result in a 'deny-all' state (fail-closed). However, the OpenClaw implementation contained a logic flaw where an empty allowlist resulted in an 'allow-all' state (fail-open). This behavior directly contradicts the administrator's intent to restrict access, effectively exposing the AI agent to unauthorized interaction from any user capable of reaching the webhook endpoint.

Root Cause Analysis

The root cause is a logic error in the authorization helper function checkUserAllowed located in extensions/synology-chat/src/security.ts. This function is responsible for validating whether an incoming user ID exists within the configured allowedUserIds array.

The vulnerability stems from an explicit short-circuit condition added to handle empty lists. The developer implemented a check if (allowedUserIds.length === 0) return true;, presumably to handle cases where the user intended an open policy or to avoid iteration overhead. However, this check was applied even when the explicit policy mode was set to strict allowlisting. Consequently, when an administrator configured the system to be secure (dmPolicy: "allowlist") but had not yet populated the user list, the check bypasses validation entirely, returning true for every request.

Code Analysis

The vulnerability is clearly visible in the comparison between the flawed implementation and the patched version in extensions/synology-chat/src/security.ts.

Vulnerable Code (Before Patch): The function explicitly defaults to allowing access if the list is empty, undermining the allowlist policy.

export function checkUserAllowed(userId: string, allowedUserIds: string[]): boolean {
  // VULNERABILITY: Explicit fail-open logic
  if (allowedUserIds.length === 0) return true;
  return allowedUserIds.includes(userId);
}

Patched Code (After Fix): The fix removes the short-circuit and updates the logic to strict containment. Additionally, the webhook handler was updated to return a 403 Forbidden status if the configuration is invalid (allowlist mode with empty list).

export function checkUserAllowed(userId: string, allowedUserIds: string[]): boolean {
  // FIX: Remove fail-open check. Now relies strictly on inclusion.
  return allowedUserIds.includes(userId);
}

The patch ensures that if allowedUserIds is empty, includes(userId) will return false, enforcing a 'fail-closed' security posture.

Exploitation Methodology

Exploiting this vulnerability requires no special tools or authentication credentials, only network access to the OpenClaw webhook endpoint and the ability to send messages via Synology Chat.

Prerequisites:

  1. The target OpenClaw instance must have the Synology Chat extension enabled.
  2. The configuration must be set to dmPolicy: "allowlist".
  3. The allowedUserIds array must be empty (e.g., during initial setup or misconfiguration).

Attack Steps: An attacker simply sends a standard message to the bot. The webhook handler receives the payload, extracts the sender's user ID, and passes it to checkUserAllowed. Due to the empty list, the function returns true. The application then proceeds to dispatch the AI agent. The agent processes the attacker's prompt as if it came from a trusted administrator, potentially executing configured tools (e.g., 'summarize this document', 'query the database', or 'restart service').

Impact Assessment

The impact of this vulnerability is critical because it bridges the gap between unauthenticated external users and internal AI capabilities. OpenClaw agents are often configured with 'tools'—functions that allow the AI to interact with filesystems, APIs, or system commands to perform tasks.

Consequences:

  • Unauthorized Action Execution: An attacker can instruct the bot to perform actions it is capable of, such as modifying data or triggering external workflows.
  • Data Leakage: If the agent has access to sensitive context or history, an attacker could prompt it to reveal that information.
  • Resource Exhaustion: An attacker could spam the bot, triggering expensive LLM inference calls or saturating the backend.

Given the CVSS score of 9.8, this is a remote exploitation vector that results in a total loss of confidentiality and integrity regarding the agent's operations.

Fix Analysis (2)

Technical Appendix

CVSS Score
9.8/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Affected Systems

OpenClaw (Synology Chat Extension)

Affected Versions Detail

Product
Affected Versions
Fixed Version
OpenClaw
OpenClaw
< 2026-02-24 (commit 0ee3036)commit 0ee3036
AttributeDetail
CWE IDCWE-863
Vulnerability TypeIncorrect Authorization
CVSS Score9.8 (Critical)
Attack VectorNetwork
Attack ComplexityLow
Privileges RequiredNone

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1078Valid Accounts
Defense Evasion
CWE-863
Incorrect Authorization

The software performs an authorization check when an actor attempts to access a resource or perform an action, but it fails to correctly perform the check. This allows attackers to bypass intended access restrictions.

Vulnerability Timeline

Fix committed to main repository
2026-02-24
Documentation updated with changelog
2026-02-24
GitHub Advisory Published
2026-02-24

References & Sources

  • [1]GitHub Advisory GHSA-GW85-XP4Q-5GP9
  • [2]Fix Commit: Fail Closed Empty Allowlist

More Reports

•42 minutes ago•GHSA-534H-C3CW-V3H9
5.5

GHSA-534h-c3cw-v3h9: Local Information Disclosure via Abstract-Namespace Socket in Nuxt Dev Server

A local security vulnerability in the Nuxt development server (nuxt dev) allows local unprivileged users to access sensitive configuration files and source code. On Linux environments running Node.js 20+, Nuxt bound its internal vite-node IPC server to an abstract-namespace Unix socket without any peer authentication, enabling co-resident local users to connect and request module code directly.

Amit Schendel
Amit Schendel
1 views•5 min read
•about 1 hour ago•GHSA-8RFP-98V4-MMR6
0.0

GHSA-8RFP-98V4-MMR6: Protocol-Filtering Bypass via Unicode Obfuscation in Mozilla Bleach

Mozilla Bleach is an open-source HTML sanitizing library for Python. Versions up to and including 6.3.0 contain an incomplete filtering implementation in the URI validation logic ('sanitize_uri_value'). This logic fails to detect disallowed protocols, such as 'javascript:', if they contain Unicode invisible characters, whitespace characters, or characters with a code point greater than U+00A0. While standard-compliant web browsers do not directly execute invalid URI schemes containing these non-standard characters, downstream systems that normalize Unicode text by stripping invisible or non-ASCII characters can unintentionally reactivate the 'javascript:' prefix, causing Cross-Site Scripting (XSS). Additionally, this behavior violates Bleach's core sanitization contract by outputting URIs that bypass protocol allowlists configured by the caller.

Amit Schendel
Amit Schendel
2 views•7 min read
•about 2 hours ago•GHSA-G75F-G53V-794X
4.3

GHSA-G75F-G53V-794X: CPU Exhaustion via Unbounded Email Regular Expression Scanning in Bleach

An uncontrolled resource consumption vulnerability exists in the Python package Bleach when parsing text to linkify email addresses. When `parse_email=True` is enabled, the regular expression engine is forced into a quadratic-time complexity scan on specially crafted payloads lacking an '@' symbol. This causes immediate CPU exhaustion and blocks application server worker processes.

Amit Schendel
Amit Schendel
2 views•6 min read
•about 2 hours ago•GHSA-GR75-JV2W-4656
4.7

GHSA-GR75-JV2W-4656: Path Traversal and Sandbox Escape in LangChain File-Search Middleware and Loaders

A path traversal and sandbox escape vulnerability in LangChain and LangChain-Anthropic Python packages allows unauthenticated local attackers to access files outside the restricted directory via crafted input, symbolic links, or prefix bypasses.

Alon Barad
Alon Barad
2 views•8 min read
•about 3 hours ago•GHSA-M557-WRGG-6RP4
5.8

GHSA-m557-wrgg-6rp4: Server-Side Request Forgery via Authority Information Access (AIA) Chasing in phpseclib

The PHP Secure Communications Library (phpseclib) contains a Server-Side Request Forgery (SSRF) vulnerability due to an insecure default implementation of Authority Information Access (AIA) certificate chasing. This flaw allows remote, unauthenticated attackers to coerce applications validating user-supplied X.509 certificates into generating arbitrary outbound HTTP requests to internal networks or local interfaces.

Amit Schendel
Amit Schendel
3 views•6 min read
•about 3 hours ago•CVE-2026-45491
6.2

CVE-2026-45491: Directory Traversal via Improper Link Resolution in .NET System.Formats.Tar

A directory traversal vulnerability exists in the Microsoft .NET System.Formats.Tar library during archive extraction. When extracting a TAR archive using the TarFile.ExtractToDirectory API, the extraction engine improperly resolves symbolic links prior to file creation, allowing local unauthorized attackers to write or overwrite arbitrary files outside the target directory. This can lead to local tampering, privilege escalation, or arbitrary code execution.

Amit Schendel
Amit Schendel
7 views•6 min read