Преливање бафера у Токцоре-у је искоришћено слањем УДП пакета

Рањивост (ЦВЕ-2-2021) је идентификована у Токцоре-у, референтној имплементацији Ток П44847П протокола за размену порука, која би потенцијално могла да покрене извршавање кода приликом обраде посебно креираног УДП пакета. Рањивост утиче на све кориснике апликација заснованих на Токцоре-у који немају онемогућен УДП транспорт. За напад је довољно послати УДП пакет који зна ИП адресу, мрежни порт и јавни ДХТ кључ жртве (ова информација је јавно доступна у ДХТ-у, тј. напад је могао бити извршен на било ког корисника или ДХТ хоста) .

Проблем се појавио у токцоре издањима од 0.1.9 до 0.2.12 и поправљен је у верзији 0.2.13. Од клијентских апликација, само кТок пројекат је до сада објавио ажурирање са елиминацијом рањивости. Као безбедносно решење, можете онемогућити употребу УДП-а док напуштате ТЦП подршку.

Рањивост је узрокована прекорачењем бафера у функцији хандле_рекуест(), до којег долази због нетачног израчунавања величине података у мрежном пакету. Конкретно, дужина шифрованих података је одређена у ЦРИПТО_СИЗЕ макроу дефинисаном као "1 + ЦРИПТО_ПУБЛИЦ_КЕИ_СИЗЕ * 2 + ЦРИПТО_НОНЦЕ_СИЗЕ", који је касније коришћен у операцији одузимања "дужина - ЦРИПТО_СИЗЕ". Због недостатка заграда у макроу, уместо да одузимате збир свих вредности, одузмите 1 и додајте преостале делове. На пример, уместо "дужина - (1 + 32 * 2 + 24)", величина бафера је израчуната као "дужина - 1 + 32 * 2 + 24", што је довело до преписивања података на стеку који је био ван бафера граница.

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

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