CVE-2026-80227 json
SQL string_trim removes only spaces, diverging from in-memory trimming in AshSql
published 2mo ago modified 2mo ago also EEF-CVE-2026-80227 , EUVD-2026-68187 , GHSA-76wx-w7ww-5xfq
- cvss
- 2.1
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 30%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
Is CVE-2026-80227 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2mo ago
Exploit prediction
0.37% chance of exploitation in the next 30 days, higher than 30% of all scored CVEs (FIRST EPSS, 2026-11-11).
Exploits and checks
- github.com https://github.com/ash-project/ash_sql/security/advisories/GHSA-76wx-w7ww-5xfq referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 2.1 | 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 |
| CNA | 4.0 | 2.1 | 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| hex | ash_sql | >=0.1.0, <0.7.1 |
0.7.1 |
Affected products
- ash-project ash_sql
Classification
- Weakness
-
- CWE-697 Incorrect Comparison
References
-
github.com
/ash-project/ash_sql/commit/1b11b5d8bc5321e2e6acac21594ef08f61986117
patch
-
github.com
/ash-project/ash_sql/security/advisories/GHSA-76wx-w7ww-5xfq
vendor-advisory, related, exploit, advisory
-
cna.erlef.org
/cves/CVE-2026-80227.html
related, web
-
osv.dev
/vulnerability/EEF-CVE-2026-80227
related
-
hex.pm
/packages/ash_sql
package
Sources
- CVE List CVE-2026-80227
- NVD CVE-2026-80227
- OSV EEF-CVE-2026-80227
- Maintainer advisory GHSA-76wx-w7ww-5xfq
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
The maintainers of ash-project/ash_sql published their own advisory on GitHub. Reviewed sources take precedence over it.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.