Уразлівасць у OpenOffice, якая дазваляе выканаць код пры адкрыцці файла

У офісным пакеце Apache OpenOffice выяўлена ўразлівасць (CVE-2021-33035), якая дазваляе дамагчыся выкананні кода пры адкрыцці адмыслова аформленага файла ў фармаце DBF. Які выявіў праблему даследнік папярэдзіў аб стварэнні працоўнага эксплоита для платформы Windows. Выпраўленне ўразлівасці пакуль даступна толькі ў форме патча ў рэпазітары праекту, які ўвайшоў у склад тэставых зборак OpenOffice 4.1.11. Абнаўленні для стабільнай веткі пакуль не сфарміраваны.

Праблема выклікана тым, што пры вылучэнні памяці OpenOffice належыў на значэнні fieldLength і fieldType у загалоўку файлаў DBF, не правяраючы пры гэтым адпаведнасць фактычнага тыпу дадзеных у палях. Для здзяйснення нападу можна паказаць у значэнні fieldType тып INTEGER, але размясціць дадзеныя большага памеру і паказаць значэнне fieldLength не якое адпавядае памеру дадзеных c тыпам INTEGER, што прывядзе да таго, што хвост дадзеных з поля будзе запісаны за межы вылучанага буфера. У выніку кантраляванага перапаўнення буфера даследніку атрымалася перавызначыць паказальнік звароту з функцыі і пры дапамозе прыёмаў зваротна-арыентаванага праграмавання (ROP – Return-Oriented Programming) дамагчыся выкананні свайго кода.

Пры выкарыстанні тэхнікі ROP атакавалы не спрабуе размясціць свой код у памяці, а аперуе ўжо наяўнымі ў загружаных бібліятэках кавалкамі машынных інструкцый, якія завяршаюцца інструкцыяй звароту кіравання (як правіла, гэта канчаткі бібліятэчных функцый). Праца эксплоіта зводзіцца да пабудовы ланцужка выклікаў падобных блокаў ("гаджэтаў") для атрымання патрэбнай функцыянальнасці. У якасці гаджэтаў у эксплоіце для OpenOffice выкарыстоўваўся код з выкарыстоўванай у OpenOffice бібліятэкі libxml2, якая ў адрозненне ад самога OpenOffice апынулася сабрана без механізмаў абароны DEP (Data Execution Prevention) і ASLR (Address Space Layout Randomization).

Распрацоўнікі OpenOffice былі апавешчаныя аб праблеме 4 траўня, пасля чаго на 30 жніўня было прызначанае публічнае расчыненне звестак аб уразлівасці. Бо да вызначанага тэрміна абнаўленне стабільнай галінкі так і не было сфармавана, даследнік перанёс расчыненне дэталяў на 18 верасня, але распрацоўнікі OpenOffice не паспелі сфармаваць рэліз 4.1.11 і да гэтага тэрміна. Характэрна, што падчас таго ж даследавання была выяўлена падобная ўразлівасць у кодзе падтрымкі фармату DBF у Microsoft Office Access (CVE-2021-38646), дэталі аб якой будуць расчыненыя пазней. У LibreOffice праблем не знойдзена.

Крыніца: opennet.ru

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