CVE-2025-39782

Source
https://cve.org/CVERecord?id=CVE-2025-39782
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-39782.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2025-39782
Downstream
Related
Published
2025-09-11T16:56:32.616Z
Modified
2026-03-13T04:07:16.068611Z
Summary
jbd2: prevent softlockup in jbd2_log_do_checkpoint()
Details

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

jbd2: prevent softlockup in jbd2logdo_checkpoint()

Both jbd2logdocheckpoint() and jbd2journalshrinkcheckpointlist() periodically release jlistlock after processing a batch of buffers to avoid long hold times on the jlistlock. However, since both functions contend for jlist_lock, the combined time spent waiting and processing can be significant.

jbd2journalshrinkcheckpointlist() explicitly calls condresched() when needresched() is true to avoid softlockups during prolonged operations. But jbd2logdocheckpoint() only exits its loop when needresched() is true, relying on potentially sleeping functions like _flushbatch() or waitonbuffer() to trigger rescheduling. If those functions do not sleep, the kernel may hit a softlockup.

watchdog: BUG: soft lockup - CPU#3 stuck for 156s! [kworker/u129:2:373] CPU: 3 PID: 373 Comm: kworker/u129:2 Kdump: loaded Not tainted 6.6.0+ #10 Hardware name: Huawei TaiShan 2280 /BC11SPCD, BIOS 1.27 06/13/2017 Workqueue: writeback wbworkfn (flush-7:2) pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : nativequeuedspinlockslowpath+0x358/0x418 lr : jbd2logdocheckpoint+0x31c/0x438 [jbd2] Call trace: nativequeuedspinlockslowpath+0x358/0x418 jbd2logdocheckpoint+0x31c/0x438 [jbd2] jbd2logwaitforspace+0xfc/0x2f8 [jbd2] addtransactioncredits+0x3bc/0x418 [jbd2] startthishandle+0xf8/0x560 [jbd2] jbd2journalstart+0x118/0x228 [jbd2] __ext4journalstartsb+0x110/0x188 [ext4] ext4do_writepages+0x3dc/0x740 [ext4] ext4writepages+0xa4/0x190 [ext4] dowritepages+0x94/0x228 __writebacksingleinode+0x48/0x318 writebacksbinodes+0x204/0x590 _writebackinodeswb+0x54/0xf8 wbwriteback+0x2cc/0x3d8 wbdowriteback+0x2e0/0x2f8 wbworkfn+0x80/0x2a8 processonework+0x178/0x3e8 workerthread+0x234/0x3b8 kthread+0xf0/0x108 retfromfork+0x10/0x20

So explicitly call condresched() in jbd2logdocheckpoint() to avoid softlockup.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/39xxx/CVE-2025-39782.json"
}
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
f93ea411b73594f7d144855fd34278bcf34a9afc
Fixed
f683d611518d30334813eecf9a8c687453e2800e
Fixed
f7ee8fd689e6d534f9fd2494b9266f7998082e65
Fixed
84ff98c1ea19acd3f9389e4bb6061364e943f85e
Fixed
26cb9aad94cb1811d8fae115594cc71fa3d91ab0
Fixed
41f40038de62e8306897cf6840791b268996432a
Fixed
429d50cbaff45090d52a1ea850d5de8c14881ee7
Fixed
3faac5e1d14c63260fd1bf789d96bde3ab3d9e54
Fixed
9d98cf4632258720f18265a058e62fde120c0151

Database specific

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