CVE-2021-47468: isdn: mISDN: Fix sleeping function called from invalid context
In the Linux kernel, the following vulnerability has been resolved:
isdn: mISDN: Fix sleeping function called from invalid context
The driver can call card->isac.release() function from an atomic context.
Fix this by calling this function after releasing the lock.
The following log reveals it:
[ 44.168226 ] BUG: sleeping function called from invalid context at kernel/workqueue.c:3018 [ 44.168941 ] inatomic(): 1, irqsdisabled(): 1, nonblock: 0, pid: 5475, name: modprobe [ 44.169574 ] INFO: lockdep is turned off. [ 44.169899 ] irq event stamp: 0 [ 44.170160 ] hardirqs last enabled at (0): [<0000000000000000>] 0x0 [ 44.170627 ] hardirqs last disabled at (0): [<ffffffff814209ed>] copyprocess+0x132d/0x3e00 [ 44.171240 ] softirqs last enabled at (0): [<ffffffff81420a1a>] copyprocess+0x135a/0x3e00 [ 44.171852 ] softirqs last disabled at (0): [<0000000000000000>] 0x0 [ 44.172318 ] Preemption disabled at: [ 44.172320 ] [<ffffffffa009b0a9>] njrelease+0x69/0x500 [netjet] [ 44.174441 ] Call Trace: [ 44.174630 ] dumpstacklvl+0xa8/0xd1 [ 44.174912 ] dumpstack+0x15/0x17 [ 44.175166 ] mightsleep+0x3a2/0x510 [ 44.175459 ] ? njrelease+0x69/0x500 [netjet] [ 44.175791 ] mightsleep+0x82/0xe0 [ 44.176063 ] ? startflushwork+0x20/0x7b0 [ 44.176375 ] startflushwork+0x33/0x7b0 [ 44.176672 ] ? traceirqenablercuidle+0x85/0x170 [ 44.177034 ] ? kasanquarantineput+0xaa/0x1f0 [ 44.177372 ] ? kasanquarantineput+0xaa/0x1f0 [ 44.177711 ] flushwork+0x11a/0x1a0 [ 44.177991 ] ? flushwork+0x20/0x20 [ 44.178257 ] ? lockrelease+0x13c/0x8f0 [ 44.178550 ] ? kasancheckwrite+0x14/0x20 [ 44.178872 ] ? dorawspinlock+0x148/0x360 [ 44.179187 ] ? readlockisrecursive+0x20/0x20 [ 44.179530 ] ? kasancheckread+0x11/0x20 [ 44.179846 ] ? dorawspinunlock+0x55/0x900 [ 44.180168 ] ? kasanslabfree+0x116/0x140 [ 44.180505 ] ? rawspinunlockirqrestore+0x41/0x60 [ 44.180878 ] ? skbqueuepurge+0x1a3/0x1c0 [ 44.181189 ] ? kfree+0x13e/0x290 [ 44.181438 ] flushwork+0x17/0x20 [ 44.181695 ] mISDNfreedchannel+0xe8/0x100 [ 44.182006 ] isacrelease+0x210/0x260 [mISDNipac] [ 44.182366 ] njrelease+0xf6/0x500 [netjet] [ 44.182685 ] njremove+0x48/0x70 [netjet] [ 44.182989 ] pcideviceremove+0xa9/0x250
Other sources
In the Linux kernel, the following vulnerability has been resolved:
isdn: mISDN: Fix sleeping function called from invalid context
The Linux kernel CVE team has assigned CVE-2021-47468 to this issue.
Upstream advisory: https://lore.kernel.org/linux-cve-announce/2024052227-CVE-2021-47468-6c1b@gregkh/T
— Red Hat
Linux Kernel is vulnerable to a denial of service, caused by a flaw with sleeping function called from invalid context. By sending a specially crafted request, a local authenticated attacker could exploit this vulnerability to cause a denial of service condition.
— IBM
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2021-47468?
CVE-2021-47468 has been categorized as a moderate severity vulnerability due to its potential impact on system stability.
How do I fix CVE-2021-47468?
To fix CVE-2021-47468, upgrade the kernel to version 4.4.290, 4.9.288, 4.14.253, 4.19.214, 5.4.156, 5.10.76, 5.14.15, or 5.15.
Which systems are affected by CVE-2021-47468?
CVE-2021-47468 affects several versions of the Linux kernel across various distributions, particularly those from Red Hat.
What components does CVE-2021-47468 affect in the Linux kernel?
CVE-2021-47468 specifically affects the ISDN subsystem, particularly the mISDN driver.
Has CVE-2021-47468 been disclosed publicly?
Yes, CVE-2021-47468 has been publicly disclosed and documented in vulnerability databases.