A flaw was found in libvirt. A local attacker, specifically a process running as the confined swtpm user, could exploit a symlink-following vulnerability in the virFileChownFiles() function. By planting a symbolic link within the swtpm state directory, the attacker could trick the root-level libvirt daemon into changing the ownership of an arbitrary file to the swtpm user. This allows for privilege escalation from the swtpm sandbox to root-level file ownership control.
If virtual Trusted Platform Module (vTPM) functionality is not required, remove the <tpm> device definition from the domain XML configuration to prevent the vulnerable code path from being reached.
To check if a domain uses vTPM:
virsh dumpxml <domain> | grep -A5 '<tpm'
To remove it, edit the domain XML and delete the <tpm> block. This prevents libvirt from spawning swtpm processes and from calling virFileChownFiles() on the swtpm state directory during domain startup. Domains that require vTPM for guest OS functionality cannot use this mitigation and should prioritize applying the upstream fix.