Microsoft Windows I2O Filter Utility Driver (i2omgmt.sys) Local Privilege Escalation Vulnerability
13 May 2008
Summary
Intelligent Input/Output (I2O) is "a defunct computer input/output (I/O) specification. i2omgmt.sys is a Windows driver for the I2O Utility Filter". Local exploitation of an input validation vulnerability within version 5.1.2600.2180 of i2omgmt.sys, as included with Microsoft Corp's Windows XP operating system, could allow an attacker to execute arbitrary code in the context of the kernel.
Vulnerable Systems:
* i2omgmt.sys version 5.1.2600.2180 as installed on some Windows XP SP2
This vulnerability specifically exists due to insecure permissions on the \\.\I2OExc device interface. The permissions on this device allow "Everyone" write access. This could allow a locally logged-in user to access functionality designed for privileged use only.
Additionally, the IOCTL handlers for this device interface do not properly validate user-mode buffer passed to them, so an attacker can supply a fake DeviceObject pointer to a user-mode address. As such, it is possible to overwrite arbitrary memory or execute attacker-supplied code in the context of the kernel.
Analysis:
Exploitation allows an attacker to elevate privileges by overwriting arbitrary system memory or executing code within kernel context. An attacker needs to log-in to the target machine to exploit this vulnerability.
This driver is related to I2O protocol and RAID devices. It is not present by default on every Windows installation. However, iDefense found this driver loaded on several systems we tested.
Workaround:
Removing write permissions for "Everyone" appears to prevent access to the vulnerable code. Although no side effects were witnessed in lab tests, normal functionality may be hindered.