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-3H52-CX59-C456

GHSA-3H52-CX59-C456: Denial of Service via Pre-Authentication JSON Parsing in OpenClaw Feishu Extension

Amit Schendel
Amit Schendel
Senior Security Researcher

Mar 29, 2026·5 min read·31 visits

Executive Summary (TL;DR)

OpenClaw's Feishu extension parses unauthenticated JSON payloads before signature verification, enabling remote denial-of-service attacks.

The Feishu webhook extension in OpenClaw eagerly parses unauthenticated JSON payloads prior to verifying cryptographic signatures. This structural flow exposes the application to unauthenticated denial-of-service (DoS) attacks via resource exhaustion and introduces cryptographic fragility during signature reconstruction.

Vulnerability Overview

The @openclaw/extension-feishu module within the OpenClaw personal AI assistant exposes a webhook endpoint designed to receive event notifications from the Feishu (Lark) platform. This endpoint processes incoming HTTP requests, extracts payload data, and triggers corresponding actions within the assistant.

A structural vulnerability exists in how the extension processes unauthenticated HTTP requests prior to verifying their cryptographic signatures. The application reads and parses the request body as a JSON object before validating the x-lark-signature header provided by the Feishu platform.

This implementation pattern introduces an unauthenticated attack surface. By processing complex or excessively large JSON payloads before establishing trust, the application exposes the Node.js event loop to resource exhaustion. The vulnerability is classified as Uncontrolled Resource Consumption (CWE-400) and Insufficient Verification of Data Authenticity (CWE-345).

Root Cause Analysis

The root cause stems from an improper sequence of operations within the monitorWebhook function for the Feishu extension. The vulnerable implementation utilized a helper function named readJsonBodyWithLimit. This function automatically consumed the incoming HTTP request stream and invoked JSON.parse() to instantiate a JavaScript object.

Because this parsing operation occurred before the isFeishuWebhookSignatureValid function was called, the application inherently trusted the size and complexity of the incoming data. An unauthenticated attacker could submit deeply nested or exceptionally large JSON structures. Node.js processes JSON.parse() synchronously, meaning a complex payload blocks the main event loop, denying service to all other concurrent requests.

Furthermore, the original signature validation logic reconstructed the validation string by calling JSON.stringify(payload). JSON serialization is non-deterministic regarding key ordering and whitespace. This operational choice meant the stringified payload used for signature calculation might diverge from the raw bytes transmitted by Feishu, leading to false-negative validation failures or enabling potential bypass scenarios if serialization artifacts were manipulated.

Code Analysis

The patch addresses the flaw by implementing a strict "Read-Validate-Parse" pipeline. The relevant changes in extensions/feishu/src/monitor.transport.ts demonstrate the shift from eager parsing to deferred parsing.

In the vulnerable version, the request body was parsed immediately:

// Vulnerable Implementation
const bodyResult = await readJsonBodyWithLimit(req, { limit: 1024 * 1024 });
// Signature validation occurs using the parsed object
if (!isFeishuWebhookSignatureValid({ headers: req.headers, payload: bodyResult.body, ... })) {
  // ...
}

The patched version replaces this with readRequestBodyWithLimit, which retrieves the raw byte stream as a string. Signature validation now operates directly on this raw string:

// Patched Implementation
const rawBody = await readRequestBodyWithLimit(req, { limit: 1024 * 1024 });
 
// Reject invalid signatures before any JSON parsing occurs
if (!isFeishuWebhookSignatureValid({ headers: req.headers, rawBody, ... })) {
  respondText(res, 401, "Invalid signature");
  return;
}
 
// Safe to parse only after cryptographic verification
const payload = parseFeishuWebhookPayload(rawBody);

The cryptographic hash calculation was also updated to utilize params.rawBody instead of a stringified object:

const computedSignature = crypto
  .createHash("sha256")
  .update(timestamp + nonce + encryptKey + params.rawBody)
  .digest("hex");

