Уразлівасць у web-фрэймворку Django, якая можа прывесці да падстаноўкі SQL-кода.

Апублікаваныя якія карэктуюць выпускі web-фрэймворка Django 4.0.6 і 3.2.14, у якіх ухіленая ўразлівасць (CVE-2022-34265), патэнцыйна якая дазваляе выканаць падстаноўку свайго SQL-кода. Праблема закранае прыкладанні, якія выкарыстоўваюць неправераныя вонкавыя дадзеныя ў параметрах kind і lookup_name, якія перадаюцца ў функцыі Trunc(kind) і Extract(lookup_name). Праграмы, якія дапускаюць у значэннях lookup_name і kind толькі правераныя дадзеныя ўразлівасць не закранае.

Праблема блакіравана праз забарону выкарыстання ў аргументах функцый Extract і Trunc сімвалаў выдатных ад літар, лічбаў, "-", "_", "(" і ")". Раней у перадаваных значэннях не выразалася адзінарная двукосся, што дазваляла выканаць свае SQL-канструкцыі праз перадачу значэнняў выгляду "day' FROM start_datetime)) OR 1 = 1; -" і "year ', start_datetime)) OR 1 = 1; -". У наступным выпуску 4.1 плануецца дадаткова ўзмацніць абарону метадаў вымання і ўсячэнні дат, але ўнесеныя ў API змены прывядуць да парушэння сумяшчальнасці са іншымі бэкендамі для працы з БД.

Крыніца: opennet.ru

Дадаць каментар