Наскоро изследователят Хънг Нгуен откри критични уязвимости в текстовите редактори Vim и GNU Emacs, използвайки простия ИИ асистент Claude. Уязвимостите позволяват отдалечено изпълнение на код само чрез отваряне на файл, което поставя в риск разработчици, системни администратори и DevOps специалисти, за които тези редактори са основен инструмент.
Vim и GNU Emacs са програмируеми текстови редактори, широко използвани за редакция на код, терминални работни процеси и скриптове. Vim е стандартно инсталиран на повечето Linux сървъри, вградени системи и macOS, докато GNU Emacs предлага дълбока интеграция с контрол на версиите.
Уязвимост във Vim и отговорът на разработчиците
Хънг Нгуен, работещ за специализираната киберсигурност фирма Calif, инструктира Claude да открие zero-day уязвимост за отдалечено изпълнение на код във Vim.
Основният проблем е в обработката на modeline, текстови инструкции, разположени в началото на файла, които указват на Vim как да го обработи. Асистентът идентифицира липса на проверки за сигурност, което позволява на зловреден код да се изпълни при отваряне на файла, дори в sandbox среда.
- Уязвимостта засяга всички версии на Vim 9.2.0271 и по-стари и няма присвоен CVE идентификатор.
- Пач беше пуснат във версия 9.2.0272, като единственото условие за експлоатация е отваряне на специално подготвен файл.
„Атакуващ, който достави зловреден файл на жертвата, може да изпълни произволни команди с привилегиите на потребителя, който стартира Vim.“
GNU Emacs и интеграцията с Git
При GNU Emacs проблемът остава неотстранен, тъй като разработчиците считат, че отговорността е на Git. Уязвимостта се проявява чрез интеграцията с контрол на версиите (vc-git). Отварянето на файл задейства Git операции чрез vc-refresh-state, който чете .git/config и изпълнява програми, дефинирани в core.fsmonitor. Това може да се използва за изпълнение на произволни команди.
Примерен сценарий на атака:
- Атакуващът създава архив (например имейл или споделен дял) с
.git/директория и конфигурационен файл, сочещ към изпълним скрипт. - Жертвата извлича архива и отваря текстовия файл.
- Payload-ът се изпълнява автоматично, без индикации в стандартната конфигурация на GNU Emacs.
Макар че технически GNU Emacs не изпълнява кода директно, рисковете за потребителя са реални, защото редакторът автоматично стартира Git на непроверени директории без изискване за потвърждение или sandbox защита.
Нгуен предлага GNU Emacs да блокира изрично core.fsmonitor, за да се предотврати автоматичното изпълнение на опасни скриптове. До момента уязвимостта остава неотстранена.
Препоръка за потребителите: Отваряйте файлове само от доверени източници и бъдете внимателни при сваляне на съдържание от интернет.









