CVE-2026-93477 in ash
Sumário
de VulDB • 25/09/2026
Vulnerabilidade de Modificação Mal Controlada de Atributos de Objetos Determinados Dinamicamente no ash-project ash permite que um usuário defina o valor de um argumento de ação privada nos caminhos de exclusão em massa (bulk destroy) e atualização em massa (bulk update).
Os argumentos de ação declarados com `public?: false` destinam-se a ser definidos apenas por código do lado do servidor confiável (por exemplo, via `Ash.Changeset.set_private_argument/3`) e não devem poder ser configurados a partir da entrada do usuário final. A CVE-2026-55736 corrigiu o caminho de changeset não em massa para remover argumentos privados dos mapas de parâmetros fornecidos pelo usuário, mas os caminhos de exclusão em massa e atualização em massa não foram cobertos.
`Ash.Actions.Destroy.Bulk.base_changeset/5` e `Ash.Actions.Update.Bulk.base_changeset/5` correspondem a cada chave no mapa de parâmetros fornecido pela chamada contra todos os argumentos da ação sem verificar o atributo `public?`, aplicando então as correspondências ao changeset base. Uma chamada que possa enviar parâmetros para uma ação de exclusão em massa ou atualização em massa (por exemplo, através do AshJsonApi, AshGraphql ou um controlador que encaminha os parâmetros da solicitação para `Ash.bulk_destroy/4` ou `Ash.bulk_update/4`) pode, portanto, definir qualquer argumento privado dessa ação, incluindo aquele referenciado por um modelo `arg(...)` nas alterações ou validações da ação. Dependendo de como o aplicativo utiliza o argumento (por exemplo, um `acting_user_id` que direciona a autorização ou propriedade do registro, ou metadados de auditoria), isso pode levar a uma violação de integridade ou elevação de privilégio.
A correção requer a verificação de `public?` na correspondência de argumentos em ambos os caminhos em massa; os argumentos privados permanecem configuráveis no lado do servidor por meio da opção `:private_arguments`.
Este problema afeta o ash: das versões 2.17.15 anteriores à 3.33.11.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.