CVE-2026-35618
OpenClaw < 2026.3.23 - Replay Identity Drift via Query-Only Variants in Plivo V2 Verification
OpenClaw before 2026.3.23 contains a replay identity vulnerability in Plivo V2 signature verification that allows attackers to bypass replay protection by modifying query parameters. The verification path derives replay keys from the full URL including query strings instead of the canonicalized base URL, enabling attackers to mint new verified request keys through unsigned query-only changes to signed requests.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
8.3
OpenClaw < 2026.3.23 - Replay Identity Drift via Query-Only Variants in Plivo V2 Verification
OpenClaw before 2026.3.23 contains a replay identity vulnerability in Plivo V2 signature verification that allows attackers to bypass replay protection by modifying query parameters. The verification path derives replay keys from the full URL including query strings instead of the canonicalized base URL, enabling attackers to mint new verified request keys through unsigned query-only changes to signed requests.
- Record
CVE-2026-35618- CVSS 4.0
- 8.3 High
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N - Weakness
- CWE-294
- Updated
- 2026-11-02
EUVDEUVD-2026-21103
8.3
OpenClaw before 2026.3.23 contains a replay identity vulnerability in Plivo V2 signature verification that allows attackers to bypass replay protection by modifying query parameters. The verification path derives replay keys from the full URL including query strings instead of the canonicalized base URL, enabling attackers to mint new verified request keys through unsigned query-only changes to signed requests.
- Record
EUVD-2026-21103- CVSS 4.0
- 8.3 High
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-cg6c-q2hx-69h7
8.2
OpenClaw: Plivo V2 verified replay identity drifts on query-only variants
Summary
Before v2026.3.23, the Plivo V2 verification path treated query-only variants of the same signed request as fresh verified work. Plivo V2 signatures authenticate baseUrl + nonce, but the replay key was derived from the full verification URL including the query string, so unsigned query-only changes minted a new verifiedRequestKey.
Affected Packages / Versions
- Package:
openclaw(npm) - Affected:
< 2026.3.23 - Fixed:
>= 2026.3.23 - Latest released tag checked:
v2026.3.23-2(630f1479c44f78484dfa21bb407cbe6f171dac87) - Latest published npm version checked:
2026.3.23-2
Root Cause
The vulnerable logic lived in extensions/voice-call/src/webhook-security.ts. V2 signature validation already canonicalized to the base URL without query parameters, but the replay key used the full verificationUrl, letting query-only variants bypass replay identity stability.
Fix Commit(s)
b0ce53a79cf63834660270513e26d921899b4e5b—fix(voice-call): stabilize plivo v2 replay keys
Release Status
The fix commit is contained in released tags v2026.3.23 and v2026.3.23-2. The latest shipped tag and npm release both include the fix.
Code-Level Confirmation
extensions/voice-call/src/webhook-security.tsnow derives the V2 replay key withcreatePlivoV2ReplayKey(...), which hashesgetBaseUrlNoQuery(url)plus the nonce.extensions/voice-call/src/webhook-security.test.tscontains the regression testtreats query-only V2 variants as the same verified request.
Thanks @smaeljaish771 for reporting.
- Record
GHSA-cg6c-q2hx-69h7- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-294
- Updated
- 2026-11-02
GitHub AdvisoriesGHSA-j56c-wpqm-h24x
8.3
Duplicate Advisory: OpenClaw: Plivo V2 verified replay identity drifts on query-only variants
Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-cg6c-q2hx-69h7. This link is maintained to preserve external references.
Original Description
OpenClaw before 2026.3.23 contains a replay identity vulnerability in Plivo V2 signature verification that allows attackers to bypass replay protection by modifying query parameters. The verification path derives replay keys from the full URL including query strings instead of the canonicalized base URL, enabling attackers to mint new verified request keys through unsigned query-only changes to signed requests.
- Record
GHSA-j56c-wpqm-h24x- CVSS 4.0
- 8.3 High
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N - Weakness
- CWE-294
- Updated
- 2026-11-02
NVD
8.3
OpenClaw before 2026.3.23 contains a replay identity vulnerability in Plivo V2 signature verification that allows attackers to bypass replay protection by modifying query parameters. The verification path derives replay keys from the full URL including query strings instead of the canonicalized base URL, enabling attackers to mint new verified request keys through unsigned query-only changes to signed requests.
- Record
CVE-2026-35618- CVSS 4.0
- 8.3 High
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N - Weakness
- CWE-294
- Updated
- 2026-11-02
OSV
8.3
OpenClaw < 2026.3.23 - Replay Identity Drift via Query-Only Variants in Plivo V2 Verification
OpenClaw before 2026.3.23 contains a replay identity vulnerability in Plivo V2 signature verification that allows attackers to bypass replay protection by modifying query parameters. The verification path derives replay keys from the full URL including query strings instead of the canonicalized base URL, enabling attackers to mint new verified request keys through unsigned query-only changes to signed requests.
- Record
CVE-2026-35618- CVSS 4.0
- 8.3 High
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-294
- Updated
- 2026-11-02
OSVGHSA-cg6c-q2hx-69h7
8.2
OpenClaw: Plivo V2 verified replay identity drifts on query-only variants
Summary
Before v2026.3.23, the Plivo V2 verification path treated query-only variants of the same signed request as fresh verified work. Plivo V2 signatures authenticate baseUrl + nonce, but the replay key was derived from the full verification URL including the query string, so unsigned query-only changes minted a new verifiedRequestKey.
Affected Packages / Versions
- Package:
openclaw(npm) - Affected:
< 2026.3.23 - Fixed:
>= 2026.3.23 - Latest released tag checked:
v2026.3.23-2(630f1479c44f78484dfa21bb407cbe6f171dac87) - Latest published npm version checked:
2026.3.23-2
Root Cause
The vulnerable logic lived in extensions/voice-call/src/webhook-security.ts. V2 signature validation already canonicalized to the base URL without query parameters, but the replay key used the full verificationUrl, letting query-only variants bypass replay identity stability.
Fix Commit(s)
b0ce53a79cf63834660270513e26d921899b4e5b—fix(voice-call): stabilize plivo v2 replay keys
Release Status
The fix commit is contained in released tags v2026.3.23 and v2026.3.23-2. The latest shipped tag and npm release both include the fix.
Code-Level Confirmation
extensions/voice-call/src/webhook-security.tsnow derives the V2 replay key withcreatePlivoV2ReplayKey(...), which hashesgetBaseUrlNoQuery(url)plus the nonce.extensions/voice-call/src/webhook-security.test.tscontains the regression testtreats query-only V2 variants as the same verified request.
Thanks @smaeljaish771 for reporting.
- Record
GHSA-cg6c-q2hx-69h7- CVSS 4.0
- 8.2 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-294
- Updated
- 2026-11-02
OSVGHSA-j56c-wpqm-h24x
8.3
Duplicate Advisory: OpenClaw: Plivo V2 verified replay identity drifts on query-only variants
Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-cg6c-q2hx-69h7. This link is maintained to preserve external references.
Original Description
OpenClaw before 2026.3.23 contains a replay identity vulnerability in Plivo V2 signature verification that allows attackers to bypass replay protection by modifying query parameters. The verification path derives replay keys from the full URL including query strings instead of the canonicalized base URL, enabling attackers to mint new verified request keys through unsigned query-only changes to signed requests.
- Record
GHSA-j56c-wpqm-h24x- CVSS 4.0
- 8.3 High
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N - Weakness
- CWE-294
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
openclawnpm |
before 2026.3.23 | 2026.3.23 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-35618 is a high vulnerability (CVSS 8.3) in Openclaw, published March 26, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.29%, the 22nd percentile. Fixed in openclaw 2026.3.23.
References
github.com/openclaw/openclaw/security/advisories/GHSA-cg6c-q2hx-69h7
github.com/openclaw/openclaw/commit/630f1479c44f78484dfa21bb407cbe6f171dac87
github.com/openclaw/openclaw/commit/b0ce53a79cf63834660270513e26d921899b4e5b
vulncheck.com/advisories/openclaw-replay-identity-drift-via-query-only-variants-in-plivo-v2-verification
nvd.nist.gov/vuln/detail/CVE-2026-35618
github.com/advisories/GHSA-cg6c-q2hx-69h7
github.com/advisories/GHSA-j56c-wpqm-h24x
github.com/CVEProject/cvelistV5/tree/main/cves/2026/35xxx/CVE-2026-35618.json
github.com/openclaw/openclaw