Retour aux alertes CVE
CVE-2026-80227

CVE-2026-80227

Publiée 1 week ago Fiche NVD officielle

Qu'est-ce que c'est ?

Résumé

La fonction stringtrim/1 dans ashsql ne supprime que les espaces simples en base de données au lieu de supprimer l'ensemble des caractères d'espacement comme le fait Elixir en mémoire. Cet écart de comportement permet à des valeurs contenant des tabulations ou des retours à la ligne de contourner les vérifications d'unicité, les filtres ou les validations. Cela peut générer des quasi-doublons ou fausser les comparaisons de données selon que l'évaluation est faite en mémoire ou en SQL.

Incorrect Comparison vulnerability in ash-project ash_sql allows a user to pad a string field with tab, newline, carriage-return, or form-feed characters and pass a trimmed uniqueness or equality check in the database that the same expression would fail in memory (or the reverse). string_trim/1 compiles to REGEXP_REPLACE patterns built from an Elixir string in which \s is the escape for a single space (codepoint 32), not a regex whitespace class. The generated SQL therefore removes only literal spaces and leaves tabs, newlines, carriage returns, and form feeds in place, whereas String.trim/1 in Elixir removes them all. Any Ash filter, validation, or identity that relies on string_trim/1 then behaves differently depending on whether Ash pushes the expression down to SQL or evaluates it in memory, so padded input can register a near-duplicate value or slip past a trimmed comparison. This issue affects ash_sql: from 0.1.0 before 0.7.1.

Technologies affectées

Non précisé par la fiche NVD.

Recommandation

Mettez à jour ashsql vers la version 0.7.1 ou supérieure dès que possible. En attendant, nettoyez manuellement les chaînes reçues avec String.trim/1 dans le code Elixir avant de les transmettre aux filtres ou aux vérifications de la base de données.

Généré automatiquement à partir de la description CVE -- vérifie les références officielles avant d'agir.

Exploits publics connus (0)

Aucun proof-of-concept public trouvé sur GitHub à ce jour. Ça peut changer : les PoC sont souvent publiés plusieurs jours ou semaines après la divulgation.