An open API service providing security vulnerability metadata for many open source software ecosystems.

GSA_kwCzR0hTQS0yY2g2LXgzZzQtNzc1Oc4ABTFl

High CVSS: 7.1

OpenClaw's commands.allowFrom sender authorization accepted conversation identifiers via ctx.From

Affected Packages Affected Versions Fixed Versions
npm:openclaw
PURL: pkg:npm/openclaw
< 2026.2.23 2026.2.23
0 Dependent packages
0 Dependent repositories
6,021,905 Downloads last month

Affected Version Ranges

All affected versions

0.0.1, 2026.1.29, 2026.1.29-beta.1, 2026.1.29-beta.2, 2026.1.29-beta.3, 2026.1.29-beta.4, 2026.1.29-beta.5, 2026.1.29-beta.7, 2026.1.30, 2026.2.1, 2026.2.2, 2026.2.2-1, 2026.2.2-2, 2026.2.2-3, 2026.2.3, 2026.2.3-1, 2026.2.6, 2026.2.6-1, 2026.2.6-2, 2026.2.6-3, 2026.2.9, 2026.2.12, 2026.2.13, 2026.2.14, 2026.2.15, 2026.2.17, 2026.2.19, 2026.2.19-1, 2026.2.19-2, 2026.2.21, 2026.2.21-1, 2026.2.21-2, 2026.2.22, 2026.2.22-1, 2026.2.22-2, 2026.2.23-beta.1

All unaffected versions

2026.2.23, 2026.2.24, 2026.2.25, 2026.2.26, 2026.3.1, 2026.3.2, 2026.3.7, 2026.3.8, 2026.3.11

Summary

commands.allowFrom is documented as a sender authorization allowlist for commands/directives, but command authorization could include ctx.From (conversation identity) as a sender candidate.

When commands.allowFrom contained conversation-like identifiers (for example Discord channel:<id> or WhatsApp group JIDs), command/directive authorization could be granted to participants in that conversation instead of only the intended sender identity.

Affected Packages / Versions

  • Package: openclaw (npm)
  • Affected versions: <= 2026.2.22-2
  • Patched version: 2026.2.23 (released)

Details

Root cause: resolveSenderCandidates() in src/auto-reply/command-auth.ts always included ctx.From in candidate evaluation used by commands.allowFrom authorization checks.

ctx.From is sender-like in some direct-message contexts, but conversation-like in channel/group/thread contexts. This mixed principal handling allowed conversation identifiers to satisfy sender-only authorization.

Impact

In affected versions, command/directive authorization could become broader than intended when operators configured commands.allowFrom with conversation identifiers, allowing unintended users in that conversation to run command-only/directive-only flows.

Fix

Main branch now treats commands.allowFrom as sender-only:

  • ctx.From is no longer included as a general sender candidate.
  • ctx.From is only used as fallback when sender fields are absent and the value is not conversation-shaped.
  • Regression tests were added for conversation-id denial and direct-message fallback preservation.

Fix Commit(s)

  • 08e2aa44e78a9c946d97bea62304e6f533b8fa8e

Release Process Note

patched_versions is pre-set to the released version (2026.2.23). This advisory now reflects released fix version 2026.2.23.

OpenClaw thanks @jiseoung for reporting.

References: