Description
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.
Published: 2026-09-02
Score: 8.6 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Windows ML CLI exposes a HTTP API on localhost that performs no authentication and sets the CORS allow_origins header to a wildcard. A page loaded in the victim’s browser can call the /v1/cli/build or /v1/cli/config endpoints, pass trust_remote_code=true, and cause the CLI to download and execute Python code from an attacker‑controlled model repository. This results in arbitrary code execution as the user who runs the WinML CLI service, allowing full compromise of the host system.

Affected Systems

All installations of Microsoft Windows ML CLI prior to version 0.4.0 are affected. The tool is intended to run on local machines, developer workstations, or build servers where the service is started without proper authentication.

Risk and Exploitability

The vulnerability carries a CVSS score of 8.6, indicating high severity. The EPSS score is not available, so the exact exploitation probability is unknown, but the open API and wildcard CORS enable an attacker who can persuade the user to load a malicious webpage to target the local service. The vulnerability is not listed in the CISA KEV catalog. An attacker can exploit the missing authentication (CWE‑306) and unsafe trust_remote_code handling (CWE‑942) to gain full control of the host running the WinML CLI service.

Generated by OpenCVE AI on September 3, 2026 at 09:59 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Microsoft Windows ML CLI to version 0.4.0 or later, which removes the unauthenticated API and disables the trust_remote_code flag.
  • If an upgrade is not immediately possible, configure the service to listen only on localhost and block the port used by the CLI with a firewall rule to prevent external access.
  • If the WinML CLI service is not required for local development, disable or uninstall the tool to eliminate the vulnerable service from the host.

Generated by OpenCVE AI on September 3, 2026 at 09:59 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 03 Sep 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Thu, 03 Sep 2026 16:00:00 +0000

Type Values Removed Values Added
First Time appeared Microsoft
Microsoft winml-cli
Vendors & Products Microsoft
Microsoft winml-cli

Wed, 02 Sep 2026 19:30:00 +0000

Type Values Removed Values Added
Description 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.
Title Windows ML CLI: CORS misconfig enables localhost RCE
Weaknesses CWE-306
CWE-942
References
Metrics cvssV4_0

{'score': 8.6, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Microsoft Winml-cli
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-03T16:01:26.554Z

Reserved: 2026-09-01T20:05:09.423Z

Link: CVE-2026-84452

cve-icon Vulnrichment

Updated: 2026-09-03T16:01:03.463Z

cve-icon NVD

Status : Received

Published: 2026-09-02T20:17:41.350

Modified: 2026-09-03T17:17:25.297

Link: CVE-2026-84452

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-03T15:33:45Z

Weaknesses
  • CWE-306

    Missing Authentication for Critical Function

  • CWE-942

    Permissive Cross-domain Security Policy with Untrusted Domains