PT-2026-22440 · Npm · Openclaw
Published
2026-02-18
·
Updated
2026-02-18
CVSS v3.1
7.5
High
| Vector | AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
Summary
URL-backed media fetch handling allocated the entire response payload in memory (
arrayBuffer) before enforcing maxBytes, allowing oversized responses to cause memory exhaustion.Affected Versions
openclaw(npm): <2026.2.14clawdbot(npm): <=2026.1.24-3
Patched Versions
openclaw(npm):2026.2.14
Fix Commit
openclaw/openclawmain:00a08908892d1743d1fc52e5cbd9499dd5da2fe0
Details
Affected component:
src/media/input-files.ts(fetchWithGuard)
When
content-length is missing or incorrect, reading the body via response.arrayBuffer() buffers the full payload before a size check can run.Proof of Concept
- Configure URL-based media input.
- Serve a response larger than
maxBytes(chunked transfer / nocontent-length). - Trigger the
fetchWithGuardURL fetch path.
Example local server (large response):
bash
node -e 'require("http").createServer(( ,res)=>{res.writeHead(200,{"content-type":"application/octet-stream"});for(let i=0;i<1024;i++)res.write(Buffer.alloc(1024*64));res.end();}).listen(18888)'Impact
Availability loss via memory pressure from attacker-controlled remote media responses.
Mitigation
Until a patched release is available, disable URL-backed media inputs (or restrict to a tight hostname allowlist) and use conservative
maxBytes limits.Credits
Reported by @vincentkoc.
Fix
Resource Exhaustion
Found an issue in the description? Have something to add? Feel free to write us 👾
Weakness Enumeration
Related Identifiers
Affected Products
Openclaw