Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit string padded with tab or newline
-
Deliveryash_sql compiles to REGEXP_REPLACE stripping spaces only
-
ExploitDatabase accepts padded string as distinct value
-
ExecutionUniqueness or equality constraint bypassed
-
ImpactNear-duplicate record persisted
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Incorrect comparison
|
| Exploitation Conditions | The target application must run ash_sql version 0.1.0 through 0.7.0. The |
| Impact | The CVSS 4.0 score of 2.1 with vector AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L reflects a narrow, conditions-dependent integrity issue. AT:P correctly captures that the vulnerable code path must be active - specifically, |
| Exploit ScenarioDerived | An attacker submitting a user-registration form could enter a username such as 'admin' with a trailing tab character; the SQL REGEXP_REPLACE pattern strips only spaces and so the database treats the padded value as distinct from the existing 'admin' record, allowing the near-duplicate to be inserted and bypassing the uniqueness identity. Elixir's in-memory evaluation would consider them equal, creating an inconsistency that could be leveraged to impersonate or shadow an existing account. No public exploit code has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAI
Incorrect string trimming in ash_sql causes divergent behavior between SQL-layer and in-memory evaluation of the string_trim/1 function, enabling users to pad string fields with tab, newline, carriage-return, or form-feed characters to bypass trimmed uniqueness or equality checks. All ash_sql versions from 0.1.0 up to (not including) 0.7.1 are affected wherever string_trim/1 appears in Ash filters, validations, or identity constraints that are evaluated at the SQL layer. No public exploit has been identified and no active exploitation is confirmed; the overall risk is low (CVSS 4.0: 2.1), but the bypass can permit duplicate record creation or filter evasion in affected applications.
RemediationAI
Upgrade ash_sql to version 0.7.1 or later, which corrects the Elixir string escaping in the REGEXP_REPLACE pattern generation (commit 1b11b5d8bc5321e2e6acac21594ef08f61986117, referenced in the advisory at https://github.com/ash-project/ash_sql/security/advisories/GHSA-76wx-w7ww-5xfq); update the dependency in mix.exs and run mix deps.update ash_sql. If an immediate upgrade is not feasible, audit all Ash resources for uses of string_trim/1 in filters, identity blocks, and validations and replace them with database-native UNIQUE constraints (unaffected by this trimming logic) or normalize whitespace in application code before values reach the Ash layer. Note that removing string_trim/1 from existing identity checks may require a database migration if records already contain the non-space whitespace padding characters.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ash_sql (CPE: cpe:2.3:a:ash-project:ash_sql:*:*:*:*:*:*:*:*) is the SQL adapter layer for the Ash Framework, an Elixir resource-management library. The root cause is CWE-697 (Incorrect Comparison): the string_trim/1 function compiles to a SQL REGEXP_REPLACE call using an Elixir string literal in which \s is not a regex whitespace metacharacter but an escape for a single literal space (codepoint 32). The generated SQL pattern therefore strips only spaces, while Elixir's String.trim/1 - used during in-memory expression evaluation - strips all Unicode whitespace including tab (U+0009), line feed (U+000A), carriage return (U+000D), and form feed (U+000C). This semantic split means a string containing only non-space whitespace padding passes the SQL-side trimmed comparison but fails the same comparison evaluated in Elixir memory, or vice versa. The commit fix (1b11b5d) corrects the Elixir raw string from '\s+$' to '\\s+$', preserving the backslash through to SQL so the database engine interprets \s as a proper regex whitespace class.
Know when Ash Sql gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
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
Exploitation is triggered via network-submitted user input with no privileges required; only low integrity impact from uniqueness bypass; no confidentiality or availability effect.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
SQL LIKE wildcard injection in ash_sql (Elixir, versions 0.1.1-rc.10 through 0.7.0) allows any user who can supply a sea
Cross-tenant aggregate data leakage in ash_sql affects Elixir applications using schema-based multitenancy with strategy
EUVD-2026-68187
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB