---
id: CVE-2026-78691
title: >-
  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,
  t…
summary: >-
  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,
  t…
severity: none
cwe:
  - CWE-943
published: '2026-08-30'
updated: '2026-08-30'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-78691'
references:
  - url: 'https://cna.erlef.org/cves/CVE-2026-78691.html'
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
  - url: >-
      https://github.com/ash-project/ash_sql/commit/d95c55c64b1b42cc2fd30211a4913f3145156cd4
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
  - url: >-
      https://github.com/ash-project/ash_sql/security/advisories/GHSA-5jgp-7mhc-6qqh
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
  - url: 'https://osv.dev/vulnerability/EEF-CVE-2026-78691'
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
tags:
  - nvd
ingestedAt: '2026-08-30T17:55:39.908Z'
epss: 0.00197
epssPercentile: 0.08362
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
