Description
The x402 SIWX server extension in @x402/extensions 2.3.1 through 2.28.0, x402 PyPI 2.11.0 through 2.25.0, and Go module 2.16.0 through 2.28.0 contains an authorization bypass vulnerability that allows paying clients to unlock unpaid routes by supplying a mismatched PaymentPayload.resource URL. Attackers can pay for the cheapest SIWX-protected route while setting resource.url to an expensive route, then repeatedly access it using only a SIGN-IN-WITH-X header without further payment.
Published: 2026-10-20
Score: 6.9 Medium
EPSS: n/a
KEV: No
Impact: Authorization Bypass
Action: Immediate Patch
AI Analysis

Impact

The x402 Sign‑In‑With‑X (SIWX) server extension allows a client to unlock a route that is normally protected by payment when the client supplies a PaymentPayload.resource URL that does not match the route the client actually requests. This flaw lets a user pay only for a low‑cost route and then repeatedly access a more expensive route by including the mismatched resource URL. The impact is a financial loss from unauthorized use of paid content and a denial of the intended payment gating mechanism. The weakness is classified as CWE‑639, Access Control—Missing Authorization Check.

Affected Systems

Affected versions include the @x402/extensions package from v2.3.1 through v2.28.0, the x402 PyPI package from v2.11.0 through v2.25.0, and the Go module from v2.16.0 through v2.28.0, all maintained by the x402 Foundation. Any deployment using these packages and the SIWX extension is vulnerable unless the affected range is updated elsewhere.

Risk and Exploitability

The CVSS score of 6.9 indicates moderate severity due to the ability to bypass payment gating. EPSS data is not available, and the vulnerability is not listed in CISA’s KEV catalog. The likely attack vector is remote over the network, where an attacker can send an HTTP request with a SIGN‑IN‑WITH‑X header and a crafted PaymentPayload.resource URL to access an otherwise unpaid route. Exploitation requires only authentication as a paying client, making the flaw readily exploitable once the vulnerable extension is in use.

Generated by OpenCVE AI on October 20, 2026 at 17:16 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade x402 extensions, PyPI, or Go module to a version newer than the ranges listed
  • Validate that PaymentPayload.resource matches the route that the request targets before allowing access
  • Restrict use of the SIGN‑IN‑WITH‑X header to only requests that have already paid for the specified route

Generated by OpenCVE AI on October 20, 2026 at 17:16 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 20 Oct 2026 15:45:00 +0000

Type Values Removed Values Added
Description The x402 SIWX server extension in @x402/extensions 2.3.1 through 2.28.0, x402 PyPI 2.11.0 through 2.25.0, and Go module 2.16.0 through 2.28.0 contains an authorization bypass vulnerability that allows paying clients to unlock unpaid routes by supplying a mismatched PaymentPayload.resource URL. Attackers can pay for the cheapest SIWX-protected route while setting resource.url to an expensive route, then repeatedly access it using only a SIGN-IN-WITH-X header without further payment.
Title x402 @x402/extensions 2.3.1 through 2.28.0 SIWX Payment Bypass via PaymentPayload.resource
Weaknesses CWE-639
References
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N'}

cvssV4_0

{'score': 6.9, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-10-20T15:40:30.742Z

Reserved: 2026-10-20T11:48:49.343Z

Link: CVE-2026-113603

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-20T16:17:10.087

Modified: 2026-10-20T16:17:10.087

Link: CVE-2026-113603

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-20T17:30:13Z

Weaknesses
  • CWE-639

    Authorization Bypass Through User-Controlled Key