GHSA-J27P-HQ53-9WGC

Vulnerability from github – Published: 2026-02-18 00:51 – Updated: 2026-02-18 00:51
VLAI?
Summary
OpenClaw affected by denial of service via unbounded URL-backed media fetch
Details

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.14
  • clawdbot (npm): <= 2026.1.24-3

Patched Versions

  • openclaw (npm): 2026.2.14

Fix Commit

  • openclaw/openclaw main: 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

  1. Configure URL-based media input.
  2. Serve a response larger than maxBytes (chunked transfer / no content-length).
  3. Trigger the fetchWithGuard URL fetch path.

Example local server (large response):

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.

Show details on source website

{
  "affected": [
    {
      "package": {
        "ecosystem": "npm",
        "name": "openclaw"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "2026.2.14"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [],
  "database_specific": {
    "cwe_ids": [
      "CWE-400"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-02-18T00:51:37Z",
    "nvd_published_at": null,
    "severity": "HIGH"
  },
  "details": "### Summary\nURL-backed media fetch handling allocated the entire response payload in memory (`arrayBuffer`) before enforcing `maxBytes`, allowing oversized responses to cause memory exhaustion.\n\n### Affected Versions\n- `openclaw` (npm): \u003c `2026.2.14`\n- `clawdbot` (npm): \u003c= `2026.1.24-3`\n\n### Patched Versions\n- `openclaw` (npm): `2026.2.14`\n\n### Fix Commit\n- `openclaw/openclaw` `main`: `00a08908892d1743d1fc52e5cbd9499dd5da2fe0`\n\n### Details\nAffected component:\n- `src/media/input-files.ts` (`fetchWithGuard`)\n\nWhen `content-length` is missing or incorrect, reading the body via `response.arrayBuffer()` buffers the full payload before a size check can run.\n\n### Proof of Concept\n1. Configure URL-based media input.\n2. Serve a response larger than `maxBytes` (chunked transfer / no `content-length`).\n3. Trigger the `fetchWithGuard` URL fetch path.\n\nExample local server (large response):\n```bash\nnode -e \u0027require(\"http\").createServer((_,res)=\u003e{res.writeHead(200,{\"content-type\":\"application/octet-stream\"});for(let i=0;i\u003c1024;i++)res.write(Buffer.alloc(1024*64));res.end();}).listen(18888)\u0027\n```\n\n### Impact\nAvailability loss via memory pressure from attacker-controlled remote media responses.\n\n### Mitigation\nUntil a patched release is available, disable URL-backed media inputs (or restrict to a tight hostname allowlist) and use conservative `maxBytes` limits.\n\n### Credits\nReported by @vincentkoc.",
  "id": "GHSA-j27p-hq53-9wgc",
  "modified": "2026-02-18T00:51:37Z",
  "published": "2026-02-18T00:51:37Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/openclaw/openclaw/security/advisories/GHSA-j27p-hq53-9wgc"
    },
    {
      "type": "WEB",
      "url": "https://github.com/openclaw/openclaw/commit/00a08908892d1743d1fc52e5cbd9499dd5da2fe0"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/openclaw/openclaw"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
      "type": "CVSS_V3"
    }
  ],
  "summary": "OpenClaw affected by denial of service via unbounded URL-backed media fetch"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.


Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…