In the Linux kernel, the following vulnerability has been resolved:
drbd: only clone bio if we have a backing device
Commit c347a787e34cb (drbd: set ->bibdev in drbdreqnew) moved a biosetdev call (which has since been removed) to "earlier", from drbdrequestprepare to drbdreq_new.
The problem is that this accesses device->ldev->backing_bdev, which is not NULL-checked at this point. When we don't have an ldev (i.e. when the DRBD device is diskless), this leads to a null pointer deref.
So, only allocate the private_bio if we actually have a disk. This is also a small optimization, since we don't clone the bio to only to immediately free it again in the diskless case.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/50xxx/CVE-2022-50506.json",
"cna_assigner": "Linux"
}[
{
"signature_type": "Function",
"signature_version": "v1",
"target": {
"file": "drivers/block/drbd/drbd_req.c",
"function": "drbd_req_new"
},
"id": "CVE-2022-50506-0960cd44",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@05580a3bbf3cec677cb00a85dfeb21d6a9b48eaf",
"digest": {
"function_hash": "28578817823263537681036978581430452915",
"length": 1088.0
}
},
{
"signature_type": "Line",
"signature_version": "v1",
"target": {
"file": "drivers/block/drbd/drbd_req.c"
},
"id": "CVE-2022-50506-12f001b1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@05580a3bbf3cec677cb00a85dfeb21d6a9b48eaf",
"digest": {
"line_hashes": [
"273353339412522568083962768688647269470",
"249396980206438467037159478815141866323",
"182508982502361865668759978336064593482",
"248619799282761034531349029641471393871",
"328577400407483840828453406684938964584",
"159116626837836184141967426603297158711",
"73071378800687195253139654074533155265",
"295488000377150139867037247962046220363",
"80604130458035220378733228124494545249",
"98380271705765823962244854761941948571",
"194092820256586863600867331735484727604",
"318069575134606330689076725027053071544",
"243410062030605036258462765116737303717"
],
"threshold": 0.9
}
},
{
"signature_type": "Function",
"signature_version": "v1",
"target": {
"file": "drivers/block/drbd/drbd_req.c",
"function": "drbd_request_prepare"
},
"id": "CVE-2022-50506-324a6237",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@05580a3bbf3cec677cb00a85dfeb21d6a9b48eaf",
"digest": {
"function_hash": "283779788592217632915357260091410405257",
"length": 980.0
}
}
]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-50506.json"