Unknown · Ashjsonapi · CVE-2026-94201
**Nome do Software Vulnerável e Versões Afetadas**
ash versões 3.5.1 até 3.34.2
**Description**
O Ash armazena atributos do tipo `:atom` como strings e os compara como strings. Quando tal atributo é usado em um filtro, o valor de comparação é processado através do `Ash.Type.Atom`. Devido à ausência de um callback `coerce/2`, o processo retorna ao padrão `cast input/2`, que invoca `String.to atom/1` quando o atributo é configurado com a restrição `unsafe to atom?: true`. Um invasor que forneça strings distintas para um atributo `:atom` público e filtrável com essa restrição pode fazer com que o sistema interne um novo átomo permanente para cada valor. Como os átomos não são coletados pelo garbage collector e o BEAM (a Máquina Virtual Erlang) possui uma tabela de átomos limitada, isso pode levar ao esgotamento da tabela de átomos e a uma falha de negação de serviço. Isso é acessível quando uma aplicação expõe tal atributo via interfaces como AshGraphql, AshJsonApi ou a função `filter input/2`. O AshPaperTrail é um exemplo de biblioteca que expõe o atributo `version action name` com essa configuração por padrão.
**Recommendations**
Atualize o ash para a versão 3.34.3 ou posterior.
Como mitigação temporária, evite usar a restrição `unsafe to atom?: true` em atributos `:atom` públicos e filtráveis.