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-VCX4-4QXG-MFP4
2.3

GHSA-VCX4-4QXG-MFP4: Missing Rate Limiting in OpenClaw Telegram Webhook Authentication

Alon Barad
Alon Barad
Software Engineer

Mar 27, 2026·6 min read·1 visit

No Known Exploit

Executive Summary (TL;DR)

Missing rate limiting in OpenClaw's Telegram webhook handler allows attackers to brute-force the authentication secret and forge bot updates.

The OpenClaw npm package implements a Telegram bot extension that relies on webhooks to receive updates. In affected versions up to 2026.3.24, the application fails to implement rate limiting on the Telegram webhook authentication endpoint. This omission allows an unauthenticated, remote attacker to perform a brute-force attack against the `x-telegram-bot-api-secret-token` HTTP header. If the configured secret is weak or short, the attacker can systematically guess the token, bypass the authentication boundary, and submit forged webhook updates to execute unauthorized commands within the context of the bot application.

Vulnerability Overview

The openclaw npm package implements a Telegram bot extension that relies on webhooks to receive operational updates from the Telegram API. To authenticate these inbound requests, Telegram provides an x-telegram-bot-api-secret-token header, which the receiving application must validate against a pre-configured, shared secret. OpenClaw versions up to 2026.3.24 failed to implement rate limiting or throttling on this validation endpoint.

This omission constitutes an Improper Restriction of Excessive Authentication Attempts (CWE-307) vulnerability. Because the server processed every incoming request without applying a penalty or delay for incorrect secrets, an unauthenticated attacker could continuously submit guesses. If the configured secret possessed low entropy, an attacker could iterate through potential values until the correct token was identified.

Once the secret token is compromised, the attacker bypasses the primary authentication mechanism for the bot's webhook endpoint. This allows the attacker to submit forged update payloads directly to the OpenClaw instance. The bot processes these forged payloads as legitimate Telegram events, enabling the attacker to execute unauthorized commands or manipulate application data depending on the bot's specific implementation.

Root Cause Analysis

The vulnerability originates in the Telegram extension's webhook handling logic located at extensions/telegram/src/webhook.ts. The implementation prioritized timing attack mitigation but neglected frequency control. Specifically, the application utilized a timingSafeEqual function to compare the incoming secret token against the expected value, ensuring that string comparison times did not leak information about the secret's structure.

While the timing attack defense was correctly implemented, the higher-level HTTP request handler lacked any stateful tracking of failed attempts. When a request failed the validation check, the server simply returned an HTTP 401 Unauthorized status code and immediately closed the connection. No mechanism recorded the failure rate associated with the requester's IP address or the target webhook path.

Consequently, the only bottleneck limiting the attacker's guess rate was the network latency and the server's maximum request throughput. In cloud environments or local network setups, this allows thousands of automated guesses per second. The technical root cause is the absence of a localized rate limiter applied specifically to the authentication boundary of the webhook listener.

Code Analysis

Before the patch, the application validated the webhook secret purely via a synchronous string comparison. The vulnerable logic extracted the header, checked its length, and executed timingSafeEqual. If the evaluation returned false, the handler aborted the request sequence, but it applied no rate-limiting logic to the underlying server framework.

The remediation implemented in commit c2c136ae9517ddd0789d742a0fdf4c10e8c729a7 introduces an IP-aware rate limiting architecture. The developers added an applyBasicWebhookRequestGuards function that intercepts the request before any secret validation occurs. This function utilizes a fixed-window rate limiter mapped to a compound key containing both the webhook path and the resolved client IP address.

if (!applyBasicWebhookRequestGuards({
    req,
    res,
    rateLimiter: telegramWebhookRateLimiter,
    rateLimitKey: resolveTelegramWebhookRateLimitKey(req, path, opts.config),
})) {
  return;
}

To prevent attackers from bypassing the IP-based rate limit via HTTP header spoofing, the patch also includes robust IP resolution logic. Functions such as parseIpLiteral and isTrustedProxyAddress validate the X-Forwarded-For chain against a configured list of trusted proxies. This ensures the rate limiter tracks the true origin IP address rather than the address of an intermediate load balancer or content delivery network.

Exploitation

Exploitation requires the attacker to identify the specific URL endpoint where the OpenClaw instance receives Telegram webhooks. This URL is typically exposed to the public internet to allow communication from Telegram's external servers. Once the endpoint is discovered, the attacker initiates a high-volume credential stuffing or brute-force attack against the x-telegram-bot-api-secret-token HTTP header.

