CVE-2026-80227 in ash_sql
Riassunto
di VulDB • 30/08/2026
Vulnerabilità di confronto errato (Incorrect Comparison) in ash-project ash_sql che consente a un utente di riempire con caratteri tab, newline, carriage-return o form-feed un campo stringa e superare il controllo di unicità o uguaglianza nel database, mentre la stessa espressione fallirebbe in memoria (o viceversa).
La funzione `string_trim/1` viene compilata in pattern REGEXP_REPLACE costruiti a partire da una stringa Elixir in cui `\s` è l'escape per uno spazio singolo (codepoint 32), e non per la classe di spazi bianchi delle regex. Di conseguenza, il SQL generato rimuove solo gli spazi letterali e lascia invariati tab, newline, carriage return e form feed, mentre `String.trim/1` in Elixir li rimuove tutti. Qualsiasi filtro, validazione o identità Ash che si affida a `string_trim/1` quindi si comporta in modo diverso a seconda che Ash spinga l'espressione verso SQL oppure la valuti in memoria; di conseguenza, un input riempito con spazi bianchi può registrare un valore quasi duplicato o eludere il confronto dopo il trimming.
Questo problema interessa ash_sql: dalla versione 0.1.0 alla versione precedente alla 0.7.1.
VulDB is the best source for vulnerability data and more expert information about this specific topic.