{"id":"CVE-2026-80227","summary":"SQL string_trim removes only spaces, diverging from in-memory trimming in AshSql","details":"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).\n\nstring_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.\n\nThis issue affects ash_sql: from 0.1.0 before 0.7.1.","aliases":["EEF-CVE-2026-80227","GHSA-76wx-w7ww-5xfq"],"modified":"2026-09-04T03:31:00.586766996Z","published":"2026-08-30T11:53:35.548Z","database_specific":{"cna_assigner":"EEF","cwe_ids":["CWE-697"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/80xxx/CVE-2026-80227.json","unresolved_ranges":[{"source":"AFFECTED_FIELD","extracted_events":[{"introduced":"dd092ed273dec7bd2194352f24a39229fc8ae68b"},{"fixed":"1b11b5d8bc5321e2e6acac21594ef08f61986117"}]}]},"references":[{"type":"WEB","url":"https://cna.erlef.org/cves/CVE-2026-80227.html"},{"type":"WEB","url":"https://github.com"},{"type":"WEB","url":"https://osv.dev/vulnerability/EEF-CVE-2026-80227"},{"type":"WEB","url":"https://repo.hex.pm"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/80xxx/CVE-2026-80227.json"},{"type":"ADVISORY","url":"https://github.com/ash-project/ash_sql/security/advisories/GHSA-76wx-w7ww-5xfq"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-80227"},{"type":"FIX","url":"https://github.com/ash-project/ash_sql/commit/1b11b5d8bc5321e2e6acac21594ef08f61986117"},{"type":"PACKAGE","url":"https://github.com/ash-project/ash_sql"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/ash-project/ash_sql","events":[{"introduced":"3025d9f3eb575ff2e21950d48c3987b72fbd42c2"},{"fixed":"cfe94c67484270db0f46384bd35cf1fbad8793d5"},{"fixed":"1b11b5d8bc5321e2e6acac21594ef08f61986117"}],"database_specific":{"extracted_events":[{"introduced":"0.1.0"},{"fixed":"0.7.1"}],"source":["DESCRIPTION","REFERENCES"]}}],"versions":["v0.7.0","v0.6.9","v0.6.8","v0.6.7","v0.6.6","v0.6.5","v0.6.4","v0.6.3","v0.6.2","v0.6.1","v0.6.0","v0.5.5","v0.5.4","v0.5.3","v0.5.2","v0.5.1","v0.5.0","v0.4.5","v0.4.4","v0.4.3","v0.4.2","v0.4.1","v0.4.0","v0.3.16","v0.3.15","v0.3.14","v0.3.13","v0.3.12","v0.3.11","v0.3.10","v0.3.9","v0.3.8","v0.3.7","v0.3.6","v0.3.5","v0.3.4","v0.3.3","v0.3.2","v0.3.1","v0.3.0","v0.2.93","v0.2.92","v0.2.91","v0.2.90","v0.2.89","v0.2.88","v0.2.87","v0.2.86","v0.2.85","v0.2.84","v0.2.83","v0.2.82","v0.2.81","v0.2.80","v0.2.79","v0.2.78","v0.2.77","v0.2.76","v0.2.75","v0.2.74","v0.2.73","v0.2.72","v0.2.71","v0.2.70","v0.2.69","v0.2.68","v0.2.67","v0.2.66","v0.2.65","v0.2.64","v0.2.63","v0.2.62","v0.2.61","v0.2.60","v0.2.59","v0.2.58","v0.2.57","v0.2.56","v0.2.55","v0.2.54","v0.2.53","v0.2.52","v0.2.51","v0.2.50","v0.2.49","v0.2.48","v0.2.47","v0.2.46","v0.2.45","v0.2.44","v0.2.43","v0.2.41","v0.2.39","v0.2.38","v0.2.37","v0.2.36","v0.2.35","v0.2.34","v0.2.33","v0.2.32","v0.2.31","v0.2.30","v0.2.29","v0.2.28","v0.2.27","v0.2.26","v0.2.25","v0.2.24","v0.2.23","v0.2.22","v0.2.21","v0.2.20","v0.2.19","v0.2.18","v0.2.17","v0.2.16","v0.2.15","v0.2.14","v0.2.12","v0.2.11","v0.2.10","v0.2.9","v0.2.8","v0.2.7","v0.2.6","v0.2.5","v0.2.4","v0.2.3","v0.2.2","v0.2.1","v0.2.0","v0.1.3","v0.1.2","v0.1.1-rc.20","v0.1.1-rc.19","v0.1.1-rc.18","v0.1.1-rc.17","v0.1.1-rc.16","v0.1.1-rc.15","v0.1.1-rc.14","v0.1.1-rc.13","v0.1.1-rc.12","v0.1.1-rc.11","v0.1.1-rc.10","v0.1.1-rc.9","v0.1.1-rc.8","v0.1.1-rc.7","v0.1.1-rc.6","v0.1.1-rc.5","v0.1.1-rc.4","v0.1.1-rc.3","v0.1.1-rc.2","v0.1.1-rc.1","v0.1.1-rc.0","v0.1.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-80227.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N"}]}