The attacker scripts a continuous loop of POST requests, incrementing or mutating the secret token guess with each iteration. Because the vulnerable application returns HTTP 401 for incorrect guesses and HTTP 200 (or processes the payload) for correct ones, the attacker uses the HTTP response code as an execution oracle. The speed of the attack depends entirely on the client's network bandwidth and the target server's processing capacity.

Upon identifying the correct secret, the attacker crafts a JSON payload that conforms to the Telegram Bot API Update specification. By transmitting this forged payload to the webhook endpoint with the correct secret token header, the attacker forces the OpenClaw application to parse and execute the embedded commands. This grants the attacker the ability to interact with the bot infrastructure as an arbitrary Telegram user.

Impact Assessment

The impact of this vulnerability is classified as Low (CVSS v4.0 Score: 2.3), reflecting the specific conditions required for a successful attack. While the vulnerability enables brute-force attacks, the actual probability of success is inversely proportional to the length and complexity of the configured webhook secret. A cryptographically secure secret containing sufficient entropy renders the brute-force attack mathematically unfeasible, despite the lack of rate limiting.

If the secret is weak and successfully guessed, the attacker gains the ability to spoof inputs to the OpenClaw bot. The concrete consequences depend entirely on the bot's implemented functionality. If the bot performs administrative tasks, database modifications, or exposes sensitive information via authorized commands, the attacker leverages the spoofed updates to achieve unauthorized data manipulation or data exposure.

The vulnerability does not directly provide arbitrary host-level code execution or underlying operating system access. It strictly compromises the application-level trust boundary between the Telegram API and the OpenClaw instance. The system's general availability remains unaffected, as the attack does not inherently crash the application or consume unbounded resources beyond the standard load generated by high-frequency HTTP requests.

Remediation

The primary remediation for this vulnerability is upgrading the openclaw package to version 2026.3.25 or later. This release contains the rate-limiting logic required to restrict the frequency of authentication attempts. System administrators must verify the deployed application version via their package manager and apply the update to secure the webhook endpoints.

In conjunction with the software update, administrators must rotate the existing Telegram webhook secret. The new secret should be generated using a cryptographically secure pseudorandom number generator (CSPRNG) and should contain at least 32 characters of high entropy. This mitigates the risk of offline attacks and prevents successful brute-forcing even if a similar implementation flaw emerges in the future.

Administrators running OpenClaw behind a reverse proxy or load balancer must properly configure the gateway.trustedProxies setting. If this configuration is omitted or incorrect, the new rate limiter evaluates the proxy's IP address instead of the attacker's IP address. This misconfiguration leads to a self-inflicted denial-of-service condition where legitimate requests routed through the proxy are inadvertently blocked due to exhausted rate limits.

Official Patches

OpenClawOfficial fix patch commit for OpenClaw rate limiting issue

Fix Analysis (1)

Technical Appendix

CVSS Score
2.3/ 10
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Affected Systems

OpenClaw <= 2026.3.24 (npm ecosystem)

Affected Versions Detail

Product
Affected Versions
Fixed Version
openclaw
OpenClaw
<= 2026.3.242026.3.25
AttributeDetail
Vulnerability ClassImproper Restriction of Excessive Authentication Attempts (CWE-307)
CVSS v4.0 Score2.3 (Low)
Attack VectorNetwork
Attack ComplexityHigh
AuthenticationNone Required
ImpactUnauthorized Command Execution via Spoofed Webhooks
Exploit StatusUnexploited / PoC Not Public

MITRE ATT&CK Mapping

T1110Brute Force
Credential Access
CWE-307
Improper Restriction of Excessive Authentication Attempts

The software does not implement sufficient measures to restrict the number of authentication attempts, allowing attackers to brute-force credentials or tokens.

Vulnerability Timeline

Fix developed and commit c2c136a merged.
2026-03-26
GitHub Advisory GHSA-VCX4-4QXG-MFP4 published.
2026-03-27
Vulnerability information indexed by OSV and Aliyun.
2026-03-27

References & Sources

  • [1]GitHub Advisory GHSA-vcx4-4qxg-mfp4
  • [2]OSV Entry for GHSA-vcx4-4qxg-mfp4
  • [3]OpenClaw Security Advisory
  • [4]Aliyun Vulnerability Database AVD-2026-1863811

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.