First published: Mon Dec 15 2008(Updated: )
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.
Credit: secalert@redhat.com
Affected Software | Affected Version | How to fix |
---|---|---|
Libvirt Libvirt | =0.4.1 | |
Libvirt Libvirt | =0.5.1 | |
Libvirt Libvirt | =0.4.6 | |
Libvirt Libvirt | =0.4.2 | |
Libvirt Libvirt | =0.3.3 | |
Libvirt Libvirt | =0.5.0 | |
Libvirt Libvirt | =0.3.2 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.