PT-2026-71309 · Ash · Ash
CVSS v4.0
7.5
Alta
| Vetor | AV:L/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
Nome do Software Vulnerável e Versões Afetadas
ash versões 1.17.0 até 3.31.2
Description
Um invasor não autenticado pode injetar uma expressão de filtro usando um cursor de paginação de keyset forjado. Isso ocorre porque as ações de leitura com paginação de keyset decodificam os cursores
page[:after] ou page[:before] fornecidos pelo cliente na função decode values/2 em lib/ash/page/keyset.ex usando non executable binary to term/2 com [:safe]. Embora esse guard bloqueie novos átomos, funs e portas, ele não bloqueia structs construídas a partir de átomos já internados em uma aplicação em execução. Consequentemente, uma expressão %Ash.Query.Call{} decodificada pode ser inserida no filtro de keyset como um valor de comparação em do filters/4 e avaliada. Como o cursor ignora a macro Ash.Expr, o runtime não aplica o gate private?/public?. O impacto varia de acordo com a camada de dados: o AshPostgres permite a injeção de SQL, enquanto as camadas de dados ETS e Simple permitem que a expressão seja avaliada no processo como uma chamada de função arbitrária.Recommendations
Atualize o ash para a versão 3.31.3 ou posterior.
Exploit
Correção
SQL injection
Deserialization of Untrusted Data
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Ash