The following flaw was reported by SUSE Security: The `spice-vdagentd` maintains a hash map named `active_xfers` that maps `task_ids` to UNIX domain socket connections they belong to. These `task_ids` refer to ongoing file transfers from the host to the virtual machine. An arbitrary client connected to `spice-vdagentd` via a UNIX domain socket can trigger an entry into this hash map, without the requirement that the client is associated with the currently active graphical session (function `do_agent_file_xfer_status`, specifically `vdagentd.c:1025`). There is no limit on the maximum amount of file transfers ongoing in parallel and there are no timeouts applied for a file transfer to be finished. Therefore any unprivileged local user with access to the `/run/spice-vdagentd/spice-vdagent-sock` socket path can perform a memory denial-of-service by entering a large amount of entries into this hash map. The system might enter an out of memory situation, causing a denial-of-service for spice-vdagentd or even other processes in the system.
Acknowledgments: Name: Matthias Gerstner (SUSE Security Team)
External References: https://www.openwall.com/lists/oss-security/2020/11/04/1
Created spice-vdagent tracking bugs for this issue: Affects: fedora-all [bug 1894433]
Upstream commits: https://github.com/freedesktop/spice-vd_agent/commit/1a8b93ca6ac0b690339ab7f0afc6fc45d198d332 https://github.com/freedesktop/spice-vd_agent/commit/9d35d8a86fb310fc1f29d428c0a96995948d2357
This bug is now closed. Further updates for individual products will be reflected on the CVE page(s): https://access.redhat.com/security/cve/cve-2020-25650
This issue has been addressed in the following products: Red Hat Enterprise Linux 8 Via RHSA-2021:1791 https://access.redhat.com/errata/RHSA-2021:1791