CVE-2026-78691
NiskieCVSS 2.1Streszczenie
Podatność w ash_sql pozwala użytkownikowi, który dostarcza termin wyszukiwania do funkcji contains/2, string_starts_with/2 lub string_ends_with/2, na wstrzyknięcie dzikich kart LIKE do zapytania SQL, zamieniając dosłowne wyszukiwanie podciągu na wzorzec kontrolowany przez atakującego. Dzieje się tak, ponieważ funkcje pomocnicze nie escapują backslashy, co pozwala na obejście escapowania i aktywację dzikich kart.
Ocena ryzyka
Atakujący może rozszerzyć dopasowania, aby sondować dane, ominąć negowane warunki contains lub spowodować błąd zapytania, co może prowadzić do ujawnienia informacji lub zakłócenia działania.
Rekomendacja
Zaleca się aktualizację ash_sql do wersji 0.7.1 lub nowszej oraz unikanie przekazywania danych użytkownika do funkcji wyszukiwania bez odpowiedniego escapowania.
Inne podatności w ash_sql
Zobacz wszystkie- CVE-2026-81318Niskie
Podatność w ash_sql pozwala wywołującemu w aplikacji wielotenantowej opartej na schematach na otrzymanie wartości agregatów obliczonych z wierszy innego tenanta. Dzieje się tak, gdy agregat jest liczony nad zapytaniem distinct, a zapytanie zewnętrzne jest odbudowywane bez prefiksu schematu, co prowadzi do odczytu z domyślnego schematu zamiast schematu tenanta.
- CVE-2026-81316Niskie
Podatność w ash_sql pozwala wywołującemu na otrzymanie wartości agregatu obliczonego nad wierszami, które powinny być wykluczone przez bardziej restrykcyjny filtr, ujawniając liczby, sumy lub listy poza granicami autoryzacji lub tenancyjnymi. Dzieje się tak, ponieważ dwa zapytania agregujące są uznawane za identyczne, gdy różnią się tylko filtrem, a nie sortowaniem.
- CVE-2026-80227Niskie
Podatność w ash_sql pozwala użytkownikowi na dodanie do pola tekstowego znaków tabulacji, nowej linii, powrotu karetki lub wysunięcia strony, aby przejść test unikalności lub równości w bazie danych, który w pamięci by się nie powiódł (lub odwrotnie). Dzieje się tak, ponieważ funkcja string_trim/1 w SQL usuwa tylko spacje, a nie wszystkie białe znaki, co powoduje różnice w zachowaniu między SQL a pamięcią.
- CVE-2026-77454Średnie
Podatność w ash_sql pozwala wywołującemu na ominięcie filtra autoryzacji lub zakresowania wyrażonego jako exists/2 nad relacją z limitem lub filtrem odwołującym się do parent(...). W pewnych przypadkach limit i predykat są pomijane, co powoduje, że sprawdzenie dopasowuje dowolny rekord z dowolnym powiązanym wierszem.
Oryginalny opis (angielski, źródło NVD)
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.

