CVE-2021-47561

Source
https://nvd.nist.gov/vuln/detail/CVE-2021-47561
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2021-47561.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2021-47561
Related
Published
2024-05-24T15:15:20Z
Modified
2024-11-21T06:36:33Z
Summary
[none]
Details

In the Linux kernel, the following vulnerability has been resolved:

i2c: virtio: disable timeout handling

If a timeout is hit, it can result is incorrect data on the I2C bus and/or memory corruptions in the guest since the device can still be operating on the buffers it was given while the guest has freed them.

Here is, for example, the start of a slub_debug splat which was triggered on the next transfer after one transfer was forced to timeout by setting a breakpoint in the backend (rust-vmm/vhost-device):

BUG kmalloc-1k (Not tainted): Poison overwritten First byte 0x1 instead of 0x6b Allocated in virtioi2cxfer+0x65/0x35c age=350 cpu=0 pid=29 _kmalloc+0xc2/0x1c9 virtioi2cxfer+0x65/0x35c _i2ctransfer+0x429/0x57d i2ctransfer+0x115/0x134 i2cdevioctlrdwr+0x16a/0x1de i2cdevioctl+0x247/0x2ed vfsioctl+0x21/0x30 sysioctl+0xb18/0xb41 Freed in virtioi2cxfer+0x32e/0x35c age=244 cpu=0 pid=29 kfree+0x1bd/0x1cc virtioi2cxfer+0x32e/0x35c _i2ctransfer+0x429/0x57d i2ctransfer+0x115/0x134 i2cdevioctlrdwr+0x16a/0x1de i2cdevioctl+0x247/0x2ed vfsioctl+0x21/0x30 sys_ioctl+0xb18/0xb41

There is no simple fix for this (the driver would have to always create bounce buffers and hold on to them until the device eventually returns the buffers), so just disable the timeout support for now.

References

Affected packages

Debian:12 / linux

Package

Name
linux
Purl
pkg:deb/debian/linux?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
5.15.15-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:13 / linux

Package

Name
linux
Purl
pkg:deb/debian/linux?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
5.15.15-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}