Skip to content
OpenAdvisories

Package · Hex

ash

31 known vulnerabilities.

31 results · Feed

  • High 7.6

    An upsert on the primary key in Ash ignores attribute multitenancy, so one tenant can read, overwrite and take over another tenant's records

    Authorization Bypass Through User-Controlled Key vulnerability in ash-project ash allows a user of one tenant to read, overwrite and take over another tenant's records via an upserting create action. Under attribute multitenancy, Ash.Actions.Create (lib/ash/a…

  • 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…

  • High 8.2

    Filtering an :atom attribute with unsafe_to_atom? can exhaust the BEAM atom table in Ash

    Ash stores :atom-typed attributes as strings and compares them as strings. When such an attribute is referenced in a filter, the comparison value is coerced through Ash.Type.Atom. Because the type defined no coerce/2 callback, coercion fell back to the defaul…

  • 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…

  • Low 2.1

    Ash.Actions.Aggregate authorizes an aggregate under one action but computes it under another

    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. Ash.Actions.Aggregate groups…

  • 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 …

  • Low 2.1

    Ash.Reactor change step fails open, skipping a change when its where guard raises

    Not Failing Securely (Failing Open) vulnerability in ash-project ash skips an Ash.Reactor change when the guard controlling it raises, so a change meant to run does not. An Ash.Reactor change step can be gated by where validations that decide whether the chan…

  • Low 2.1

    Ash.Actions.Read.AsyncLimiter busy-spins a scheduler while awaiting slow async reads

    Uncontrolled Resource Consumption vulnerability in ash-project ash lets a slow asynchronous read spin a scheduler thread at full CPU while the framework waits for it. Ash.Actions.Read.AsyncLimiter.await_at_least_one/1 (lib/ash/actions/read/async_limiter.ex) w…

  • 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…

  • Low 2.1

    Ash.Type.Union with :map_with_tag does not force the tag on dump, enabling tag confusion

    Improper Validation of Specified Type of Input vulnerability in ash-project ash lets an attacker confuse the stored type tag of an Ash.Type.Union value that uses storage: :map_with_tag, bypassing that member's validation and any tag-based authorization. For a…

  • Low 2.1

    Ash.Type ignores outer array constraints on nested {:array, {:array, type}} inputs

    Improper Input Validation vulnerability in ash-project ash fails to enforce the outer array constraints on a doubly-nested {:array, {:array, type}} attribute, letting invalid input pass validation. Ash.Type.apply_constraints/3 (lib/ash/type/type.ex) handled t…

  • Low 2.1

    Ash.Resource.Validation.Confirm leaks a confirmed field's stored value in the atomic mismatch error

    Generation of Error Message Containing Sensitive Information vulnerability in ash-project ash discloses the stored value of a confirmed field to an actor who fails its confirmation check. Ash.Resource.Validation.Confirm's atomic implementation (atomic/2 in li…

  • 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…

  • Low 2.1

    Ash.Type.CiString validates length and match constraints before case folding, allowing constraint bypass

    Incorrect Behavior Order: Validate Before Canonicalize vulnerability in ash-project ash lets an attacker store a case-insensitive string value that violates its length or match constraints. Ash.Type.CiString.apply_constraints/2 (lib/ash/type/ci_string.ex) val…

  • 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) …

  • Low 2.1

    Non-finite Infinity/NaN decimal values bypass bounds constraints in Ash.Type.Decimal

    Improper Validation of Specified Quantity in Input vulnerability in ash-project ash allows an attacker to submit a non-finite decimal value that bypasses numeric bounds constraints or fails later operations on the value. Ash.Type.Decimal cast input through Ec…

  • High 7.5

    Filter expression injection via forged keyset pagination cursor in Ash

    Deserialization of Untrusted Data vulnerability in ash-project ash allows an unauthenticated attacker to inject a filter expression through a forged keyset pagination cursor, resulting in SQL injection or code execution depending on the data layer. Read actio…

  • Low 2.1

    Predicate injection in manage_relationship belongs_to lookup discloses secret lookup keys in Ash

    Improper Neutralization of Special Elements in Data Query Logic vulnerability in ash-project ash allows an attacker to forge a relationship to a record they cannot name, and to recover the secret value used to look it up. When manage_relationship is used with…

  • 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…

  • High 8.2

    Ash Framework: Ash.Type.Module.cast_input/2 atom exhaustion via unchecked Module.concat allows BEAM VM crash

    Ash Framework is a declarative, extensible framework for building Elixir applications. Prior to version 3.22.0, Ash.Type.Module.cast_input/2 unconditionally creates a new Erlang atom via Module.concat([value]) for any user-supplied binary string that starts w…

  • High 8.6

    Authorization bypass when bypass policy condition evaluates to true

    Incorrect Authorization vulnerability in ash-project ash allows Authentication Bypass. This issue affects ash: from 3.6.3 before 3.7.1.

  • High 8.6

    Bypass and runtime policies that can never pass may be incorrectly applied in filter authorization

    Incorrect Authorization vulnerability in ash-project ash allows Authentication Bypass. This issue affects ash: from 0.1.1 before 3.6.2.

  • High 7.1

    Before action hooks may execute in certain scenarios despite a request being forbidden

    Incorrect Authorization vulnerability in ash-project ash allows Exploiting Incorrectly Configured Access Control Security Levels. This issue affects ash: from 0.1.1 before 3.5.39.