CVE Catalog

CVE-2026-80227

LowCVSS 2.1
Published: Translated: NVD NIST

Summary

A vulnerability in 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). This occurs because string_trim/1 in SQL removes only spaces, not all whitespace, causing behavioral differences between SQL and memory.

Risk Assessment

This could enable creation of duplicate data or bypass of validation, leading to data integrity issues and potentially unauthorized operations.

Recommendation

It is recommended to upgrade ash_sql to version 0.7.1 or later and avoid relying on string_trim/1 in critical validations without consistency tests.

Other vulnerabilities in ash_sql

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS