CVE-2026-82673: ash-project ash_admin path traversal in file upload

CVE-2026-82673 · Severity: info · CVSS 8.2 · Published 2026-08-31

ash_admin is a web administration component used to manage Phoenix/Elixir applications. An attacker can upload files with specially crafted names (e.g., "../../../../var/www/app/config.txt") to bypass directory restrictions and write arbitrary files to the server, potentially leading to remote code execution by overwriting application files, configuration, or system scripts.

Technologies: Ash-Project Ash Admin. Vendors: Ash-Project.

Quick answers

Is CVE-2026-82673 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-82673 being exploited in the wild.
How severe is CVE-2026-82673?
Informational severity, with a CVSS score of 8.2, published 31 August 2026.
Which products and versions are affected?
Ash-Project Ash Admin 0.13.7 before 1.3.1.
Is there a fix for CVE-2026-82673?
A patch was published on 2026-08-31: fix available in 1.3.1 Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-82673 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-82673?
Check whether you run Ash-Project Ash Admin at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

The vulnerability is a path traversal (CWE-22) in the file upload handler. The vulnerable code in AshAdmin.Components.Resource.Form.consume_file_uploads/1 uses Path.join([tmp_dir, entry.client_name]) to build the destination path without sanitizing the user-supplied filename (entry.client_name). The Path.join/1 function does not normalize path traversal sequences like "..", allowing an attacker to escape the temporary directory. An upload named "../../../../var/www/app/priv/static/x.png" can land in arbitrary writable locations. The only existing guard is an extension allowlist that checks only the file extension, which is insufficient. The fix applies Path.basename/1 to strip path components before joining.

Affected products

  • ash-project ash_admin 0.13.7 before 1.3.1

Timeline

  • 2026-08-31: disclosed
  • 2026-08-31: patched: fix available in 1.3.1

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.