Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister/control OAuth2 client with attacker-controlled metadata URL
-
DeliveryConfigure DNS to return crafted AAAA record (e.g., ::127.0.0.1)
-
ExploitServer calls public_ip?/1, which misclassifies address as public
-
ExecutionServer fetches metadata URL, connecting to loopback or internal address
-
ImpactRead response from internal service or cloud metadata endpoint
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires two specific preconditions: (1) the attacker must be able to supply or influence an OAuth2 client's metadata URL - either by registering a new client if dynamic registration is open, or by compromising an existing client registration - because the vulnerability is only triggered during CIMD metadata fetches; and (2) the attacker must control DNS resolution for the metadata URL hostname to serve a crafted AAAA record in the ::/96, ::ffff:0:0:0/96, or fec0::/10 IPv6 ranges. Deployments that do not use CIMD (i.e., do not fetch dynamic client metadata from external URLs) are not affected. The CVSS 4.0 subsequent-system impact of SC:L (and VC:N/VI:N/VA:N) indicates the primary risk is probing adjacent internal services, not direct compromise of the vulnerable host itself. |
| Impact | The vendor-supplied CVSS 4.0 score of 6.3 (AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N) accurately captures the threat profile. AT:P reflects the specific preconditions required - the attacker must control both an OAuth2 client metadata URL and DNS for that domain - which materially constrains opportunistic exploitation. Impact is limited to probing internal services reachable from the application server (SC:L); the vulnerable system's own confidentiality and integrity are not directly compromised. The most dangerous reachable target is a cloud instance metadata endpoint (e.g., 169.254.254.169 reachable as ::169.254.169.254), which could yield cloud credentials. No CISA KEV listing exists and no public POC code has been identified, suggesting this has not seen widespread in-the-wild exploitation. EPSS data is absent from the provided intelligence. Overall this is a real but constrained vulnerability whose practical risk is highest in cloud-hosted deployments where the instance metadata service is accessible. |
| Exploit ScenarioDerived | An attacker registers an OAuth2 client (or modifies an existing registration) pointing its CIMD metadata URL to an attacker-controlled hostname, then configures a DNS server to return an AAAA record of ::127.0.0.1 or ::169.254.169.254 for that hostname. When ash_authentication_oauth2_server fetches the client metadata, public_ip?/1 evaluates the ::/96 address as public and proceeds with the connection, reaching the loopback interface or the cloud instance metadata service, potentially disclosing IAM credentials or other internal service responses. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 07, 2026
SSRF in ash_authentication_oauth2_server 0.3.0 allows an attacker who controls both an OAuth2 client's metadata URL and the associated DNS resolution to route the server's outbound CIMD metadata fetches to loopback, link-local, or internal addresses. The public_ip?/1 guard in AshAuthentication.Oauth2Server.CIMD.ReqFetcher failed to classify three IPv6 address families as private - IPv4-compatible ::/96 (e.g., ::127.0.0.1), SIIT IPv4-translated ::ffff:0:0:0/96, and deprecated site-local fec0::/10 - so a crafted DNS AAAA response in any of these ranges bypassed the policy. No public exploit has been identified at time of analysis; vendor patch released in version 0.3.1.
RemediationAI
Upgrade ash_authentication_oauth2_server to version 0.3.1, which includes fix commit 268b591261a3473ab9b87272963e4dd2fd99d972 correcting the IPv6 address classification logic. The upstream fix is confirmed at https://github.com/ash-project/ash_authentication_oauth2_server/commit/268b591261a3473ab9b87272963e4dd2fd99d972 and the advisory is at https://github.com/ash-project/ash_authentication_oauth2_server/security/advisories/GHSA-wprp-8gvj-p6cv. If immediate upgrade is not feasible, compensating controls include: (1) allowlisting permitted OAuth2 client metadata URL domains at the application layer to prevent attacker-controlled URLs from being accepted - note this may restrict dynamic client registration; (2) applying network-level egress filtering on the application server to block outbound connections to loopback (127.0.0.0/8, ::1), link-local (169.254.0.0/16, fe80::/10), site-local (fec0::/10), and RFC 1918 ranges, which would block the SSRF payload reaching internal targets regardless of the library bug.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ash_authentication_oauth2_server is an Elixir library (ash-project) implementing an OAuth2 authorization server on the Ash Framework. Its CIMD (Client Initiated Metadata Discovery) subsystem fetches client metadata from externally supplied URLs and relies on public_ip?/1 in ReqFetcher to prevent fetches to non-public addresses (CWE-918). The original implementation checked for the unspecified address (::) and loopback (::1) individually, but did not recurse into the embedded IPv4 portion of IPv4-compatible addresses (::/96 prefix), nor handle the SIIT-translated form (::ffff:0:0:0/96, distinct from the more common ::ffff:0:0/96 mapped range). Additionally, the site-local range fec0::/10 was not blocked because the bit-mask for link-local detection used 0xFFC0 instead of 0xFF80, missing the overlapping fec0-feff block. The fix (commit 268b591) corrects all three by recursively delegating to the IPv4 policy for the two embedded-IPv4 forms and widening the link-local/site-local mask. CPE: cpe:2.3:a:ash-project:ash_authentication_oauth2_server:*:*:*:*:*:*:*:*.
Know when Ash Authentication Oauth2 Server gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N
DNS control requirement raises AC to H; SSRF reaches other systems (S:C); only subsequent confidentiality probing (C:L), no integrity or availability impact.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Server-Side Request Forgery (SSRF) vulnerability in ash-project ash_authentication_oauth2_server allows an attacker who controls a client metadata URL and its DNS to make the server connect to internal or loopback addresses.
public_ip?/1 in AshAuthentication.Oauth2Server.CIMD.ReqFetcher enforces the outbound policy for CIMD metadata fetches. It classified several address forms as publicly routable that are not: IPv4-compatible ::/96 (for example ::127.0.0.1), SIIT IPv4-translated ::ffff:0:0:0/96, and deprecated site-local fec0::/10. A returned AAAA record in one of these ranges passed the policy, so a fetch pinned to that address reached space the policy was meant to block.
This issue affects ash_authentication_oauth2_server: from 0.3.0 before 0.3.1.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
Unauthenticated resource exhaustion in ash_authentication_oauth2_server 0.3.0 enables any remote attacker to grow databa
OAuth2 state-changing protocol endpoints in ash_authentication_oauth2_server (versions 0.1.0 through 0.3.0) are silently
Dynamic Client Registration (DCR) bypass in ash_authentication_oauth2_server versions 0.1.0 through 0.3.0 allows unauthe
WWW-Authenticate header parameter injection in ash_authentication_oauth2_server (versions 0.1.3 through 0.3.0) allows un
Multi-tenant OAuth2 metadata cross-tenant leakage in ash_authentication_oauth2_server (versions 0.1.3 through before 0.3
EUVD-2026-72539
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB