CVE-2026-81853

Source
https://cve.org/CVERecord?id=CVE-2026-81853
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-81853.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-81853
Aliases
Published
2026-08-31T02:31:29Z
Modified
2026-09-03T03:30:23Z
Severity
  • 2.3 (Low) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N CVSS Calculator
Summary
AshAdmin composite primary key decoding accepts arbitrary fields, enabling a secret-attribute oracle
Details

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/2 decodes 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 :safe still 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/1 also 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.

Database specific
{
    "cna_assigner": "EEF",
    "cwe_ids": [
        "CWE-639"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/81xxx/CVE-2026-81853.json",
    "unresolved_ranges": [
        {
            "extracted_events": [
                {
                    "introduced": "98b03baa8422b94dd13e305bf08b8ee3f7232c7b"
                },
                {
                    "fixed": "3c3e905d47f1155dcc1ca3fb347348b05a66065a"
                }
            ],
            "source": "AFFECTED_FIELD"
        }
    ]
}
References

Affected packages

Git / github.com/ash-project/ash_admin

Affected ranges

Type
GIT
Repo
https://github.com/ash-project/ash_admin
Events
Database specific
Show details
{
    "extracted_events": [
        {
            "introduced": "0.1.0"
        },
        {
            "fixed": "1.3.1"
        }
    ],
    "source": [
        "DESCRIPTION",
        "REFERENCES"
    ]
}

Affected versions

v0.*
v0.1.0
v0.1.1
v0.1.2
v0.1.3
v0.1.4
v0.1.5
v0.1.6
v0.10.0
v0.10.1
v0.10.10
v0.10.10-rc.0
v0.10.10-rc.1
v0.10.2
v0.10.3
v0.10.4
v0.10.5
v0.10.6
v0.10.7
v0.10.8
v0.10.9
v0.11.1
v0.11.10
v0.11.11
v0.11.2
v0.11.3
v0.11.4
v0.11.6
v0.11.7
v0.11.8
v0.11.9
v0.12.0
v0.12.1
v0.12.2
v0.12.3
v0.12.4
v0.12.5
v0.12.6
v0.13.0
v0.13.10
v0.13.11
v0.13.12
v0.13.13
v0.13.14
v0.13.15
v0.13.16
v0.13.17
v0.13.18
v0.13.19
v0.13.2
v0.13.20
v0.13.21
v0.13.22
v0.13.23
v0.13.24
v0.13.25
v0.13.26
v0.13.3
v0.13.4
v0.13.5
v0.13.6
v0.13.7
v0.13.8
v0.13.9
v0.14.0
v0.2.0
v0.2.1
v0.2.10
v0.2.11
v0.2.12
v0.2.13
v0.2.14
v0.2.15
v0.2.16-rc.0
v0.2.16-rc.1
v0.2.17
v0.2.18
v0.2.19
v0.2.2
v0.2.20
v0.2.21
v0.2.22
v0.2.3
v0.2.4
v0.2.5
v0.2.6
v0.2.7
v0.2.8
v0.2.9
v0.3.0-rc.0
v0.4.0
v0.4.1
v0.4.2
v0.4.3
v0.4.4
v0.4.5-rc.0
v0.5.0
v0.5.1-rc.0
v0.5.2
v0.6.0-rc.0
v0.6.0-rc.1
v0.6.0-rc.2
v0.6.1
v0.6.2
v0.7.0
v0.7.1
v0.8.0
v0.8.1
v0.8.2
v0.9.0
v0.9.1
v0.9.2
v0.9.4
v0.9.5
v0.9.6
v0.9.7
v0.9.8
v1.*
v1.1.0
v1.2.0
v1.3.0

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-81853.json"