REDHAT-BUG-476560: Medium severity libvirt libvirt vulnerability
Daniel Berrange discovered that libvirt fails to check whether connection to libvirtd is in read-only or read-write mode, possibly allowing non-privileged users with access to the host machine to perform certain actions that should be restricted to administrative users only.
The following methods in libvirt.c are missing a check against the read-only connection flag:
virDomainMigrate virDomainMigratePrepare virDomainMigratePerform virDomainMigrateFinish virDomainMigratePrepare2 virDomainMigrateFinish2 virDomainBlockPeek virDomainMemoryPeek virDomainSetAutostart virNetworkSetAutostart virConnectFindStoragePoolSources virStoragePoolSetAutostart
In recent versions, libvirt uses PolicyKit to authorize connections from users. Default policy allows any local user to connect in the read-only mode.
Older versions of libvirt, or version not compiled with PolicyKit or with PolicyKit authorization disabled, default to allow read-only connections to all local users.
Thus out of the box unprivileged local users may be able to migrate VMs, set or unset the autostart flag for domains, networks & storage pools, and access privileged data in the VM memory, or disks.
All TCP remote connections are read-write, and fully authenticated, thus not impacted.
Affected Software
Event History
Frequently Asked Questions
What is the severity of REDHAT-BUG-476560?
The severity of REDHAT-BUG-476560 is considered critical due to the potential for unauthorized access to privileged actions.
How do I fix REDHAT-BUG-476560?
To fix REDHAT-BUG-476560, you should update libvirt to the latest patched version that addresses the security issue.
Who is affected by REDHAT-BUG-476560?
Users of older versions of libvirt and policyKit-compiled versions are affected by REDHAT-BUG-476560.
What actions can be performed due to REDHAT-BUG-476560?
Due to REDHAT-BUG-476560, non-privileged users may perform administrative actions that should be restricted.
What is libvirt in context of REDHAT-BUG-476560?
Libvirt is an API, daemon, and management tool for managing platform virtualization, which is vulnerable in this case.