This exact string matching ensures cryptographic integrity and completely removes the non-deterministic JSON.stringify operation from the validation path.

Exploitation Methodology

Exploiting this vulnerability requires network access to the OpenClaw instance's Feishu webhook endpoint (typically /hook/feishu). The attacker does not need valid credentials or a valid Feishu signature.

The primary attack methodology focuses on resource exhaustion. The attacker crafts an HTTP POST request containing a multi-megabyte JSON payload. This payload is structurally designed to maximize the CPU cycles required by the V8 JavaScript engine's JSON.parse() implementation. Deeply nested objects or large arrays of complex data types are highly effective for this purpose.

Upon receiving the request, the vulnerable OpenClaw server begins parsing the payload. Because Node.js is single-threaded, the synchronous parsing operation blocks the event loop. High-frequency submission of these payloads ensures the event loop remains blocked indefinitely, rendering the AI assistant unresponsive to legitimate user interactions and system events.

Impact Assessment

The primary impact of this vulnerability is a Denial of Service (DoS). Successful exploitation prevents the OpenClaw service from processing legitimate requests, severely degrading the availability of the personal AI assistant. The CVSS v3.1 vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L yields a base score of 6.5, reflecting the unauthenticated, remote nature of the attack.

Beyond resource exhaustion, the cryptographic fragility introduced by JSON.stringify presents a secondary integrity risk. While the primary observed behavior is a fail-closed scenario (where valid Feishu events are rejected due to serialization mismatches), the architectural flaw theoretically allows for forged event injection.

If an attacker identified a specific JSON structure that produced a predictable stringified output matching a previously captured signature, they could bypass the authentication check. This would grant the ability to inject forged commands into the OpenClaw assistant, impersonating authorized users or triggering unauthorized workflows.

Remediation and Mitigation

The definitive remediation is to update the OpenClaw application to a release containing commit 5e8cb22176e9235e224be0bc530699261eb60e53 or later. This patch implements the correct Read-Validate-Parse operational sequence and resolves both the DoS vector and the cryptographic verification fragility.

For environments where immediate patching is not feasible, network-level mitigations should be applied. Administrators must restrict access to the /hook/feishu endpoint using firewalls or reverse proxy access control lists (ACLs). Only traffic originating from documented and verified Feishu/Lark IP address ranges should be permitted to reach the endpoint.

Security operations teams should monitor application telemetry for anomalies indicative of exploitation attempts. Specifically, high CPU utilization spikes originating from the Node.js process, coupled with an increased volume of 401 Unauthorized or 400 Bad Request responses on the webhook path, serve as strong indicators of active resource exhaustion attacks.

Official Patches

OpenClawOfficial fix commit implementing deferred parsing and raw string signature validation.

Fix Analysis (1)

Technical Appendix

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

Affected Systems

OpenClaw @openclaw/extension-feishu

Affected Versions Detail

Product
Affected Versions
Fixed Version
OpenClaw @openclaw/extension-feishu
OpenClaw
< commit 5e8cb22176e9235e224be0bc530699261eb60e535e8cb22176e9235e224be0bc530699261eb60e53
AttributeDetail
Vulnerability TypeDenial of Service (DoS) / Cryptographic Bypass
CWE IDCWE-400, CWE-345
CVSS v3.1 Base Score6.5
Attack VectorNetwork
Authentication RequiredNone
Exploit StatusUnauthenticated DoS Possible

MITRE ATT&CK Mapping

T1499Endpoint Denial of Service
Impact
T1190Exploit Public-Facing Application
Initial Access
CWE-400
Uncontrolled Resource Consumption

The software does not properly control the allocation and maintenance of a limited resource thereby enabling an actor to influence the amount of resources consumed.

Vulnerability Timeline

Vulnerability identified and fix committed by Jacob Tomlinson.
2026-03-26
Security advisory GHSA-3H52-CX59-C456 published.
2026-03-26

