Description
Improper Neutralization of Special Elements in Data Query Logic vulnerability in ash-project ash_sql allows a user who supplies a search term to contains/2, string_starts_with/2, or string_ends_with/2 to inject live SQL LIKE wildcards, turning a literal substring search into an attacker-controlled pattern match.

The escape helpers in AshSql.Expr prefix % and _ with a backslash but never escape a backslash already present in the input. Because backslash is the default LIKE escape character, the escaping defeats itself: the input \% becomes the pattern fragment \\%, where \\ is a literal backslash and the attacker's % remains a live wildcard. The search value stays parameterized, so this is confined to the LIKE pattern grammar rather than full SQL. An attacker can widen matches to probe values, slip past a negated contains(...) guard, or crash the query with a trailing lone backslash.

This issue affects ash_sql: from 0.1.1-rc.10 before 0.7.1.
Published: 2026-08-30
Score: 2.1 Low
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The flaw is a failure to properly neutralize the backslash character in the input passed to AshSql’s LIKE predicate. The escaping helper prefixes % and _ with a backslash, but it leaves any pre‑existing backslashes untouched. Because backslash is the default LIKE escape character, a payload such as \\% expands to the literal string \\\\% – the first two backslashes denote a single literal backslash, and the following % is interpreted as a pattern wildcard. This turns a seemingly safe substring search into a wildcard containing search that an attacker can control. The search value remains bound as a parameter so the attack does not scale to full SQL injection, but it does allow the attacker to broaden matches, sidestep negated contains checks, or even cause the query to fail if a lone backslash terminates the pattern.

Affected Systems

ash-project ash_sql versions from 0.1.1‑rc.10 up to but not including 0.7.1 are affected. The vulnerability is present in the string search predicates contains/2, string_starts_with/2, and string_ends_with/2.

Risk and Exploitability

The CVSS score of 2.1 indicates a low impact. The EPSS score is not available, and the vulnerability is not listed in CISA’s KEV catalogue. An attacker requires the ability to supply search terms to the affected functions, which typically means having access to the application’s interface or API. Because the flaw only affects the LIKE pattern grammar, the attack gains only limited capabilities: the attacker can broaden matches, bypass negated filters, or destabilize the query with malformed input. The overall risk is moderate to low but still warrants mitigation because it can be used for data enumeration or denial of service in high‑volume search contexts.

Generated by OpenCVE AI on August 30, 2026 at 13:23 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade ash_sql to version 0.7.1 or later.
  • If upgrading is not immediately possible, sanitize user input before passing it to the search functions by escaping backslashes or removing them entirely.
  • Review and correct the input‑escaping logic so that all backslash characters are properly escaped for the LIKE predicate.

Generated by OpenCVE AI on August 30, 2026 at 13:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 30 Aug 2026 12:00:00 +0000

Type Values Removed Values Added
Description Improper Neutralization of Special Elements in Data Query Logic vulnerability in ash-project ash_sql allows a user who supplies a search term to contains/2, string_starts_with/2, or string_ends_with/2 to inject live SQL LIKE wildcards, turning a literal substring search into an attacker-controlled pattern match. The escape helpers in AshSql.Expr prefix % and _ with a backslash but never escape a backslash already present in the input. Because backslash is the default LIKE escape character, the escaping defeats itself: the input \% becomes the pattern fragment \\%, where \\ is a literal backslash and the attacker's % remains a live wildcard. The search value stays parameterized, so this is confined to the LIKE pattern grammar rather than full SQL. An attacker can widen matches to probe values, slip past a negated contains(...) guard, or crash the query with a trailing lone backslash. This issue affects ash_sql: from 0.1.1-rc.10 before 0.7.1.
Title Unescaped backslash allows LIKE wildcard injection in AshSql string search
First Time appeared Ash-project
Ash-project ash Sql
Weaknesses CWE-943
CPEs cpe:2.3:a:ash-project:ash_sql:*:*:*:*:*:*:*:*
Vendors & Products Ash-project
Ash-project ash Sql
References
Metrics cvssV4_0

{'score': 2.1, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Ash-project Ash Sql
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-08-30T11:55:20.331Z

Reserved: 2026-08-30T05:45:01.818Z

Link: CVE-2026-78691

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-30T12:17:18.550

Modified: 2026-08-30T12:17:18.550

Link: CVE-2026-78691

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-30T13:30:05Z

Weaknesses
  • CWE-943

    Improper Neutralization of Special Elements in Data Query Logic