{"id":"GHSA-rchv-x836-w7xp","aliases":[],"url":"https://o3.security/vulnerability/GHSA-rchv-x836-w7xp","summary":"OpenClaw's dashboard leaked gateway auth material via browser URL/query and localStorage","details":"OpenClaw's macOS Dashboard flow exposed Gateway authentication material to browser-controlled surfaces.\n\nBefore the fix, the macOS app appended the shared Gateway `token` and `password` to the Dashboard URL query string when opening the Control UI in the browser. The Control UI then imported the token and persisted it into browser `localStorage` under `openclaw.control.settings.v1`.\n\nThis expanded exposure of reusable Gateway admin credentials into browser address-bar/query surfaces and persistent script-readable storage.\n\n## Affected Packages / Versions\n\n- Package: `openclaw` (npm)\n- Latest published version verified vulnerable: `2026.3.2`\n- Affected range: `<= 2026.3.2`\n- Patched version: `>= 2026.3.7`\n\n## Impact\n\nAn attacker with access to browser-controlled surfaces or persistent browser storage could recover a valid Gateway admin token and reuse it against the OpenClaw management interface.\n\nThe exposure chain was:\n\n1. macOS `Open Dashboard` constructed a URL with auth material.\n2. The browser received that credential-bearing URL.\n3. The Control UI imported the token from the URL.\n4. The Control UI persisted the token in `localStorage`.\n\n## Fix\n\nThe fix aligns the macOS Dashboard flow with the safer existing CLI/bootstrap pattern and removes persistent browser token storage:\n\n- macOS Dashboard now passes the Gateway token via URL fragment instead of query parameters.\n- macOS Dashboard no longer propagates the shared Gateway password into browser URLs.\n- Control UI keeps Gateway tokens in memory only for the current tab.\n- Control UI scrubs legacy persisted tokens from `openclaw.control.settings.v1` on load.\n- Regression tests cover fragment transport, password omission, and token-scrubbing behavior.\n\n## Fix Commit(s)\n\n- `10d0e3f3ca92326df0ca071fabffe463742f263c` (March 7, 2026)\n\n## Release Process Note\n\nnpm `2026.3.7` was published on March 8, 2026. This advisory is fixed in the released package.\n\nThanks @whiter6666 for reporting.","published":"2026-03-09T19:52:29Z","modified":"2026-03-09T20:02:22.249462Z","cvss":{"score":7.1,"severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N"},"epss":null,"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"npm","name":"openclaw","fixedVersion":"2026.3.7"}],"fix":{"url":"https://github.com/openclaw/openclaw/commit/10d0e3f3ca92326df0ca071fabffe463742f263c","label":"openclaw/openclaw@10d0e3f"},"references":[{"type":"WEB","url":"https://github.com/openclaw/openclaw/security/advisories/GHSA-rchv-x836-w7xp"},{"type":"WEB","url":"https://github.com/openclaw/openclaw/commit/10d0e3f3ca92326df0ca071fabffe463742f263c"},{"type":"PACKAGE","url":"https://github.com/openclaw/openclaw"},{"type":"WEB","url":"https://github.com/openclaw/openclaw/releases/tag/v2026.3.7"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-03-09T20:02:22.249462Z"}}