CVE-2025-21878

Source
https://cve.org/CVERecord?id=CVE-2025-21878
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2025-21878.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2025-21878
Downstream
Related
Published
2025-03-27T14:57:08.155Z
Modified
2026-03-20T12:41:13.354883Z
Summary
i2c: npcm: disable interrupt enable bit before devm_request_irq
Details

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

i2c: npcm: disable interrupt enable bit before devmrequestirq

The customer reports that there is a soft lockup issue related to the i2c driver. After checking, the i2c module was doing a tx transfer and the bmc machine reboots in the middle of the i2c transaction, the i2c module keeps the status without being reset.

Due to such an i2c module status, the i2c irq handler keeps getting triggered since the i2c irq handler is registered in the kernel booting process after the bmc machine is doing a warm rebooting. The continuous triggering is stopped by the soft lockup watchdog timer.

Disable the interrupt enable bit in the i2c module before calling devmrequestirq to fix this issue since the i2c relative status bit is read-only.

Here is the soft lockup log. [ 28.176395] watchdog: BUG: soft lockup - CPU#0 stuck for 26s! [swapper/0:1] [ 28.183351] Modules linked in: [ 28.186407] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.15.120-yocto-s-dirty-bbebc78 #1 [ 28.201174] pstate: 40000005 (nZcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 28.208128] pc : __do_softirq+0xb0/0x368 [ 28.212055] lr : __do_softirq+0x70/0x368 [ 28.215972] sp : ffffff8035ebca00 [ 28.219278] x29: ffffff8035ebca00 x28: 0000000000000002 x27: ffffff80071a3780 [ 28.226412] x26: ffffffc008bdc000 x25: ffffffc008bcc640 x24: ffffffc008be50c0 [ 28.233546] x23: ffffffc00800200c x22: 0000000000000000 x21: 000000000000001b [ 28.240679] x20: 0000000000000000 x19: ffffff80001c3200 x18: ffffffffffffffff [ 28.247812] x17: ffffffc02d2e0000 x16: ffffff8035eb8b40 x15: 00001e8480000000 [ 28.254945] x14: 02c3647e37dbfcb6 x13: 02c364f2ab14200c x12: 0000000002c364f2 [ 28.262078] x11: 00000000fa83b2da x10: 000000000000b67e x9 : ffffffc008010250 [ 28.269211] x8 : 000000009d983d00 x7 : 7fffffffffffffff x6 : 0000036d74732434 [ 28.276344] x5 : 00ffffffffffffff x4 : 0000000000000015 x3 : 0000000000000198 [ 28.283476] x2 : ffffffc02d2e0000 x1 : 00000000000000e0 x0 : ffffffc008bdcb40 [ 28.290611] Call trace: [ 28.293052] __do_softirq+0xb0/0x368 [ 28.296625] __irqexitrcu+0xe0/0x100 [ 28.300374] irqexit+0x14/0x20 [ 28.303513] handledomainirq+0x68/0x90 [ 28.307440] gichandleirq+0x78/0xb0 [ 28.311098] callonirqstack+0x20/0x38 [ 28.315019] dointerrupthandler+0x54/0x5c [ 28.319199] el1interrupt+0x2c/0x4c [ 28.322777] el1h64irqhandler+0x14/0x20 [ 28.326872] el1h64irq+0x74/0x78 [ 28.330269] __setupirq+0x454/0x780 [ 28.333841] requestthreadedirq+0xd0/0x1b4 [ 28.338107] devmrequestthreadedirq+0x84/0x100 [ 28.342809] npcmi2cprobebus+0x188/0x3d0 [ 28.346990] platformprobe+0x6c/0xc4 [ 28.350653] really_probe+0xcc/0x45c [ 28.354227] __driverprobedevice+0x8c/0x160 [ 28.358578] driverprobedevice+0x44/0xe0 [ 28.362670] __driverattach+0x124/0x1d0 [ 28.366589] busforeachdev+0x7c/0xe0 [ 28.370426] driverattach+0x28/0x30 [ 28.373997] busadddriver+0x124/0x240 [ 28.377830] driverregister+0x7c/0x124 [ 28.381662] _platformdriverregister+0x2c/0x34 [ 28.386362] npcmi2cinit+0x3c/0x5c [ 28.389937] dooneinitcall+0x74/0x230 [ 28.393768] kernelinitfreeable+0x24c/0x2b4 [ 28.398126] kernelinit+0x28/0x130 [ 28.401614] retfromfork+0x10/0x20 [ 28.405189] Kernel panic - not syncing: softlockup: hung tasks [ 28.411011] SMP: stopping secondary CPUs [ 28.414933] Kernel Offset: disabled [ 28.418412] CPU features: 0x00000000,00000802 [ 28.427644] Rebooting in 20 seconds..

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/21xxx/CVE-2025-21878.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
56a1485b102ed1cd5a4af8e87ed794699fd1cad2
Fixed
f32d7b4dc6e791523c70e83049645dcba2a2aa33
Fixed
e3aea1dba97d31eceed7b622000af0406988b9c8
Fixed
545b563eb00d0576775da4011b3f7ffefc9e8c60
Fixed
1b267e1b87d52b16e7dfcc7ab2ab760f6f8f9ca9
Fixed
12d0e39916705b68d2d8ba20a8e35d1d27afc260
Fixed
846e371631c57365eeb89e5db1ab0f344169af93
Fixed
dd1998e243f5fa25d348a384ba0b6c84d980f2b2

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2025-21878.json"