Bug 1881037 (CVE-2020-25637)
Summary: | CVE-2020-25637 libvirt: double free in qemuAgentGetInterfaces() in qemu_agent.c | ||
---|---|---|---|
Product: | [Other] Security Response | Reporter: | Mauro Matteo Cascella <mcascell> |
Component: | vulnerability | Assignee: | Red Hat Product Security <security-response-team> |
Status: | CLOSED ERRATA | QA Contact: | |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | unspecified | CC: | agedosier, berrange, clalancette, eblake, erik-fedora, itamar, jdenemar, jforbes, jsuchane, knoel, laine, libvirt-maint, marcandre.lureau, pkrempa, rjones, security-response-team, veillard, virt-maint, virt-maint, yafu |
Target Milestone: | --- | Keywords: | Security |
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | libvirt 6.8.0 | Doc Type: | If docs needed, set a value |
Doc Text: |
A double free memory issue was found to occur in the libvirt API responsible for requesting information about network interfaces of a running QEMU domain. This flaw affects the polkit access control driver. Specifically, clients connecting to the read-write socket with limited ACL permissions could use this flaw to crash the libvirt daemon, resulting in a denial of service, or potentially escalate their privileges on the system. The highest threat from this vulnerability is to data confidentiality and integrity as well as system availability.
|
Story Points: | --- |
Clone Of: | Environment: | ||
Last Closed: | 2020-11-10 14:21:34 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 1881899, 1881900, 1881902, 1881903, 1881904, 1882721, 1883864, 1883865, 1896789, 1910617 | ||
Bug Blocks: | 1878876 |
Description
Mauro Matteo Cascella
2020-09-21 12:18:32 UTC
Acknowledgments: Name: Ilja Van Sprundel (IOActive) Seems like this flaw was introduced way back in libvirt v1.2.14 with the following commit: -> https://libvirt.org/git/?p=libvirt.git;a=commit;h=0977b8aa071de550e1a013d35e2c72615e65d520 As a side note, a recent update in version 6.7.0 replaced virStringListFree (responsible for freeing ifname) with g_strfreev(): -> https://libvirt.org/git/?p=libvirt.git;a=commit;h=ee247e1d3fbfcf8d2aaff9447b79a65910bcf026 This change didn't have any repercussions on the impact of this flaw, though. Statement: Red Hat Enterprise Linux 5 and 6 are not affected by this issue as they shipped an older version of `libvirt` which did not include the vulnerable code. This flaw affects versions of the `libvirt` package as shipped with Red Hat Enterprise Linux 7 and 8 as well as Red Hat Enterprise Linux Advanced Virtualization 8. Future `libvirt` package updates for these products may address this issue. The check in virDomainInterfaceAddresses() in libvirt-domain.c prevents read-only clients from exploiting this flaw: ``` if (source == VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_AGENT) virCheckReadOnlyGoto(dom->conn->flags, error); ``` This issue mostly involves a security boundary violation in the polkit access control driver: https://libvirt.org/aclpolkit.html. Specifically, clients connecting to the read-write socket with limited ACL permissions (i.e., read-only) could use this flaw to crash the libvirt daemon, resulting in a denial of service, or potentially escalate their privileges on the system. Upstream commits: * https://libvirt.org/git/?p=libvirt.git;a=commit;h=955029bd0ad7ef96000f529ac38204a8f4a96401 * https://libvirt.org/git/?p=libvirt.git;a=commit;h=50864dcda191eb35732dbd80fb6ca251a6bba923 * https://libvirt.org/git/?p=libvirt.git;a=commit;h=e4116eaa44cb366b59f7fe98f4b88d04c04970ad * https://libvirt.org/git/?p=libvirt.git;a=commit;h=a63b48c5ecef077bf0f909a85f453a605600cf05 Created libvirt tracking bugs for this issue: Affects: fedora-all [bug 1883864] Created mingw-libvirt tracking bugs for this issue: Affects: fedora-all [bug 1883865] This issue has been addressed in the following products: Red Hat Enterprise Linux 7 Via RHSA-2020:5040 https://access.redhat.com/errata/RHSA-2020:5040 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-25637 This issue has been addressed in the following products: Advanced Virtualization for RHEL 8.2.1 Via RHSA-2020:5111 https://access.redhat.com/errata/RHSA-2020:5111 This issue has been addressed in the following products: Red Hat Enterprise Linux 8 Via RHSA-2021:1762 https://access.redhat.com/errata/RHSA-2021:1762 |