Luka w web-frameworku Django, która może prowadzić do wstrzykiwania kodu SQL

Opublikowano poprawki do frameworka webowego Django 4.0.6 i 3.2.14, w których usunięto lukę (CVE-2022-34265), potencjalnie umożliwiającą wstrzyknięcie własnego kodu SQL. Problem dotyczy aplikacji, które wykorzystują niezweryfikowane dane zewnętrzne w parametrach kind i lookup_name, przekazywanych do funkcji Trunc(kind) i Extract(lookup_name). Programy, które akceptują jedynie zweryfikowane dane w wartościach lookup_name i kind, nie są narażone na tę lukę.

Problem został zablokowany przez zakaz używania w argumentach funkcji Extract i Trunc znaków innych niż litery, cyfry, „-”, „_”, „(” i „)”. Wcześniej w przekazywanych wartościach nie usuwano pojedynczego cudzysłowu, co pozwalało na wykonanie własnych konstrukcji SQL poprzez przekazywanie wartości takich jak „day’ FROM start_datetime)) OR 1=1;—” oraz „year’, start_datetime)) OR 1=1;—”. W następnej wersji 4.1 planowane jest dodatkowe wzmocnienie zabezpieczeń metod ekstrakcji i cięcia dat, jednak wprowadzone zmiany w API spowodują naruszenie zgodności z zewnętrznymi backendami do pracy z bazami danych.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster