{"answers":{"affected":"2 open source packages ship an affected version, including openclaw.","exploited":"There is no known exploitation of GHSA-hv93-r4j3-q65f in the wild and no public exploit code.","fix":"Upgrade openclaw to 2026.2.12 or later.","what":"GHSA-hv93-r4j3-q65f is a missing authorization vulnerability in openclaw, published on 17 Feb 2026. Any signed-in user can exploit it over the network, with no action from the victim."},"fix_prompt":"Check this codebase for GHSA-hv93-r4j3-q65f and fix it if it is affected.\n\nWhat it is: GHSA-hv93-r4j3-q65f is a missing authorization vulnerability in openclaw, published on 17 Feb 2026. Any signed-in user can exploit it over the network, with no action from the victim.\nExploitation: There is no known exploitation of GHSA-hv93-r4j3-q65f in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- openclaw (npm): affected from 2.0.0-beta3; fixed in 2026.2.12\n- openclaw (npm): affected from 2.0.0-beta3; fixed in 2026.2.12\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/GHSA-hv93-r4j3-q65f/ (Markdown: https://insights.sbomify.com/GHSA-hv93-r4j3-q65f/index.md)","id":"GHSA-hv93-r4j3-q65f","markdown":"https://insights.sbomify.com/GHSA-hv93-r4j3-q65f/index.md","name":"GHSA-hv93-r4j3-q65f","record":{"aliases":[],"analysis":{"component_type":"server_software","fix_type":"upgrade","impacts":["data_modify","security_bypass"],"network_reachable":"yes","non_default_config":true,"product_category":"OpenClaw hook service","requires_auth":"low_privilege","summary":"An attacker with a valid hook token can inject messages into arbitrary sessions if request-based session key routing is enabled, compromising data integrity.","user_interaction":"not_required","vuln_class":"missing_authorization"},"analysis_generated_by":"qwen3.8-flash-next","assigner":null,"cpe":[],"cvss":{"score":null,"severity":null,"source":null,"vector":null,"version":null},"cwes":[],"description":"## Summary\nThe issue is not deterministic session keys by itself. The exploitable path was accepting externally supplied `sessionKey` values on authenticated hook ingress, allowing a hook token holder to route messages into chosen sessions.\n\n## Affected Behavior\n- `POST /hooks/agent` accepted payload `sessionKey` and used it directly for session routing.\n- Common session-key shapes (for example `agent:main:dm:\u003cpeerId\u003e`) were often derivable from known metadata, making targeted routing practical when request-level override was enabled.\n\n## Attack Preconditions\n- Attacker can call hook endpoints with a valid hook token.\n- Hook ingress allows request-selected `sessionKey` values.\n- Target session keys can be derived or guessed.\n\nWithout those preconditions, deterministic key formats alone do not provide access.\n\n## Impact\n- Integrity: targeted message/prompt injection into chosen sessions.\n- Persistence: poisoned context can affect subsequent turns when the same session key is reused.\n- Confidentiality impact is secondary and depends on additional weaknesses.\n\n## Affected Versions\n- `openclaw` `\u003e= 2.0.0-beta3` and `\u003c 2026.2.12`\n\n## Patched Versions\n- `openclaw` `\u003e= 2026.2.12`\n\n## Fix\nOpenClaw now uses secure defaults for hook session routing:\n- `POST /hooks/agent` rejects payload `sessionKey` unless `hooks.allowRequestSessionKey=true`.\n- Added `hooks.defaultSessionKey` for fixed ingress routing.\n- Added `hooks.allowedSessionKeyPrefixes` to constrain explicit routing keys.\n- Security audit warns on unsafe hook session-routing settings.\n\n## Recommended Configuration\n```json\n{\n  \"hooks\": {\n    \"enabled\": true,\n    \"token\": \"${OPENCLAW_HOOKS_TOKEN}\",\n    \"defaultSessionKey\": \"hook:ingress\",\n    \"allowRequestSessionKey\": false,\n    \"allowedSessionKeyPrefixes\": [\"hook:\"]\n  }\n}\n```\n\n## Credit\nThanks @alpernae for responsible reporting.","ecosystems":["npm"],"exploits":{"exploitdb":null,"first_seen":null,"github_poc":null,"max_poc_stars":null,"metasploit":null,"nuclei":null,"refs":[],"tier":null},"has_fix":true,"headline":"OpenClaw Hook Session Key Override Enables Targeted Cross-Session Routing","id":"GHSA-hv93-r4j3-q65f","indexable":true,"kev":null,"kind":"advisory","links":{"ecosystem":"npm","product":null,"products":[],"type":"missing_authorization","year":"2026"},"n_packages":2,"n_references":null,"packages":[{"ecosystem":"npm","fixed":["2026.2.12"],"introduced":["2.0.0-beta3"],"last_affected":[],"package":"openclaw","purl":null,"source":"GHSA-hv93-r4j3-q65f"},{"ecosystem":"npm","fixed":["2026.2.12"],"introduced":["2.0.0-beta3"],"last_affected":[],"package":"openclaw","purl":"pkg:npm/openclaw","source":"GHSA-hv93-r4j3-q65f"}],"products":null,"published":"2026-02-17","related":[],"sources":[{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":null,"updated":null,"vendors":null},"summary":"An attacker with a valid hook token can inject messages into arbitrary sessions if request-based session key routing is enabled, compromising data integrity.","url":"https://insights.sbomify.com/GHSA-hv93-r4j3-q65f/"}