Skip to main content

Punk::OAuth2::Server EUVDEUVD-2026-64293

| CVE-2026-75866 CRITICAL
Missing Authorization (CWE-862)
2026-08-22 CPANSec GHSA-cjjx-w599-qf62
9.1
CVSS 3.1 · Vendor: CPANSec
Share

Severity by source

Vendor (CPANSec) PRIMARY
9.1 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
vuln.today AI
9.1 CRITICAL

Network token endpoint, deterministic trigger (AC:L); PR:N because secretless public clients authenticate on non-secret client_id alone; over-scoped tokens break confidentiality and integrity of protected resources (C:H/I:H), no availability impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

4
Analysis Generated
Aug 25, 2026 - 22:41 vuln.today
CVSS changed
Aug 25, 2026 - 20:22 NVD
9.1 (CRITICAL)
CVE Published
Aug 22, 2026 - 13:52 cve.org
CRITICAL 9.1
CVE Published
Aug 22, 2026 - 13:52 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

Punk::OAuth2::Server versions through 0.03 for Perl issue access tokens outside a client's registered scopes and grant types because no authorization path reads them.

Punk::OAuth2::Server::Store registers scopes and grant_types per client and documents both as client registration. token dispatches on the grant_type in the request body, so a client registered for authorization_code alone can ask for client_credentials, and that arm passes the requested scope straight to the minter, which signs it into the at+jwt access token. authorize copies the query scope into the authorization code record without comparing it against the registration, leaving the optional consent hook as the only check between an arbitrary scope and the issued code. redirect_uris on the same client row is read and enforced.

A registered client can obtain a correctly signed token carrying any scope it names, and a resource server running Punk::OAuth2::Checker accepts that token and honours the scope. A client registered without a secret authenticates on its client_id alone, so anyone who knows that identifier can request one.

AnalysisAI

Scope and grant-type escalation in the Punk::OAuth2::Server Perl module (through version 0.03) lets a registered OAuth2 client obtain correctly signed at+jwt access tokens carrying scopes and grant types it was never registered for. Because the token endpoint dispatches on the request-body grant_type and passes the requested scope straight to the token minter without checking it against the client's registration, and because authorize copies the query scope into the authorization-code record unchecked, any client can mint over-privileged tokens that a Punk::OAuth2::Checker resource server will accept and honour. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
Discover registered client_id on target server
Delivery
Send token request selecting client_credentials arm
Exploit
Name scope outside client registration
Execution
Server mints signed at+jwt with arbitrary scope
Persist
Present token to Punk::OAuth2::Checker resource server
Impact
Access protected resources beyond authorization

Vulnerability AssessmentAI

Exploitation Exploitation requires that the target run Punk::OAuth2::Server (through 0.03) as its authorization server with a resource server trusting its at+jwt tokens (e.g., via Punk::OAuth2::Checker). … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment The signals are mixed but lean toward a genuine authorization-integrity priority rather than a mass-exploitation emergency. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario An attacker who knows the client_id of a public (secretless) client registered on a Punk::OAuth2::Server deployment sends a token request to the client_credentials arm naming a high-privilege scope the client was never granted; the server signs an at+jwt token carrying that scope, and the attacker presents it to a Punk::OAuth2::Checker resource server, which honours the scope and grants the corresponding access. No public exploit code is currently identified, but the network-reachable, low-complexity vector (AV:N/AC:L) makes crafting one straightforward.
Remediation Vendor-released patch: upgrade the Punk-OAuth2 CPAN distribution to version 0.04 or later (see the changes at https://metacpan.org/release/LNATION/Punk-OAuth2-0.04/changes), which is the primary and complete fix. … Detailed patch versions, workarounds, and compensating controls in full report.

Recommended ActionAI

Within 24 hours, inventory all systems and applications using Punk::OAuth2::Server and assess their criticality and which protected resources they control. …

Sign in for detailed remediation steps and compensating controls.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

EUVD-2026-64293 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy