GHSA-RV2Q-F2H5-6XMG

Vulnerability from github – Published: 2026-03-03 23:32 – Updated: 2026-03-20 21:13
VLAI?
Summary
OpenClaw's Node role device-identity bypass allows unauthorized node.event injection
Details

Summary

A client authenticated with a shared gateway token could connect as role=node without device identity/pairing, then call node.event to trigger agent.request and voice.transcript flows.

Affected Packages / Versions

  • Package: npm openclaw
  • Affected versions: <= 2026.2.21-2
  • Patched version: 2026.2.22 (planned next release)

Details

The WebSocket connect path allowed device-less bypass whenever shared auth succeeded. That bypass did not restrict role, so a client could claim role=node with no device identity and still pass handshake auth. Because node.event is node-role allowed, this enabled unauthorized node event injection into agent-trigger flows.

Impact

Unauthorized node.event injection can trigger agent execution and voice transcript flows for clients that only hold the shared gateway token, without node device pairing.

Remediation

Upgrade to 2026.2.22 (or newer) once published. The fix requires device identity for role=node connects, even when shared-token auth succeeds.

Fix Commit(s)

  • ddcb2d79b17bf2a42c5037d8aeff1537a12b931e

Release Process Note

patched_versions is pre-set to the planned next release so once npm release 2026.2.22 is out, advisory publish is a single step.

OpenClaw thanks @tdjackey for reporting.

Show details on source website

{
  "affected": [
    {
      "package": {
        "ecosystem": "npm",
        "name": "openclaw"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "2026.2.22"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [
    "CVE-2026-32001"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-863"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-03-03T23:32:12Z",
    "nvd_published_at": "2026-03-19T22:16:32Z",
    "severity": "MODERATE"
  },
  "details": "### Summary\nA client authenticated with a shared gateway token could connect as `role=node` without device identity/pairing, then call `node.event` to trigger `agent.request` and `voice.transcript` flows.\n\n### Affected Packages / Versions\n- Package: npm `openclaw`\n- Affected versions: `\u003c= 2026.2.21-2`\n- Patched version: `2026.2.22` (planned next release)\n\n### Details\nThe WebSocket connect path allowed device-less bypass whenever shared auth succeeded. That bypass did not restrict role, so a client could claim `role=node` with no device identity and still pass handshake auth. Because `node.event` is node-role allowed, this enabled unauthorized node event injection into agent-trigger flows.\n\n### Impact\nUnauthorized `node.event` injection can trigger agent execution and voice transcript flows for clients that only hold the shared gateway token, without node device pairing.\n\n### Remediation\nUpgrade to `2026.2.22` (or newer) once published. The fix requires device identity for `role=node` connects, even when shared-token auth succeeds.\n\n### Fix Commit(s)\n- ddcb2d79b17bf2a42c5037d8aeff1537a12b931e\n\n### Release Process Note\n`patched_versions` is pre-set to the planned next release so once npm release `2026.2.22` is out, advisory publish is a single step.\n\nOpenClaw thanks @tdjackey for reporting.",
  "id": "GHSA-rv2q-f2h5-6xmg",
  "modified": "2026-03-20T21:13:44Z",
  "published": "2026-03-03T23:32:12Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/openclaw/openclaw/security/advisories/GHSA-rv2q-f2h5-6xmg"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-32001"
    },
    {
      "type": "WEB",
      "url": "https://github.com/openclaw/openclaw/commit/ddcb2d79b17bf2a42c5037d8aeff1537a12b931e"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/openclaw/openclaw"
    },
    {
      "type": "WEB",
      "url": "https://www.vulncheck.com/advisories/openclaw-node-role-device-identity-bypass-via-websocket-authentication"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N",
      "type": "CVSS_V3"
    },
    {
      "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
      "type": "CVSS_V4"
    }
  ],
  "summary": "OpenClaw\u0027s Node role device-identity bypass allows unauthorized node.event injection"
}


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…