GitHub Advisoryadvisory · npm
GHSA-w5c7-9qqw-6645 OpenClaw inter-session prompts could be treated as direct user instructions
HIGH
Official page ↗
- Ecosystem
- npm
- Packages
- openclaw
- Severity
- High
- CVSS vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N
- Weaknesses
- CWE-345
- Reviewed
- 2026-02-18
Affected packages
• npm openclaw: < 2026.2.13 → fixed in 2026.2.13
Description
Summary
Inter-session messages sent via `sessions_send` could be interpreted as direct end-user instructions because they were persisted as `role: "user"` without provenance metadata.
Affected Packages / Versions
• Package: `openclaw` (npm)
• Affected versions: `= 2026.2.13`)
Impact
A delegated or internal session could inject instructions into another session that appeared equivalent to externally-originated user input.
This is an instruction-provenance confusion issue (confused-deputy style), which can lead to unintended privileged behavior in workflows that trust `role: "user"` as a sole authority signal.
Technical details
Before the fix, routed inter-session prompts were stored as regular user turns without a verifiable source marker.
As a result, downstream workers and transcript readers could not distinguish:
• External user input
• Internal inter-session routed input
Fix
OpenClaw now carries explicit input provenance end-to-end for routed prompts.
Key changes:
• Added structured provenance model (`inputProvenance`) with `kind` values including `inter_session`.
• `sessions_send` and agent-to-agent steps now set inter-session provenance when invoking target runs.
• Provenance is persisted on user messages as `message.provenance.kind = "inter_session"` (role remains `user` for provider compatibility).
• Transcript readers and memory helpers were updated to respect provenance and avoid treating inter-session prompts as external user-originated input.
• Runtime context rebuilding now annotates inter-session turns with an explicit in-memory marker (`[Inter-session message]`) for clearer model-side disambiguation.
• Regression tests were added for transcript parsing, session tools flow, runner sanitization, and memory hook behavior.
Fix Commit(s)
• `85409e401b6586f83954cb53552395d7aab04797`
Workarounds
If immediate upgrade is not possible:
• Disable or restrict `sessions_send` in affected environments.
• Do not use role alone as an authority boundary; require provenance-aware checks in orchestration logic.
Credit
Reported by @anbecker.
Thanks @anbecker for reporting.
Related
Weakness · CWE (1)
- CWE-345 Insufficient Verification of Data Authenticity weakness