Bug 2493580 (CVE-2026-57964)

Summary: CVE-2026-57964 spice-vdagent: Authentication bypass on macOS/BSD due to dummy session info
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security <prodsec-ir-bot>
Status: NEW --- QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: rhel-process-autobot, watson-tool-maintainers
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in spice-vdagent. On macOS and BSD platforms, an unprivileged local user can bypass authentication by connecting to the Unix Domain Socket Client/Server (UDSCS) socket. This allows the unauthorized user to receive host-to-guest messages, including clipboard data and file transfers, inject clipboard data to the SPICE host, and prevent the legitimate agent from functioning.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description OSIDB Bzimport 2026-06-26 15:36:57 UTC
A vulnerability was found in spice-vdagent. On macOS and BSD platforms, the dummy-session-info.c:session_info_create() function unconditionally returns NULL because neither ConsoleKit nor systemd-logind exists. In vdagentd.c:agent_connect(), the entire UID/PID verification block is wrapped inside a conditional check on session_info. When session_info is NULL (always on macOS/BSD), zero authentication is performed. Any process that connects to the UDSCS socket is silently accepted as the daemon's trusted agent, allowing an unprivileged local user to become active_session_conn with no credential checks. This enables receiving all host-to-guest messages (clipboard data, file transfers, monitor config), injecting clipboard data to the SPICE host, intercepting file transfers, and preventing the legitimate agent from becoming active. Additionally, the check_uid_of_pid() function reads /proc/%u/status which does not exist on macOS/Darwin. On Linux with systemd-logind, the daemon logs "UID mismatch" but reportedly still processes commands from unauthorized connections.

Note: macOS/BSD is not a platform shipped by Red Hat, but the vulnerability exists in the upstream spice-vdagent codebase.