CVE-2017-12134: High severity XEN Xen vulnerability
ISSUE DESCRIPTION =================
The block layer in Linux may choose to merge adjacent block IO requests. When Linux is running as a Xen guest, the default merging algorithm is replaced with a Xen-specific one. When Linux is running as an x86 PV guest, some BIO's are erroneously merged, corrupting the data stream to/from the block device.
This can result in incorrect access to an uncontrolled adjacent frame.
IMPACT ======
A buggy or malicious guest can cause Linux to read or write incorrect memory when processing a block stream. This could leak information from other guests in the system or from Xen itself, or be used to DoS or escalate privilege within the system.
VULNERABLE SYSTEMS ==================
All x86 Xen systems using pvops Linux in a backend role (either as dom0, or as a disk device driver domain) are affected. This includes upstream Linux versions 2.6.37 and later. Systems using the older classic-linux fork are not affected.
All PV x86 domains doing block IO on behalf of a guest, including dom0 and any PV driver domains, are vulnerable. (Any HVM driver domains running are not vulnerable.) This includes Xen vbd backends such as blkback, but also direct IO performed for the guest via eg qemu.
ARM systems are not affected.
The vulnerability is only exposed if the underlying block device has request merging enabled. See Mitigation.
The vulnerability is only exposed to configurations which use grant mapping as a transport mechanism for the block data. Configurations which use exclusively grant copy are not vulnerable.
MITIGATION ==========
Disable bio merges on all relevant underlying backend block devices. For example, echo 2 > /sys/block/nvme0n1/queue/nomerges
External References:
http://xenbits.xen.org/xsa/advisory-229.html
Other sources
The xenbiovecphysmergeable function in drivers/xen/biomerge.c in Xen might allow local OS guest users to corrupt block device data streams and consequently obtain sensitive memory information, cause a denial of service, or gain host OS privileges by leveraging incorrect block IO merge-ability calculation.
— Launchpad
Affected Software
Remediation
Patch Available
Patch Available
Patch Available
Event History
Frequently Asked Questions
What is the vulnerability identifier for this vulnerability?
The vulnerability identifier for this vulnerability is CVE-2017-12134.
What is the severity of CVE-2017-12134?
The severity of CVE-2017-12134 is medium.
How does CVE-2017-12134 affect the affected software?
CVE-2017-12134 might allow local OS guest users to corrupt block device data streams and gain sensitive memory information, cause a denial of service, or gain host OS privileges.
What is the recommended fix for CVE-2017-12134?
The recommended fix for CVE-2017-12134 is to update to the specified versions of the affected software.
Where can I find more information about CVE-2017-12134?
You can find more information about CVE-2017-12134 in the references provided: [link1], [link2], [link3].