CVE-2021-47554

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

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

vdpasim: avoid putting an uninitialized iovadomain

The system will crash if we put an uninitialized iovadomain, this could happen when an error occurs before initializing the iovadomain in vdpasim_create().

BUG: kernel NULL pointer dereference, address: 0000000000000000 ... RIP: 0010:_cpuhpstateremoveinstance+0x96/0x1c0 ... Call Trace: <TASK> putiovadomain+0x29/0x220 vdpasimfree+0xd1/0x120 [vdpasim] vdpareleasedev+0x21/0x40 [vdpa] devicerelease+0x33/0x90 kobjectrelease+0x63/0x160 vdpasimcreate+0x127/0x2a0 [vdpasim] vdpasimnetdevadd+0x7d/0xfe [vdpasimnet] vdpanlcmddevaddsetdoit+0xe1/0x1a0 [vdpa] genlfamilyrcvmsgdoit+0x112/0x140 genlrcv_msg+0xdf/0x1d0 ...

So we must make sure the iova_domain is already initialized before put it.

In addition, we may get the following warning in this case: WARNING: ... drivers/iommu/iova.c:344 iovacacheput+0x58/0x70

So we must make sure the iovacacheput() is invoked only if the iovacacheget() is already invoked. Let's fix it together.

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"
}