Skip to content

EEF-CVE-2026-82754 CVE-2026-82754 GHSA-wwxg-h779-3wf4

ash_authentication_oauth2_server aliases every protocol endpoint under /.well-known, bypassing path-scoped controls

Not rated yet Hex
Severity
0.0 / 10
Unknown · CVSS 4.0
Exploit chance (EPSS)
0.69%
Chance of exploitation in the next 30 days. Higher than 52.84% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-424 Improper Protection of Alternate Path
Fix
0.3.1
Upgrade ash_authentication_oauth2_server to this version or later

Description

Summary

Improper Protection of Alternate Path vulnerability in ash-project ash_authentication_oauth2_server exposes the state-changing OAuth endpoints under an unintended URL prefix, bypassing controls scoped to the canonical prefix.

oauth2_server_protocol_routes/1 in AshAuthentication.Phoenix.Oauth2Server.Router forwards the same ProtocolRouter at both the /oauth prefix and the /.well-known prefix. Phoenix forward strips the matched prefix before dispatch, so the full route table answers under both mounts, and POST /register, POST /token, and POST /revoke are reachable as /.well-known/register, /.well-known/token, and /.well-known/revoke. Edge controls such as WAF rules, rate limits, or authentication exemptions written against the /oauth paths, or that allow-list /.well-known as unauthenticated, do not apply to the alias.

This issue affects ash_authentication_oauth2_server: from 0.1.0 before 0.3.1.

Configurations

The routing alias is unconditional. Exploitable impact depends on the deployment applying path-scoped edge controls (WAF, rate limiting, auth-redirect exemptions) to the /oauth prefix, or allow-listing /.well-known as unauthenticated, that the alias then bypasses.

Affected versions

Hex

PackageVulnerableFixed in
ash_authentication_oauth2_server
>= 0.1.0, < 0.3.1
0.3.1

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

ash_authentication_oauth2_server Hex → 0.3.1

mix
{:ash_authentication_oauth2_server, "~> 0.3.1"} # then: mix deps.update ash_authentication_oauth2_server

Severity breakdown

CVSS 4.0 0.0

CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Attack vector
Network
Attack complexity
Low
Attack requirements
Present
Privileges required
None
User interaction
None
Confidentiality (vulnerable system)
None
Integrity (vulnerable system)
Low
Availability (vulnerable system)
None
Confidentiality (subsequent systems)
None
Integrity (subsequent systems)
None
Availability (subsequent systems)
None

Weakness

CWE-424: Improper Protection of Alternate Path

The product does not sufficiently protect all possible paths that a user can take to access restricted functionality or resources.

How to prevent it
  • Architecture and Design: Deploy different layers of protection to implement security in depth.

References

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy it's related
EEF-CVE-2026-82758
ash_authentication_oauth2_server treats an empty resolved secret as valid, opening the gated Dynamic Client Registration endpoint
Not rated yet Also affects ash_authentication_oauth2_server
EEF-CVE-2026-82757
ash_authentication_oauth2_server CIMD fetcher classifies IPv4-in-IPv6 and site-local addresses as public, allowing SSRF
Not rated yet Also affects ash_authentication_oauth2_server
EEF-CVE-2026-82756
ash_authentication_oauth2_server interpolates a tenant-derived value into the WWW-Authenticate challenge without escaping, allowing header parameter injection
Not rated yet Also affects ash_authentication_oauth2_server
EEF-CVE-2026-82755
ash_authentication_oauth2_server serves tenant-specific OAuth metadata as publicly cacheable without Vary, enabling cross-tenant confusion
Not rated yet Also affects ash_authentication_oauth2_server
EEF-CVE-2026-82753
Unauthenticated authorize requests create unbounded, never-expiring CIMD client rows and cache entries in ash_authentication_oauth2_server
Not rated yet Also affects ash_authentication_oauth2_server
EEF-CVE-2026-82586
AshLua read operation aggregate bypasses the exposed-field allow-list, exposing private attributes
Not rated yet Same weakness, CWE-424
GHSA-25gq-j9jx-43pg
Gitea: Release attachment extension allowlist bypass via web release edit form (variant of CVE-2025-68939)
Medium Same weakness, CWE-424
GHSA-263q-5cv3-xq9g
Gitea allows attackers to add attachments with forbidden file extensions
Medium Same weakness, CWE-424

Credits: Jonatan Männchen / EEF, Peter Ullrich, Zach Daniel / Ash Project

Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor