Уязвимость в коде Microsoft NLWeb позволяла получать доступ к файлам на удалённом компьютере
В мае этого года, на конференции Build 2025, Microsoft представила проект NLWeb, призванный стать инструментом взаимодействия агентов искусственного интеллекта с веб-сайтами. Исследователи безопасности нашли в нём серьёзную уязвимость.
Microsoft позиционирует проект как основу для «агентской сети» — будущего, в котором агенты искусственного интеллекта выполняют сложные задачи, напрямую взаимодействуя с онлайн-сервисами.
Анань Гуань, исследователь в области безопасности, и Лэй Ван задокументировали уязвимость обхода пути во фреймворке с открытым исходным кодом. По словам Гуаня, они просматривали репозиторий NLWeb на GitHub, когда их внимание привлек определённый файл: webserver/static_file_handler.py.
Если взглянуть на первую строку кода, то можно заметить вполне безобидную на вид строку. Согласно официальной документации Python, функция os.path.normpath() нормализует путь, удаляя лишние разделители и ссылки верхнего уровня.
В Windows она преобразует прямые косые черты (/) в обратные косые черты (\). Например, путь типа A//B/./C/../D будет нормализован до A/B/D, но, как отмечает Гуань, у этой функции есть неприятный побочный эффект. Фактически, она не мешает пользователю «выйти» из заданного веб-каталога с помощью последовательностей ../.
Гуань подтвердил свои подозрения, настроив локальный сервер, прослушивающий адрес 0.0.0.0:8000, стандартную тестовую конфигурацию. Когда он выполнил curl "http://localhost:8000/static/..%2f..%2f..%2fetc/passwd", сервер успешно вернул содержимое файла /etc/passwd. /etc/passwd — это база данных учётных записей пользователей в системах UNIX, таких как Linux и macOS, где имена сопоставляются с идентификаторами и другой системной информацией. Исследователь также мог получить доступ к файлам в
Читать на habr.com