Description
Permissive Regular Expression vulnerability in ash-project ash_phoenix lets a remote client select the tenant an Ash application uses, or degrade the request, by sending a crafted Host header.

AshPhoenix.Helpers.get_subdomain/2 stripped the root domain with String.replace(host, ~r/.?#{root_host}/, ""). The root host was interpolated raw, so each . became a wildcard and any metacharacter a pattern, and the replace was global and unanchored, so a match was removed from anywhere in the string. With root_host example.com, Host: foo.exampleXcom.attacker.net returned the tenant foo.attacker.net. A metacharacter-bearing or nil root host degraded the pattern or raised on every request. The comparison was also case-sensitive, so TENANT.EXAMPLE.COM and EXAMPLE.COM slipped past the root-host allowlist. conn.host comes from the client Host header. The fix matches the root host case-insensitively and only as an exact trailing suffix.

This issue affects ash_phoenix: from 2.1.26 before 2.3.25.
Published: 2026-08-31
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Unauthorized tenant selection and request degradation via crafted Host header
Action: Immediate Patch
AI Analysis

Impact

The vulnerability stems from a permissive regular expression that removes the configured root domain from user input without proper escaping or anchoring. This allows a remote client to manipulate the Host header so that the application treats an unauthorized subdomain as the tenant. The flaw can also degrade normal requests or trigger errors when the root host contains metacharacters or is nil. The impact is that an attacker can gain access to data belonging to another tenant or disrupt tenant isolation, compromising confidentiality and availability for the affected tenants.

Affected Systems

ash-project ash_phoenix versions from 2.1.26 up to but not including 2.3.25 are affected. The specific product is the ash_phoenix framework, which is used to host multi‑tenant applications.

Risk and Exploitability

The CVSS score of 6.3 indicates moderate severity. No EPSS value is available, and the vulnerability is not listed in the CISA KEV catalog. Because the flaw is triggered by HTTP requests that include a crafted Host header, a remote attacker can exploit it over the public network without any authentication. The attack requires only the ability to send an HTTP request with a malicious Host field, which is typically trivial for an attacker who can reach the target. The exploit path is straightforward: send a Host header that contains a specially crafted domain that satisfies the vulnerable regular expression and receives a tenant context otherwise reserved for another tenant.

Generated by OpenCVE AI on August 31, 2026 at 04:50 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade ash_phoenix to version 2.3.25 or later to receive the fixed host‑header validation logic.
  • If an immediate upgrade is not possible, block or reject HTTP requests whose Host header contains non‑standard subdomains or does not match the expected root domain pattern.
  • Modify the application’s host‑validation code to perform a case‑insensitive comparison against the exact trailing suffix of the configured root domain, ensuring the pattern is anchored and that any metacharacters in the root are properly escaped.

Generated by OpenCVE AI on August 31, 2026 at 04:50 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 31 Aug 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 31 Aug 2026 03:30:00 +0000

Type Values Removed Values Added
Description Permissive Regular Expression vulnerability in ash-project ash_phoenix lets a remote client select the tenant an Ash application uses, or degrade the request, by sending a crafted Host header. AshPhoenix.Helpers.get_subdomain/2 stripped the root domain with String.replace(host, ~r/.?#{root_host}/, ""). The root host was interpolated raw, so each . became a wildcard and any metacharacter a pattern, and the replace was global and unanchored, so a match was removed from anywhere in the string. With root_host example.com, Host: foo.exampleXcom.attacker.net returned the tenant foo.attacker.net. A metacharacter-bearing or nil root host degraded the pattern or raised on every request. The comparison was also case-sensitive, so TENANT.EXAMPLE.COM and EXAMPLE.COM slipped past the root-host allowlist. conn.host comes from the client Host header. The fix matches the root host case-insensitively and only as an exact trailing suffix. This issue affects ash_phoenix: from 2.1.26 before 2.3.25.
Title AshPhoenix get_subdomain maps a crafted or differently-cased Host header to an arbitrary tenant
First Time appeared Ash-project
Ash-project ash Phoenix
Weaknesses CWE-178
CWE-625
CPEs cpe:2.3:a:ash-project:ash_phoenix:*:*:*:*:*:*:*:*
Vendors & Products Ash-project
Ash-project ash Phoenix
References
Metrics cvssV4_0

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


Subscriptions

Ash-project Ash Phoenix
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-08-31T14:47:35.274Z

Reserved: 2026-08-31T00:59:08.960Z

Link: CVE-2026-82726

cve-icon Vulnrichment

Updated: 2026-08-31T14:47:31.316Z

cve-icon NVD

Status : Deferred

Published: 2026-08-31T04:17:29.357

Modified: 2026-09-01T21:15:00.147

Link: CVE-2026-82726

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-31T21:22:07Z

Weaknesses
  • CWE-178

    Improper Handling of Case Sensitivity

  • CWE-625

    Permissive Regular Expression