CVE-2026-46544 Overview
CVE-2026-46544 affects Microsoft UFO, an open-source framework for intelligent automation across devices and platforms. Version 3.0.1-4-ge2626659 accepts client-supplied session_id values in WebSocket task messages without verifying ownership. The server reuses any existing in-memory session object that matches the supplied identifier. An authenticated client can submit a TASK message with another user's session_id and receive that session's stored result through the send_task_end() callback. The flaw is classified as an authorization issue under [CWE-639] (Authorization Bypass Through User-Controlled Key).
Critical Impact
Authenticated clients can replay stale results from other users' completed sessions if they know or predict a valid session_id, exposing potentially sensitive automation output.
Affected Products
- Microsoft UFO open-source framework, version 3.0.1-4-ge2626659
- WebSocket task-handling component using send_task_end() callback
- Deployments retaining completed session objects in memory
Discovery Timeline
- 2026-05-27 - CVE-2026-46544 published to NVD
- 2026-05-27 - Last updated in NVD database
Technical Details for CVE-2026-46544
Vulnerability Analysis
Microsoft UFO exposes a WebSocket interface that accepts task submissions containing a session_id field. The server treats the client-supplied identifier as a lookup key into its in-memory session table. When the identifier matches an existing session, the server re-enters that session object instead of creating a new one.
Completed sessions remain in memory along with their populated result data. A new TASK message referencing such a session triggers the normal completion path. The send_task_end() callback then transmits the stale stored result to the requesting client. The attacker does not need to be the session's original owner, only an authenticated user of the same instance.
Root Cause
The root cause is an authorization gap. The server validates that the requester is authenticated but does not verify that the requester owns or is authorized to access the referenced session_id. This pattern matches [CWE-639], where a user-controlled key drives a sensitive lookup without ownership enforcement.
Attack Vector
Exploitation requires network access to the WebSocket endpoint, valid authentication, and knowledge or prediction of a live or recently completed session_id. The attacker connects, sends a crafted TASK message containing the target identifier, and reads the replayed result. The high attack complexity reflects the need to obtain or guess a valid session identifier within its in-memory lifetime.
No verified exploit code is available. See the GitHub Security Advisory for the technical description.
Detection Methods for CVE-2026-46544
Indicators of Compromise
- Multiple WebSocket TASK messages referencing the same session_id from different authenticated principals or source addresses.
- send_task_end() callback invocations where the receiving client identity differs from the session's original creator.
- Authenticated sessions submitting session_id values they did not previously create within the same connection lifecycle.
Detection Strategies
- Instrument the UFO server to log every TASK message with session_id, authenticated principal, source address, and timestamp.
- Correlate session creation events with later task submissions and flag any mismatch in originating identity.
- Audit application logs for repeated access to long-lived in-memory sessions after their original completion.
Monitoring Recommendations
- Forward UFO application and WebSocket logs to a centralized log platform for cross-user correlation.
- Alert on any single session_id accessed by more than one authenticated identity.
- Monitor for sequential or enumerative session_id submission patterns indicating identifier guessing.
How to Mitigate CVE-2026-46544
Immediate Actions Required
- Inventory all deployments of Microsoft UFO at version 3.0.1-4-ge2626659 and restrict network access to the WebSocket endpoint.
- Limit framework access to trusted authenticated users only, and review user accounts with active or recently issued credentials.
- Reduce session retention by clearing completed session objects from memory as soon as results are delivered.
Patch Information
Review the Microsoft UFO GitHub Security Advisory GHSA-29gc-vqjp-7fqf for vendor-provided fix guidance and updated releases. Upgrade to a version that binds each session_id to its creating principal and rejects mismatched lookups.
Workarounds
- Apply a server-side check that ties every session_id to the authenticating principal that created it and rejects cross-client lookups.
- Generate session_id values using cryptographically random identifiers of sufficient length to resist prediction.
- Expire and purge completed sessions immediately after send_task_end() delivery to eliminate the replay window.
- Place the WebSocket endpoint behind a reverse proxy that enforces per-user authorization on task submissions.
# Configuration example
# Restrict access to the UFO WebSocket endpoint at the network layer
# until an authorization-aware build is deployed.
iptables -A INPUT -p tcp --dport 5000 -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 5000 -j DROP
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

