Windows ML CLI — это инструмент командной строки для создания портативных, производительных и высококачественных моделей искусственного интеллекта для Windows ML. До версии 0.4.0 компонент src/winml/modelkit/serve/cli_api.py предоставляет команды WinML CLI через HTTP API локального хоста без аутентификации и настраивает параметрallow_origins как подстановочный знак как в src/winml/modelkit/serve/cli_api.py, так и в src/winml/modelkit/serve/app.py. Вредоносный веб-сайт, загруженный пользователем, может отправлять запросы между источниками в /v1/cli/build или /v1/cli/config и устанавливать для параметраtrust_remote_code значение true, которое без проверки преобразуется в флаг командной строки --trust-remote-code.
Это достигает AutoConfig.from_pretrained с параметромtrust_remote_code=True в src/winml/modelkit/loader/_autoconfig.py и импортирует код Python из хранилища моделей, контролируемого злоумышленником, что приводит к выполнению произвольного кода от имени пользователя сервера. Эта проблема исправлена в версии 0.4.0.
Показать оригинальное описание (EN)
Windows ML CLI is a command line tool for building portable, performant, and high-quality AI models for Windows ML. Prior to 0.4.0, the src/winml/modelkit/serve/cli_api.py component exposes WinML CLI commands through a localhost HTTP API without authentication and configures the allow_origins setting as a wildcard in both src/winml/modelkit/serve/cli_api.py and src/winml/modelkit/serve/app.py. A malicious website loaded by a user can send cross-origin requests to /v1/cli/build or /v1/cli/config and set the trust_remote_code parameter to true, which is converted to the --trust-remote-code command-line flag without validation. This reaches AutoConfig.from_pretrained with trust_remote_code=True in src/winml/modelkit/loader/_autoconfig.py and imports Python code from an attacker-controlled model repository, resulting in arbitrary code execution as the server user. This issue is fixed in version 0.4.0.
Характеристики атаки
Последствия
Строка CVSS v4.0