References & Sources

  • [1]GitHub Security Advisory GHSA-3H52-CX59-C456
  • [2]OpenClaw Fix Commit
  • [3]OpenClaw CVE Tracker
  • [4]OpenClaw Repository

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.

More Reports

•29 minutes ago•CVE-2026-48597
8.2

CVE-2026-48597: Denial of Service via Atom Table Exhaustion in Elixir Tesla Client (Mint Adapter)

CVE-2026-48597 is a high-severity Denial of Service (DoS) vulnerability in the Elixir HTTP client library Tesla (specifically involving the Mint adapter) that allows an unauthenticated remote attacker to cause an unrecoverable crash of the Erlang Virtual Machine (BEAM). The flaw arises from the dynamic conversion of untrusted URL schemes into Erlang atoms without validation, leading to global atom table exhaustion.

Alon Barad
Alon Barad
3 views•8 min read
•about 1 hour ago•CVE-2026-48598
2.1

CVE-2026-48598: Multipart Part Header Injection and Request Smuggling in elixir-tesla

An Improper Encoding or Escaping of Output vulnerability (CWE-116) in elixir-tesla allowed unauthenticated remote code execution or request smuggling via unescaped Content-Disposition parameters in multipart form-data requests.

Amit Schendel
Amit Schendel
5 views•5 min read
•about 1 hour ago•CVE-2026-49851
7.5

CVE-2026-49851: Algorithmic Complexity Denial of Service in Mistune Markdown Parser

CVE-2026-49851 is a high-severity algorithmic complexity vulnerability in the Mistune Markdown parser. Under specific conditions involving dense, unmatched nesting of opening square brackets, the parser fallback loops degrade from linear execution time to a worst-case quadratic complexity. This allows unauthenticated remote attackers to trigger complete CPU exhaustion and subsequent Denial of Service with a highly compact payload.

Alon Barad
Alon Barad
8 views•6 min read
•about 2 hours ago•CVE-2026-48862
8.2

CVE-2026-48862: Unbounded Resource Allocation via HTTP/2 PUSH_PROMISE Flooding in Mint

An allocation of resources without limits or throttling vulnerability in the Elixir Mint HTTP client library allows malicious HTTP/2 servers to trigger memory exhaustion and application denial of service. The flaw exists because Mint fails to validate server-push concurrency limits during the receipt of PUSH_PROMISE frames, deferring validation to the HEADERS phase. This allows a server to reserve an unlimited number of streams in the client's memory map.

Amit Schendel
Amit Schendel
6 views•7 min read
•about 3 hours ago•CVE-2026-52778
9.8

CVE-2026-52778: Unauthenticated Remote Code Execution and ReDoS in YesWiki Bazar Formula Calculator

An unsafe execution vulnerability exists in the Bazar form field calculator (CalcField.php) of YesWiki prior to version 4.6.6. The application attempts to validate mathematical formulas using a complex recursive regular expression before passing them to the PHP eval() function. This design leads to both Regular Expression Denial of Service (ReDoS) and Remote Code Execution (RCE) via validation bypass.

Alon Barad
Alon Barad
4 views•7 min read
•about 4 hours ago•CVE-2026-54651
5.5

CVE-2026-54651: Infinite Loop Vulnerability in pypdf Article Thread Parser

An infinite loop vulnerability exists in the pure-Python PDF library pypdf prior to version 6.13.1. When parsing or merging a crafted PDF file containing a cyclic Article/Thread structure, the library fails to exit its traversal loop. This causes the executing thread to hang indefinitely, leading to 100% CPU utilization and a denial of service. The vulnerability is tracked under CVE-2026-54651 and GHSA-g9xf-7f8q-9mcj, with a CVSS base score of 5.5. This technical report provides a root cause analysis, code review, exploitation vectors, and mitigation paths.

Alon Barad
Alon Barad
7 views•7 min read