The vulnerability lies in the unbounded buffering of HTTP request bodies across multiple webhook handlers in the OpenClaw application. The advisory and the patch confirm that various components were accepting and processing request bodies without enforcing a strict size or time limit. An unauthenticated attacker could exploit this by sending very large or slow-streaming payloads to these webhook endpoints, causing excessive memory consumption on the server and leading to a denial of service (DoS).
The patch addresses this by introducing a centralized and reusable set of functions in src/infra/http-body.ts: readRequestBodyWithLimit, readJsonBodyWithLimit, and installRequestBodyLimitGuard. These helpers are designed to read request bodies while enforcing maxBytes and timeoutMs limits.
The analysis of the fixing commit (3cbcba10cf30c2ffb898f0d8c7dfb929f15f8930) shows that numerous webhook handlers were refactored to use these new, secure helpers. The vulnerable functions are the ones that previously contained or called insecure code to read the request body. For example, many files had their own local, insecure readJsonBody or readBody implementation which was removed. In other cases, like for Slack, Telegram, and Feishu, the patch wraps the existing SDK-provided request handlers with installRequestBodyLimitGuard to enforce the limits at the stream level before the SDK can buffer the data. For MS Teams, the fix was to correctly configure the body limit in the Express.js JSON middleware.
The identified vulnerable_functions are the primary entry points for these webhooks, which were responsible for initiating the insecure reading of the request body before the patch was applied.