Рањивост у Питхон-у при руковању непотврђеним разломцима у цтиповима

Доступна су исправна издања програмског језика Питхон 3.7.10 и 3.6.13, која поправљају рањивост (ЦВЕ-2021-3177) која би могла довести до извршавања кода приликом обраде непотврђених бројева с покретним зарезом у обрађивачима који позивају Ц функције користећи механизам цтипес . Проблем такође утиче на гране Питхон 3.8 и 3.9, али ажурирања за њих су и даље у статусу кандидата за издање (издање је заказано за 1. март).

Проблем је узрокован преливом бафера у функцији цтипес ПиЦАрг_репр(), до којег долази због небезбедне употребе спринтф-а. Конкретно, за обраду резултата трансформације 'спринтф(буффер, " ", селф->таг, селф->валуе.б)' доделио статички бафер од 256 бајтова ("цхар бафер[256]"), док би резултат могао да премаши ову вредност. Да бисте проверили рањивост апликација на рањивост, можете покушати да проследите вредност „1е300“, која ће, када се обради методом ц_доубле.фром_парам, довести до пада, пошто резултирајући број садржи 308 знакова и не уклапа се у 256-бајтни бафер. Пример проблематичног кода: импорт цтипес; к = цтипес.ц_доубле.фром_парам(1е300); репр(к)

Проблем остаје нерешен у Дебиан-у, Убунту-у и ФрееБСД-у, али је већ поправљен у Арцх Линук-у, Федори, СУСЕ-у. У РХЕЛ-у, рањивост се не јавља због склапања пакета у режиму ФОРТИФИ_СОУРЦЕ, који блокира таква преливања бафера у стринг функцијама.

Извор: опеннет.ру

Додај коментар