Narzędzie sqldiff.exe wchodzące w skład SQLite nie obsługuje bezpiecznie konwersji znaków Unicode na strony kodowe ANSI przez środowisko uruchomieniowe Microsoft Windows C runtime. Atakujący może wykorzystać opcję '-L' do załadowania dowolnej biblioteki DLL poprzez odpowiednio spreparowany argument wiersza poleceń, co stanowi poważne zagrożenie dla integralności i poufności systemu.
▸ Pokaż oryginał (EN)
SQLite 'sqldiff.exe' does not securely handle the way the Microsoft Windows C runtime converts Unicode characters to ANSI codepages. An attacker could use the '-L' option to load an arbitrary DLL with a crafted command line argument string that results in command line file arguments being misinterpreted as command line options. Fixed on or around 2025-12-26.
Problem wynika z nieprawidłowej obsługi konwersji znaków Unicode do ANSI (CWE-176) przez Windows C runtime. Atakujący tworzy specjalnie spreparowany argument wiersza poleceń zawierający znaki Unicode, które po konwersji do ANSI są błędnie interpretowane — zamiast jako nazwy plików, odczytywane są jako opcje wiersza poleceń. Korzystając z opcji '-L', możliwe jest wskazanie ścieżki do dowolnej biblioteki DLL, która zostaje następnie załadowana przez aplikację. Technika ta jest powiązana z klasą ataków opartych na nieprzewidywalnej transformacji znaków Unicode w środowiskach Windows (tzw. Best-Fit mapping).
Atakujący może doprowadzić do załadowania i wykonania dowolnego kodu w postaci złośliwej biblioteki DLL, co prowadzi do naruszenia poufności, integralności oraz dostępności systemu. W zależności od kontekstu uruchomienia sqldiff.exe możliwe jest przejęcie kontroli nad procesem lub eskalacja uprawnień.
Należy zaktualizować SQLite do wersji wydanej po 2025-12-26, w której poprawka została wprowadzona. Szczegóły dotyczące konkretnych wersji należy sprawdzić w referencjach producenta (sqlite.org). Dodatkowo zaleca się ograniczenie możliwości uruchamiania sqldiff.exe przez nieuprzywilejowanych użytkowników oraz monitorowanie ładowania nieznanych bibliotek DLL w środowiskach Windows.
SQLite — narzędzie sqldiff.exe działające na platformie Microsoft Windows; zgodnie z opisem podatność została naprawiona w okolicach 2025-12-26. Szczegółowe wersje wskazane w referencjach producenta.
Podatność dotyczy wyłącznie platformy Windows i mechanizmu konwersji Unicode–ANSI (Best-Fit mapping) w Windows C runtime. Referencje wskazują na prezentację z Black Hat EU 2024 dotyczącą tej klasy podatności (WorstFit). Poprawka wprowadzona w kodzie źródłowym sqldiff.exe (tool/winmain.c) w okolicach 2025-12-26.
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X