GHSA-w5c7-9qqw-6645
OpenClaw inter-session prompts could be treated as direct user instructions
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.12(i.e.< 2026.2.13) - Fixed in:
2026.2.13(patched 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) withkindvalues includinginter_session. sessions_sendand 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 remainsuserfor 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_sendin 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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- High
- Availability
- None
What each source reports
GitHub Advisories Score used 7.1
OpenClaw inter-session prompts could be treated as direct user instructions
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.12(i.e.< 2026.2.13) - Fixed in:
2026.2.13(patched 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) withkindvalues includinginter_session. sessions_sendand 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 remainsuserfor 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_sendin 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.
- Record
GHSA-w5c7-9qqw-6645- CVSS 4.0
- 7.1 High
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 - Weakness
- CWE-345
- Updated
- 2026-11-02
OSV 7.1
OpenClaw inter-session prompts could be treated as direct user instructions
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.12(i.e.< 2026.2.13) - Fixed in:
2026.2.13(patched 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) withkindvalues includinginter_session. sessions_sendand 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 remainsuserfor 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_sendin 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.
- Record
GHSA-w5c7-9qqw-6645- CVSS 4.0
- 7.1 High
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 - Weakness
- CWE-345
- Updated
- 2026-11-02
Affected packages
| Package | Affected | Fixed |
|---|---|---|
openclawnpm | before 2026.2.13 | 2026.2.13 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | GitHub Advisories, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
GHSA-w5c7-9qqw-6645 is a high vulnerability (CVSS 7.1) in openclaw, published February 18, 2026. No source lists public exploit code. Fixed in openclaw 2026.2.13.