OpenClaw has an inbound allowlist policy bypass in voice-call extension (empty caller ID + suffix matching)
Summary
An authentication bypass in the optional voice-call extension/plugin allowed unapproved or anonymous callers to reach the voice-call agent when inbound policy was set to allowlist or pairing.
Deployments that do not install/enable the voice-call extension are not affected.
Affected Packages / Versions
openclaw(npm):<= 2026.2.1- Fixed in:
>= 2026.2.2
Details
In affected versions (for example 2026.2.1), the inbound allowlist check in extensions/voice-call/src/manager.ts used suffix-based matching and accepted empty caller IDs after normalization.
This allowed two bypasses:
- Missing/empty
fromvalues normalized to an empty string, which caused the allowlist predicate to evaluate as allowed. - Suffix-based matching meant any caller number whose digits ended with an allowlisted number would be accepted.
Proof Of Concept
- Configure the voice-call extension with
inboundPolicy: allowlistandallowFrom: ["+15550001234"]. - Place/trigger an inbound call with missing/empty caller ID (provider-dependent; for example anonymous/restricted caller). The call is accepted.
- Place a call from a number whose E.164 digits end with
15550001234(for example+99915550001234). The call is accepted.
Impact
Only operators who install/enable the optional voice-call extension and use inboundPolicy=allowlist or pairing could have inbound access controls bypassed, potentially allowing unauthorized callers to reach auto-response and tool execution.
Fix
The fix hardens inbound policy handling:
- Reject inbound calls when caller ID is missing.
- Require strict equality when comparing normalized caller IDs against the allowlist (no suffix/prefix matching).
- Add regression tests for missing caller ID, anonymous caller ID, and suffix-collision cases.
Fix commit(s):
f8dfd034f5d9235c5485f492a9e4ccc114e97fdb
Thanks @simecek for reporting.
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| npm package | openclaw | < 2026.2.2 | 2026.2.2 |
References
- https://github.com/openclaw/openclaw/security/advisories/GHSA-4rj2-gpmh-qq5x
- https://nvd.nist.gov/vuln/detail/CVE-2026-28446
- https://github.com/openclaw/openclaw/commit/f8dfd034f5d9235c5485f492a9e4ccc114e97fdb
- https://github.com/openclaw/openclaw
- https://github.com/openclaw/openclaw/releases/tag/v2026.2.2
- https://www.vulncheck.com/advisories/openclaw-inbound-allowlist-policy-bypass-in-voice-call-extension-via-empty-caller-id
- CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L- Weakness (CWE)
CWE-287- Platform
- npm
- Package
openclaw- Disclosed
- 17.02.2026
- Updated
- 11.10.2026 10:22
Sources and licenses
OSV / GitHub Advisory Database - GHSA-4rj2-gpmh-qq5x - CC BY 4.0
Vulnerability history: openclaw
All published vulnerabilities of this package (npm package), newest first. Shows whether this is a one-off slip or a package that needs watching.
- Total entries
- 588
- First → latest
- 02.2026 07.2026
- Without a fix
- 9
- Exploited in attacks
- 0
Severity breakdown
- Critical 20
- High 215
- Medium 299
- Low 54
Disclosures per year
- 2026: 588
-
OpenClaw has an inbound allowlist policy bypass in voice-call extension (empty caller ID + suffix matching) this entry
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.