{"answers":{"affected":"1 open source package ship an affected version, including ash.","exploited":"It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-82748 exists.","fix":"Upgrade ash to 3.32.2 or later.","what":"CVE-2026-82748 is a low-severity missing authorization vulnerability in ash-project ash, published on 1 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-82748 and fix it if it is affected.\n\nWhat it is: CVE-2026-82748 is a low-severity missing authorization vulnerability in ash-project ash, published on 1 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim.\nExploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-82748 exists.\n\nAffected packages and fixed versions:\n- ash (Hex): affected from 3.5.13; fixed in 3.32.2\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-82748/ (Markdown: https://insights.sbomify.com/CVE-2026-82748/index.md)","id":"CVE-2026-82748","markdown":"https://insights.sbomify.com/CVE-2026-82748/index.md","name":"CVE-2026-82748","record":{"aliases":["EEF-CVE-2026-82748","GHSA-g5hp-mghm-3mgp"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["data_read"],"network_reachable":"adjacent_or_local","non_default_config":false,"product_category":"Elixir Ash library","requires_auth":"none","summary":"Attackers can bypass read policies to disclose aggregate data they are not authorized to view by exploiting a mismatch between authorization and query execution actions.","user_interaction":"not_required","vuln_class":"missing_authorization"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"EEF","cpe":[],"cvss":{"score":2.1,"severity":"low","source":"cna","vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N","version":"4.0"},"cwes":[{"id":"CWE-863","name":"Incorrect Authorization"}],"description":"Incorrect Authorization vulnerability in ash-project ash authorizes an aggregate under one read action while computing it under another, so an aggregate can run with policies that do not match the action it was authorized against.\n\nAsh.Actions.Aggregate groups aggregates by their {authorize?, read_action} and authorizes each group under that read action, but when building the data query it selected the action as opts[:action] || read_action || \u003cprimary read\u003e (lib/ash/actions/aggregate.ex). When a caller passed an :action option, the aggregate query ran under that action while authorization had been computed for the group's own read_action. If the run action's read policies are more permissive than the authorized one, the aggregate (a count or sum) is computed over records the authorized action's policies would have excluded, disclosing information about data the actor cannot read. The fix runs the aggregate under the same read_action it is authorized against.\n\nThis issue affects ash: from 3.5.13 before 3.32.2.","ecosystems":["Hex"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"weaponised"},"has_fix":true,"headline":"Ash.Actions.Aggregate authorizes an aggregate under one action but computes it under another","id":"CVE-2026-82748","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"Hex","product":null,"products":[],"type":"missing_authorization","year":"2026"},"n_packages":1,"n_references":4,"next":{"headline":"Missing authorization in ash","id":"CVE-2026-82749"},"packages":[{"ecosystem":"Hex","fixed":["3.32.2"],"introduced":["3.5.13"],"last_affected":[],"package":"ash","purl":"pkg:hex/ash","source":"EEF-CVE-2026-82748"}],"prev":{"headline":"Ash.Policy.Authorizer returns records denied by a runtime read policy to any actor","id":"CVE-2026-82747"},"products":["ash"],"published":"2026-09-01","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"Erlang Ecosystem Foundation","prefix":"EEF"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"poc","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-09-01","vendors":["ash-project"]},"summary":"Attackers can bypass read policies to disclose aggregate data they are not authorized to view by exploiting a mismatch between authorization and query execution actions.","url":"https://insights.sbomify.com/CVE-2026-82748/"}