CVE-2026-66838
WysokieCVSS 8.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 6 - wyżej niż 6% wszystkich znanych CVE
Streszczenie
W bibliotece postgrex (część elixir-ecto) w wersjach od 0.19.3 do 0.22.4 występuje podatność na wstrzykiwanie SQL przez opcję :comment w Postgrex.stream/4. Atakujący, który może wpłynąć na tę wartość, może zamknąć komentarz i dodać własne klauzule do wykonywanego zapytania.
Ocena ryzyka
Podatność umożliwia wykonanie nieautoryzowanych zapytań SQL w kontekście roli połączenia, co może prowadzić do naruszenia integralności danych lub nieautoryzowanego dostępu.
Rekomendacja
Należy zaktualizować postgrex do wersji 0.22.4 lub nowszej. Ponadto należy unikać przekazywania niezaufanych danych do opcji :comment.
Inne podatności w postgrex
Zobacz wszystkie- CVE-2026-58225Niskie
Podatność SQL Injection w bibliotece postgrex dla języka Elixir pozwala atakującemu na wstrzyknięcie kodu SQL poprzez nazwę kanału LISTEN. Problem występuje podczas ponownego łączenia, gdy nazwy kanałów są łączone w bloku kodu anonimowego, a funkcja quote_channel/1 nie zabezpiecza przed znakami $$, co prowadzi do przerwania połączenia powiadomień i odmowy usługi.
- CVE-2026-32687Wysokie
Podatność na iniekcję SQL w module Elixir.Postgrex.Notifications biblioteki postgrex dla języka Elixir. Parametr channel przekazywany do funkcji listen/3 i unlisten/3 jest interpolowany bezpośrednio do zapytań SQL LISTEN/UNLISTEN bez odpowiedniego escapowania znaku cudzysłowu. Atakujący, który może wpływać na nazwę kanału, może wstrzyknąć dowolne polecenia SQL, w tym DDL i DML, wykorzystując protokół simple query PostgreSQL. Podatność dotyczy wersji od 0.16.0 do 0.22.2.
Oryginalny opis (angielski, źródło NVD)
Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') vulnerability in elixir-ecto postgrex allows SQL Injection via the :comment option of Postgrex.stream/4. An attacker who can influence that value can close the comment delimiter with */ and extend the streamed statement with their own clauses, which execute under the connection's role. Ecto exposes the same option through Ecto.Repo.stream/2. Postgrex appends the comment by concatenating it into the statement text sent in the Parse message, without escaping or rejecting */. The option is validated by comment_not_present!/1 at every other execution point; stream/4 never calls it. Because Parse accepts a single command, the injection is confined to the streamed statement and further statements cannot be chained. This issue affects postgrex: from 0.19.3 before 0.22.4.

