chore(deps): update dependency ash_admin to v1.3.1 [security] #581
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
high priority
invalid
L
low priority
M
medium priority
needs refinement
optional
question
S
security
technical improvement
UX Improvement
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
local-it/mitgliederverwaltung!581
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "renovate/hex-ash_admin-vulnerability"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
1.1.0→1.3.1AshAdmin cookie reader matches names by substring, enabling actor/session shadowing from a sibling subdomain
CVE-2026-75757 / EEF-CVE-2026-75757 / GHSA-3259-55fp-w94j
More information
Details
Summary
Reliance on Cookies without Validation and Integrity Checking vulnerability in ash-project ash_admin lets an attacker who controls a sibling subdomain rebind an admin's session to a different actor, tenant, or authorization mode.
AshAdmin's client JavaScript read its state cookies (
tenant,actor_resource,actor_primary_key,actor_action,actor_domain,actor_authorizing,actor_paused) by matching the cookie name with an unanchored regular expression (new RegExp(name + "=([^;]+)")) against the wholedocument.cookie. Any cookie whose name merely ends with the requested name therefore matches, and whichever is serialized first wins. Because cookies are shared across a registrable domain, a compromised sibling subdomain can set a shadowing cookie (for examplexactor_authorizing) withDomain=.example.comthat flows unvalidated into the admin's LiveSocket connect params. The fix matches cookie names by exact equality.This issue affects ash_admin: from 0.9.1 before 1.3.1.
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by OSV.
Stored XSS in AshAdmin relationship typeahead via unescaped label_field content
CVE-2026-77850 / EEF-CVE-2026-77850 / GHSA-m23x-576h-73w8
More information
Details
Summary
Stored Cross-site Scripting vulnerability in ash-project ash_admin executes attacker-supplied record content as script in an administrator's browser.
The relationship typeahead components
AshAdmin.Components.Resource.RelationshipFieldandAshAdmin.Components.Resource.ManagedRelationshipSelectFieldhighlight the matched search term by wrapping it in<b>tags and rendering the whole string withPhoenix.HTML.raw/1. The highlighted value is the destination record'slabel_field, ordinary database content that is often written by lower-privileged users. Becauseraw/1disables output escaping for the entire string, a stored label such as<img src=x onerror=...>runs as JavaScript in the admin's session as soon as a matching record appears in the dropdown, giving the attacker the admin's privileges over everything AshAdmin exposes. The fix HTML-escapes the label before inserting the highlight markup.This issue affects ash_admin: from 0.13.0 before 1.3.1.
Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by OSV.
AshAdmin ships a hardcoded CSP nonce, allowing nonce-based CSP bypass
CVE-2026-81852 / EEF-CVE-2026-81852 / GHSA-whfj-rrrp-j597
More information
Details
Summary
Use of Insufficiently Random Values vulnerability in ash-project ash_admin ships a hardcoded, publicly known CSP nonce, defeating nonce-based Content-Security-Policy protection.
When mounted without
:csp_nonce_assign_key,AshAdmin.Router.ash_admin/2defaulted the img, style, and script nonces to the literal constantash_admin-Ed55GFnX, whichAshAdmin.Layoutswrote verbatim into thenonceattribute of its inline<style>and<script>tags on every response. The value is a compile-time constant published in the repository and is never rotated per request. If an application's CSPscript-srcallow-lists that documented default, any HTML-injection sink on an admin page can reuse the known nonce to run inline scripts the policy was meant to block. The fix generates a fresh random nonce per request.This issue affects ash_admin: from 0.10.8 before 1.3.1.
Configurations
The application mounts AshAdmin without
:csp_nonce_assign_keyand enforces a nonce-based CSP whosescript-srcallow-lists the defaultash_admin-Ed55GFnXvalue, and has a separate HTML-injection sink on an admin page.Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:L/VI:L/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by OSV.
AshAdmin composite primary key decoding accepts arbitrary fields, enabling a secret-attribute oracle
CVE-2026-81853 / EEF-CVE-2026-81853 / GHSA-jxr8-hpv2-qp38
More information
Details
Summary
Authorization Bypass Through User-Controlled Key vulnerability in ash-project ash_admin turns a record-lookup URL into an equality oracle over sensitive attributes.
AshAdmin.Helpers.decode_primary_key/2decodes the composite-primary-key form (Base64 plus ETF) and returns the decoded map verbatim as the lookup filter, without checking that its keys are the resource's primary-key fields. The deserialization guards bound size, block new atoms and funs, and reject nested expressions, but none restricts which fields come back, and:safestill allows any already-interned attribute name. An attacker can therefore encode%{api_token: "guess"}and have it spliced into the lookup filter, brute-forcing a sensitive attribute value (API token, reset token) one equality guess at a time;Map.to_list/1also accepts structs, yielding a bogus__struct__key. The fix rejects any decoded key that is not a real primary-key field.This issue affects ash_admin: from 0.1.0 before 1.3.1.
Configurations
The resource has a composite primary key, and the deployment relies on AshAdmin's authorization (a custom actor plug and policies) so that reading otherwise-restricted attribute values crosses a boundary.
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by OSV.
Path traversal in AshAdmin file uploads via unsanitized client filename
CVE-2026-82673 / EEF-CVE-2026-82673 / GHSA-483p-rgcq-p5j9
More information
Details
Summary
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.
AshAdmin.Components.Resource.Form.consume_file_uploads/1builds the destination asPath.join([tmp_dir, entry.client_name])and writes it withFile.cp!/2.entry.client_nameis the browser-supplied filename and is not sanitized, andPath.join/1does not normalize... An upload named../../../../var/www/app/priv/static/x.pngtherefore 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:anythat checks only the extension. The fix strips path components withPath.basename/1before joining.This issue affects ash_admin: from 0.13.7 before 1.3.1.
Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:H/SA:NReferences
This data is provided by OSV.
Query-parameter injection in AshAdmin row-action links via unencoded string primary keys
CVE-2026-82681 / EEF-CVE-2026-82681 / GHSA-j89q-xjrh-c26p
More information
Details
Summary
Improper Encoding or Escaping of Output vulnerability in ash-project ash_admin lets an attacker who controls a record's string primary key rewrite the target of AshAdmin's row-action links.
The
Table,DataTable, andShowcomponents built row-action URLs by raw string interpolation, splicing the primary key (and table, domain, and resource names) into the query string without URL-encoding. Ash resources routinely use user-settable string primary keys (slugs, emails). BecausePlug.Conn.Queryresolves duplicate parameters last-wins andprimary_keyis interpolated last, a stored key such asfoo&action_type=destroyinjects parameters that override the link, so an admin clickingeditis sent to a destroy form or an arbitrary resource; a#truncates the query into a fragment. The fix builds every link withURI.encode_query/1, encoding all interpolated values.This issue affects ash_admin: from 0.3.0-rc.0 before 1.3.1.
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:A/VC:N/VI:L/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by OSV.
AshAdmin LiveView events intern atoms from client input, exhausting the atom table (node DoS)
CVE-2026-82722 / EEF-CVE-2026-82722 / GHSA-wcr6-9rrw-5jhv
More information
Details
Summary
Allocation of Resources Without Limits or Throttling vulnerability in ash-project ash_admin lets any client that can reach the admin LiveView exhaust the BEAM atom table and crash the entire node.
Two LiveView event handlers interned atoms from unvalidated client input:
AshAdmin.PageLive'sset_actorbuilt modules from theresource/domainpayload withModule.concat/1, andAshAdmin.Components.Resource.Show'scalculateconverted every submitted form key withString.to_atom/1. Atoms are never garbage collected and the table is capped, so flooding either event with random names mints a new atom per request until the VM aborts, taking down every application on the node. The fix resolves the submittedresource/domainagainst the known shown resources and maps calculation keys to declared arguments, so no client-supplied string is interned.This issue affects ash_admin: from 0.1.0 before 1.3.1.
Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:HReferences
This data is provided by OSV.
Release Notes
ash-project/ash_admin (ash_admin)
v1.3.1Compare Source
Bug Fixes:
match admin session cookies by exact name (cookie shadowing) (CVE-2026-75757) by Zach Daniel
generate a per-request CSP nonce instead of a published constant (CVE-2026-81852) by Zach Daniel
reject non-primary-key fields when decoding composite primary keys (filter oracle) (CVE-2026-81853) by Zach Daniel
strip path components from uploaded file names (path traversal) (CVE-2026-82673) by Zach Daniel
URL-encode admin row-action link parameters (query-parameter injection) (CVE-2026-82681) by Zach Daniel
HTML-escape relationship typeahead labels before highlighting (stored XSS) (CVE-2026-77850) by Zach Daniel
don't intern atoms from client input in set_actor and calculate events (CVE-2026-82722) by Zach Daniel
constrain the admin actor picker to resources marked as actors by Zach Daniel
parse TypedStruct as map in forms for update actions by Amish Patel
handle nil values when rendering AshTypedStructures by Guilherme Bordallo
v1.3.0Compare Source
Features:
Bug Fixes:
apply the ash binary issue fix to ash_admin as well by Zach Daniel
pass actor, authorize?, and tenant in RelationshipField reads by Alec Hartung
v1.2.0Compare Source
Features:
Bug Fixes:
support tenant option labels (#406) by Jakub Skałecki
Ensure mobile and desktiop sidebar ids are unique (#404) by capoccias
update for LV 1.2.0 by Zach Daniel
format array attribtues in ash_admin by Zach Daniel
Improvements:
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.
9ce6e94d7b5c602594be5c602594be1d7ce095e81d7ce095e853cb03fe5c53cb03fe5c80256bf8cf