Атака на системи online-компіляції через маніпуляцію із заголовними файлами

Hanno Böck, автор проекту fuzzing-project.org, звернув увагу на вразливість інтерфейсів інтерактивної компіляції, що допускають обробку зовнішнього коду мовою Сі. При вказівці довільного шляху в директиві #include помилка компіляції включає вміст файлу, який не вдалося скомпілювати.

Наприклад, підставивши в одному з online-сервісів код «#include » на виході вдалося отримати хеш пароля користувача root із файлу /etc/shadow, що також свідчить про те, що web-сервіс виконується з правами root і запускає команди компіляції під користувачем root (не виключено, що при компіляції використовувався ізольований контейнер, але запуск з правами root у контейнері також є проблемою). Проблемний сервіс, у якому вдалося відтворити проблему, поки що не афішується. Спроби відкриття файлів псевдо ФС /proc не увінчалися успіхом оскільки GCC сприймає їх як порожні файли, але відкриття файлів з /sys працює.

Джерело: opennet.ru

Додати коментар або відгук