Skip to content
OpenAdvisories

Package · Hex

ash

31 known vulnerabilities.

15 results · Clear filters · Feed

  • Medium 6.0

    Loading a through relationship with a limit of 1 in Ash ignores the through path and returns unrelated destination records

    Incorrect Authorization vulnerability in ash-project ash allows a client to read destination records unrelated to the source record through a through relationship. When a has_many relationship declared with through: was loaded for a single record with a limit…

  • Medium 6.0

    Ash.count, Ash.exists and Ash.aggregate skip related resources' read policies in filters and sorts

    Incorrect Authorization vulnerability in ash-project ash allows an actor to infer data in related records they cannot read via Ash.count/2, Ash.exists/2 and Ash.aggregate/3. Ash.Actions.Aggregate.run/4 (lib/ash/actions/aggregate.ex) applied only the root reso…

  • Medium 5.9

    Private action arguments can be set by user input on the bulk destroy and bulk update paths in Ash

    Improperly Controlled Modification of Dynamically-Determined Object Attributes vulnerability in ash-project ash allows a user to set the value of a private action argument on the bulk destroy and bulk update paths. Action arguments declared with public?: fals…

  • Medium 6.0

    Ash field policies do not filter-nil forbidden calculations and aggregates, enabling an information-disclosure oracle

    Ash field_policies are documented to protect against filter-based information disclosure: when a field the actor may not see is referenced in a filter, it is replaced with an expression that evaluates to nil, so a filter cannot be used as a yes/no oracle to r…

  • Medium 5.9

    Ash string length constraints count graphemes, so a combining-mark string of any size passes max_length

    Improper Validation of Specified Quantity in Input vulnerability in ash-project ash allows an attacker to store a value of arbitrary size in an attribute whose length constraint should bound it. Ash measures string length with Elixir's String.length/1, which …

  • Medium 5.9

    Ash.Policy.Authorizer returns records denied by a runtime read policy to any actor

    Incorrect Authorization vulnerability in ash-project ash returns records that a runtime read policy denies to any actor. When a resource has an access_type :runtime read policy (a check evaluated per record rather than compiled to a filter), Ash.Policy.Author…

  • Medium 5.9

    Ash relationship parent(...) filter degrades to an IS NULL match when the parent field is unresolved, leaking scoped records

    Incorrect Authorization vulnerability in ash-project ash widens a relationship's parent(...) scoping filter to match unintended records when the referenced parent field cannot be resolved. Loading a relationship whose filter references parent(...) resolves th…

  • Medium 5.9

    Ash.update_many/4 atomic path skips resource policy authorization, allowing updates to forbidden records

    Missing Authorization vulnerability in ash-project ash allows an actor to update records forbidden by resource policies through the atomic path of Ash.update_many/4. Ash.update_many/4 runs as a single atomic statement (a data-layer update_many, for example a …

  • Medium 5.9

    ETS and Mnesia data layers overwrite an existing record on create instead of enforcing primary-key uniqueness

    Improper Access Control vulnerability in ash-project ash lets a create action overwrite an existing record when the ETS or Mnesia data layer is used, because neither enforced primary-key uniqueness on insert. Unlike a SQL data layer, whose unique primary-key …

  • Medium 5.9

    Ash.Filter.Runtime materializes a combinatorial cross-product over to-many relationships, exhausting memory

    Uncontrolled Resource Consumption vulnerability in ash-project ash lets an attacker exhaust node memory by matching a filter that spans multiple to-many relationships in memory. Ash.Filter.Runtime matches a filter against an in-memory record by first expandin…

  • Medium 5.9

    Ash.Type.UUIDv7 accepts non-v7 UUIDs that then fail to load, causing persistent denial of service

    Improper Input Validation vulnerability in ash-project ash allows an attacker to persistently deny reads of a record by storing a non-version-7 UUID in an Ash.Type.UUIDv7 attribute. Ash.Type.UUIDv7.cast_input/2 accepts any well-formed UUID string, including n…

  • Medium 5.9

    Ash.Vector wraps the 16-bit dimension header for vectors over 65,535 elements, corrupting data and crashing reads

    Integer Overflow or Wraparound vulnerability in ash-project ash lets an attacker corrupt a stored vector and crash later reads of it by submitting a vector with more than 65,535 elements. Ash.Vector.new/1 (lib/ash/vector.ex) encodes a vector as <<dim::unsigne…

  • Medium 5.9

    Match regex runs on over-length input in Ash.Type.String, enabling regex denial of service

    Uncontrolled Resource Consumption vulnerability in ash-project ash allows an attacker to force an expensive regular expression to run on input that a length constraint should have already rejected. Ash.Type.String.apply_constraints/2 (lib/ash/type/string.ex) …

  • Medium 5.9

    Memory exhaustion via unbounded deserialization of keyset pagination cursors in Ash.Page.Keyset

    Uncontrolled Resource Consumption vulnerability in ash-project ash allows an attacker to exhaust the memory of the node via a crafted keyset pagination cursor. Read actions with keyset pagination deserialize the client-supplied page[:after] or page[:before] c…

  • Medium 5.9

    Private action arguments can be set by user input in Ash

    Improperly Controlled Modification of Dynamically-Determined Object Attributes vulnerability in ash-project ash allows a user to set the value of a private action argument that is intended to be controlled only by trusted server-side code. Action arguments de…