Luka w frameworku sieciowym Django, która może prowadzić do podstawienia SQL

Opublikowano wersje korygujące frameworka sieciowego Django 4.0.6 i 3.2.14, które naprawiają lukę (CVE-2022-34265), która potencjalnie pozwala na zastąpienie kodu SQL. Problem dotyczy aplikacji korzystających z niezweryfikowanych danych zewnętrznych w parametrach kind i lookup_name przekazywanych do funkcji Trunc(kind) i Extract(lookup_name). Programy, które dopuszczają jedynie zweryfikowane dane w wartościach lookup_name i kind, nie są dotknięte luką.

Problem został zablokowany poprzez zakazanie używania znaków innych niż litery, cyfry, „-”, „_”, „(” i „)” w argumentach funkcji Extract i Trunc. Wcześniej pojedynczy cudzysłów nie był wycinany w przesyłanych wartościach, co umożliwiało wykonanie konstrukcji SQL poprzez przekazanie wartości takich jak „dzień” FROM start_datagodzina)) OR 1=1;—” i „rok”, start_datagodzina) ) LUB 1=1;-„. W następnej wersji 4.1 planowane jest dalsze wzmocnienie ochrony metod wyodrębniania i obcinania dat, ale zmiany wprowadzone w API doprowadzą do załamania kompatybilności z backendami baz danych innych firm.

Źródło: opennet.ru

Dodaj komentarz