{"containers":{"cna":{"affected":[{"collectionURL":"https://repo.hex.pm","cpes":["cpe:2.3:a:ash-project:ash_admin:*:*:*:*:*:*:*:*"],"defaultStatus":"unaffected","modules":["'Elixir.AshAdmin.Components.Resource.Form'"],"packageName":"ash_admin","packageURL":"pkg:hex/ash_admin","product":"ash_admin","programFiles":["lib/ash_admin/components/resource/form.ex"],"programRoutines":[{"name":"'Elixir.AshAdmin.Components.Resource.Form':consume_file_uploads/1"}],"repo":"https://github.com/ash-project/ash_admin","vendor":"ash-project","versions":[{"lessThan":"1.3.1","status":"affected","version":"0.13.7","versionType":"semver"}]},{"collectionURL":"https://github.com","cpes":["cpe:2.3:a:ash-project:ash_admin:*:*:*:*:*:*:*:*"],"defaultStatus":"unaffected","modules":["'Elixir.AshAdmin.Components.Resource.Form'"],"packageName":"ash-project/ash_admin","packageURL":"pkg:github/ash-project/ash_admin","product":"ash_admin","programFiles":["lib/ash_admin/components/resource/form.ex"],"programRoutines":[{"name":"'Elixir.AshAdmin.Components.Resource.Form':consume_file_uploads/1"}],"repo":"https://github.com/ash-project/ash_admin","vendor":"ash-project","versions":[{"lessThan":"4bb41cb697f3d9be58462d727aed75aba76efc82","status":"affected","version":"e8f496b6a064ad67dc1cd30433e5921d2192d254","versionType":"git"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:a:ash-project:ash_admin:*:*:*:*:*:*:*:*","versionEndExcluding":"1.3.1","versionStartIncluding":"0.13.7","vulnerable":true}],"negate":false,"operator":"OR"}],"operator":"AND"}],"credits":[{"lang":"en","type":"finder","value":"Peter Ullrich"},{"lang":"en","type":"reporter","value":"Peter Ullrich"},{"lang":"en","type":"remediation developer","value":"Zach Daniel / Ash Project"},{"lang":"en","type":"coordinator","value":"Jonatan Männchen / EEF"}],"descriptions":[{"lang":"en","supportingMedia":[{"base64":false,"type":"text/html","value":"<p>Improper Limitation of a Pathname to a Restricted Directory (Path Traversal) vulnerability in ash-project ash_admin allows writing attacker-controlled bytes to arbitrary paths on the server.</p>\n<p><code>AshAdmin.Components.Resource.Form.consume_file_uploads/1</code> builds the destination as <code>Path.join([tmp_dir, entry.client_name])</code> and writes it with <code>File.cp!/2</code>. <code>entry.client_name</code> is the browser-supplied filename and is not sanitized, and <code>Path.join/1</code> does not normalize <code>..</code>. An upload named <code>../../../../var/www/app/priv/static/x.png</code> therefore escapes the random temp directory and lands anywhere the BEAM user can write, enabling arbitrary file write and potentially remote code execution by overwriting application assets, configuration, or cron/ssh files. The only guard is an extension allowlist defaulting to <code>:any</code> that checks only the extension. The fix strips path components with <code>Path.basename/1</code> before joining.</p>\n<p>This issue affects ash_admin: from 0.13.7 before 1.3.1.</p>"},{"base64":false,"type":"text/markdown","value":"Improper Limitation of a Pathname to a Restricted Directory (Path Traversal) vulnerability in ash-project ash_admin allows writing attacker-controlled bytes to arbitrary paths on the server.\n\n`AshAdmin.Components.Resource.Form.consume_file_uploads/1` builds the destination as `Path.join([tmp_dir, entry.client_name])` and writes it with `File.cp!/2`. `entry.client_name` is the browser-supplied filename and is not sanitized, and `Path.join/1` does not normalize `..`. An upload named `../../../../var/www/app/priv/static/x.png` therefore escapes the random temp directory and lands anywhere the BEAM user can write, enabling arbitrary file write and potentially remote code execution by overwriting application assets, configuration, or cron/ssh files. The only guard is an extension allowlist defaulting to `:any` that checks only the extension. The fix strips path components with `Path.basename/1` before joining.\n\nThis issue affects ash_admin: from 0.13.7 before 1.3.1."}],"value":"Improper Limitation of a Pathname to a Restricted Directory (Path Traversal) vulnerability in ash-project ash_admin allows writing attacker-controlled bytes to arbitrary paths on the server.\n\nAshAdmin.Components.Resource.Form.consume_file_uploads/1 builds the destination as Path.join([tmp_dir, entry.client_name]) and writes it with File.cp!/2. entry.client_name is the browser-supplied filename and is not sanitized, and Path.join/1 does not normalize ... An upload named ../../../../var/www/app/priv/static/x.png therefore escapes the random temp directory and lands anywhere the BEAM user can write, enabling arbitrary file write and potentially remote code execution by overwriting application assets, configuration, or cron/ssh files. The only guard is an extension allowlist defaulting to :any that checks only the extension. The fix strips path components with Path.basename/1 before joining.\n\nThis issue affects ash_admin: from 0.13.7 before 1.3.1."}],"impacts":[{"capecId":"CAPEC-126","descriptions":[{"lang":"en","value":"CAPEC-126 Path Traversal"}]}],"metrics":[{"cvssV4_0":{"Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","Safety":"NOT_DEFINED","attackComplexity":"LOW","attackRequirements":"NONE","attackVector":"NETWORK","baseScore":8.3,"baseSeverity":"HIGH","privilegesRequired":"LOW","providerUrgency":"NOT_DEFINED","subAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"HIGH","userInteraction":"NONE","valueDensity":"NOT_DEFINED","vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:H/SA:N","version":"4.0","vulnAvailabilityImpact":"NONE","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"HIGH","vulnerabilityResponseEffort":"NOT_DEFINED"},"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-22","description":"CWE-22 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-08-31T02:33:10.967Z","orgId":"6b3ad84c-e1a6-4bf7-a703-f496b71e49db","shortName":"EEF"},"references":[{"tags":["vendor-advisory","related"],"url":"https://github.com/ash-project/ash_admin/security/advisories/GHSA-483p-rgcq-p5j9"},{"tags":["related"],"url":"https://cna.erlef.org/cves/CVE-2026-82673.html"},{"tags":["related"],"url":"https://osv.dev/vulnerability/EEF-CVE-2026-82673"},{"tags":["patch"],"url":"https://github.com/ash-project/ash_admin/commit/4bb41cb697f3d9be58462d727aed75aba76efc82"}],"source":{"discovery":"EXTERNAL"},"title":"Path traversal in AshAdmin file uploads via unsanitized client filename"}},"cveMetadata":{"assignerOrgId":"6b3ad84c-e1a6-4bf7-a703-f496b71e49db","assignerShortName":"EEF","cveId":"CVE-2026-82673","datePublished":"2026-08-31T02:33:10.967Z","dateReserved":"2026-08-30T23:15:02.381Z","dateUpdated":"2026-08-31T02:33:10.967Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"}