cbcvebase.
CVE-2022-50381
published 2025-09-18

CVE-2022-50381: In the Linux kernel, the following vulnerability has been resolved: md: fix a crash in mempool_free There's a crash in mempool_free when running the lvm test…

PriorityP421medium5.5CVSS 3.1
AVLACLPRLUINSUCNINAH
EPSS
0.15%
4.7th percentile
In the Linux kernel, the following vulnerability has been resolved:

md: fix a crash in mempool_free

There's a crash in mempool_free when running the lvm test
shell/lvchange-rebuild-raid.sh.

The reason for the crash is this:
* super_written calls atomic_dec_and_test(&mddev->pending_writes) and
wake_up(&mddev->sb_wait). Then it calls rdev_dec_pending(rdev, mddev)
and bio_put(bio).
* so, the process that waited on sb_wait and that is woken up is racing
with bio_put(bio).
* if the process wins the race, it calls bioset_exit before bio_put(bio)
is executed.
* bio_put(bio) attempts to free a bio into a destroyed bio set - causing
a crash in mempool_free.

We fix this bug by moving bio_put before atomic_dec_and_test.

We also move rdev_dec_pending before atomic_dec_and_test as suggested by
Neil Brown.

The function md_end_flush has a similar bug - we must call bio_put before
we decrement the number of in-progress bios.

BUG: kernel NULL pointer dereference, address: 0000000000000000
#PF: supervisor write access in kernel mode
#PF: error_code(0x0002) - not-present page
PGD 11557f0067 P4D 11557f0067 PUD 0
Oops: 0002 [#1] PREEMPT SMP
CPU: 0 PID: 73 Comm: kworker/0:1 Not tainted 6.1.0-rc3 #5
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-2 04/01/2014
Workqueue: kdelayd flush_expired_bios [dm_delay]
RIP: 0010:mempool_free+0x47/0x80
Code: 48 89 ef 5b 5d ff e0 f3 c3 48 89 f7 e8 32 45 3f 00 48 63 53 08 48 89 c6 3b 53 04 7d 2d 48 8b 43 10 8d 4a 01 48 89 df 89 4b 08 89 2c d0 e8 b0 45 3f 00 48 8d 7b 30 5b 5d 31 c9 ba 01 00 00 00
RSP: 0018:ffff88910036bda8 EFLAGS: 00010093
RAX: 0000000000000000 RBX: ffff8891037b65d8 RCX: 0000000000000001
RDX: 0000000000000000 RSI: 0000000000000202 RDI: ffff8891037b65d8
RBP: ffff8891447ba240 R08: 0000000000012908 R09: 00000000003d0900
R10: 0000000000000000 R11: 0000000000173544 R12: ffff889101a14000
R13: ffff8891562ac300 R14: ffff889102b41440 R15: ffffe8ffffa00d05
FS: 0000000000000000(0000) GS:ffff88942fa00000(0000) knlGS:0000000

Affected

23 ranges
VendorProductVersion rangeFixed in
debianlinux< linux 6.1.4-1 (bookworm)linux 6.1.4-1 (bookworm)
linuxlinux
linuxlinux>= f8b58edf3acf0dcc186b8330939000ecf709368a < 732cd66ec19a17f2b9183d7d5b7bdb9c39b0776e732cd66ec19a17f2b9183d7d5b7bdb9c39b0776e
linuxlinux>= f8b58edf3acf0dcc186b8330939000ecf709368a < cf06b162f5b6337b688072a1a47941280b8f7110cf06b162f5b6337b688072a1a47941280b8f7110
linuxlinux>= f8b58edf3acf0dcc186b8330939000ecf709368a < b5be563b4356b3089b3245d024cae3f248ba7090b5be563b4356b3089b3245d024cae3f248ba7090
linuxlinux>= f8b58edf3acf0dcc186b8330939000ecf709368a < 384ef33d37cefb2ac539d44597d03f06c9b8975c384ef33d37cefb2ac539d44597d03f06c9b8975c
linuxlinux>= f8b58edf3acf0dcc186b8330939000ecf709368a < ae7793027766491c5f8635b12d15a5940d3b8698ae7793027766491c5f8635b12d15a5940d3b8698
linuxlinux>= f8b58edf3acf0dcc186b8330939000ecf709368a < 91bd504128a51776472445070e11a3b0f9348c9091bd504128a51776472445070e11a3b0f9348c90
linuxlinux>= f8b58edf3acf0dcc186b8330939000ecf709368a < 842f222fc42a9239831e15b1fd49a51c546902cb842f222fc42a9239831e15b1fd49a51c546902cb
linuxlinux>= f8b58edf3acf0dcc186b8330939000ecf709368a < 97ce99984be12b9acb49ddce0f5d8ebb037adbb697ce99984be12b9acb49ddce0f5d8ebb037adbb6
linuxlinux>= f8b58edf3acf0dcc186b8330939000ecf709368a < 341097ee53573e06ab9fc675d96a052385b851fa341097ee53573e06ab9fc675d96a052385b851fa
linuxlinux_kernel< 4.9.3374.9.337
linuxlinux_kernel>= 0 < 5.10.178-15.10.178-1
linuxlinux_kernel>= 0 < 6.1.4-16.1.4-1
linuxlinux_kernel>= 0 < 6.1.4-16.1.4-1
linuxlinux_kernel>= 0 < 6.1.4-16.1.4-1
linuxlinux_kernel>= 4.10 < 4.14.3034.14.303
linuxlinux_kernel>= 4.15 < 4.19.2704.19.270
linuxlinux_kernel>= 4.20 < 5.4.2295.4.229
linuxlinux_kernel>= 5.11 < 5.15.875.15.87
linuxlinux_kernel>= 5.16 < 6.0.176.0.17
linuxlinux_kernel>= 5.5 < 5.10.1635.10.163
linuxlinux_kernel>= 6.1 < 6.1.36.1.3

CVSS provenance

nvdv3.15.5MEDIUMCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
osv5.5MEDIUM
vendor_debian5.5MEDIUM
vendor_redhat5.5MEDIUM
Stop checking back — get the weekly exploitation signal.

Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.