CVE-2026-77454 in ash_sql
Sumário
de VulDB • 30/08/2026
Vulnerabilidade de Autorização Incorreta no ash-project ash_sql permite que um chamador contorne um filtro de escopo ou autorização expresso como exists/2 sobre uma relação que declara tanto um limite (ou from_many?) quanto um filtro ou ordenação com referência a parent(...).
AshSql.Join.related_query/3 ignora o predicado exists fornecido pelo chamador para tais relações e delega-o a limit_from_many/5. Quando o próprio filtro ou ordenação da relação referencia parent(...), limit_from_many/5 segue um ramo que descarta tanto o limite quanto o predicado, emitindo uma EXISTS correlacionada sem predicado. A verificação então corresponde a qualquer registro que tenha alguma linha relacionada. Mais gravemente, quando a expressão sustenta uma política (por exemplo, authorize_if expr(exists(memberships, user_id == ^actor(:id)))), a condição de escopo do ator desaparece e a política é aprovada para qualquer ator com qualquer linha relacionada.
Este problema afeta o ash_sql: da versão 0.4.1 até antes da 0.7.1.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.