{"id":"CVE-2025-68168","state":"PUBLISHED","title":"jfs: fix uninitialized waitqueue in transaction manager","description":"In the Linux kernel, the following vulnerability has been resolved:\n\njfs: fix uninitialized waitqueue in transaction manager\n\nThe transaction manager initialization in txInit() was not properly\ninitializing TxBlock[0].waitor waitqueue, causing a crash when\ntxEnd(0) is called on read-only filesystems.\n\nWhen a filesystem is mounted read-only, txBegin() returns tid=0 to\nindicate no transaction. However, txEnd(0) still gets called and\ntries to access TxBlock[0].waitor via tid_to_tblock(0), but this\nwaitqueue was never initialized because the initialization loop\nstarted at index 1 instead of 0.\n\nThis causes a 'non-static key' lockdep warning and system crash:\n  INFO: trying to register non-static key in txEnd\n\nFix by ensuring all transaction blocks including TxBlock[0] have\ntheir waitqueues properly initialized during txInit().","publishedAt":"2025-12-16T13:42:48.350Z","updatedAt":"2026-08-05T12:09:57.842Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"2a8807f9f511c64de0c7cc9900a1683e3d72a3e5","status":"affected","lessThan":"d6af7fce2e162ac68e85d3a11eb6ac8c35b24b64","versionType":"git"},{"version":"5c094ca994824e038b6a97835ded4e5d1d808504","status":"affected","lessThan":"8cae9cf23e0bd424ac904e753639a587543ce03a","versionType":"git"},{"version":"2febd5f81e4bfba61d9f374dcca628aff374cc56","status":"affected","lessThan":"a2aa97cde9857f881920635a2e3d3b11769619c5","versionType":"git"},{"version":"aa7cdf487ab3fa47284daaccc3d7d5de01c6a84c","status":"affected","lessThan":"d2dd7ca05a11685c314e62802a55e8d67a90e974","versionType":"git"},{"version":"95e2b352c03b0a86c5717ba1d24ea20969abcacc","status":"affected","lessThan":"2a9575a372182ca075070b3cd77490dcf0c951e7","versionType":"git"},{"version":"95e2b352c03b0a86c5717ba1d24ea20969abcacc","status":"affected","lessThan":"cbf2f527ae4ca7c7dabce42e85e8deb58588a37e","versionType":"git"},{"version":"95e2b352c03b0a86c5717ba1d24ea20969abcacc","status":"affected","lessThan":"038861414ab383b41dd35abbf9ff0ef715592d53","versionType":"git"},{"version":"95e2b352c03b0a86c5717ba1d24ea20969abcacc","status":"affected","lessThan":"300b072df72694ea330c4c673c035253e07827b8","versionType":"git"},{"version":"a88efca805bea93cea9187dfd00835aa7093bf1b","status":"affected","versionType":"git"},{"version":"97c1f26e4d4af55e8584e4646dd5c5fa7baf62c7","status":"affected","versionType":"git"},{"version":"b0ed8ed0428ee96092da6fefa5cfacbe4abed701","status":"affected","versionType":"git"},{"version":"5.4.255","status":"affected","lessThan":"5.4.302","versionType":"semver"},{"version":"5.10.192","status":"affected","lessThan":"5.10.247","versionType":"semver"},{"version":"5.15.123","status":"affected","lessThan":"5.15.197","versionType":"semver"},{"version":"6.1.42","status":"affected","lessThan":"6.1.159","versionType":"semver"},{"version":"4.14.324","status":"affected","lessThan":"4.15","versionType":"semver"},{"version":"4.19.293","status":"affected","lessThan":"4.20","versionType":"semver"},{"version":"6.4.7","status":"affected","lessThan":"6.5","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/jfs/jfs_txnmgr.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.5","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.5","versionType":"semver"},{"version":"5.4.302","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.247","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.197","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.159","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.117","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.58","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.17.8","status":"unaffected","lessThanOrEqual":"6.17.*","versionType":"semver"},{"version":"6.18","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/jfs/jfs_txnmgr.c"]}],"references":["https://git.kernel.org/stable/c/d6af7fce2e162ac68e85d3a11eb6ac8c35b24b64","https://git.kernel.org/stable/c/8cae9cf23e0bd424ac904e753639a587543ce03a","https://git.kernel.org/stable/c/a2aa97cde9857f881920635a2e3d3b11769619c5","https://git.kernel.org/stable/c/d2dd7ca05a11685c314e62802a55e8d67a90e974","https://git.kernel.org/stable/c/2a9575a372182ca075070b3cd77490dcf0c951e7","https://git.kernel.org/stable/c/cbf2f527ae4ca7c7dabce42e85e8deb58588a37e","https://git.kernel.org/stable/c/038861414ab383b41dd35abbf9ff0ef715592d53","https://git.kernel.org/stable/c/300b072df72694ea330c4c673c035253e07827b8"],"weaknesses":[],"ingestedAt":"2026-10-29T20:09:56.034Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/68xxx/CVE-2025-68168.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-68168","state":"PUBLISHED","datePublished":"2025-12-16T13:42:48.350Z","dateUpdated":"2026-08-05T12:09:57.842Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-12-16T13:41:40.250Z"},"containers":{"cna":{"title":"jfs: fix uninitialized waitqueue in transaction manager","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\njfs: fix uninitialized waitqueue in transaction manager\n\nThe transaction manager initialization in txInit() was not properly\ninitializing TxBlock[0].waitor waitqueue, causing a crash when\ntxEnd(0) is called on read-only filesystems.\n\nWhen a filesystem is mounted read-only, txBegin() returns tid=0 to\nindicate no transaction. However, txEnd(0) still gets called and\ntries to access TxBlock[0].waitor via tid_to_tblock(0), but this\nwaitqueue was never initialized because the initialization loop\nstarted at index 1 instead of 0.\n\nThis causes a 'non-static key' lockdep warning and system crash:\n  INFO: trying to register non-static key in txEnd\n\nFix by ensuring all transaction blocks including TxBlock[0] have\ntheir waitqueues properly initialized during txInit()."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"2a8807f9f511c64de0c7cc9900a1683e3d72a3e5","status":"affected","lessThan":"d6af7fce2e162ac68e85d3a11eb6ac8c35b24b64","versionType":"git"},{"version":"5c094ca994824e038b6a97835ded4e5d1d808504","status":"affected","lessThan":"8cae9cf23e0bd424ac904e753639a587543ce03a","versionType":"git"},{"version":"2febd5f81e4bfba61d9f374dcca628aff374cc56","status":"affected","lessThan":"a2aa97cde9857f881920635a2e3d3b11769619c5","versionType":"git"},{"version":"aa7cdf487ab3fa47284daaccc3d7d5de01c6a84c","status":"affected","lessThan":"d2dd7ca05a11685c314e62802a55e8d67a90e974","versionType":"git"},{"version":"95e2b352c03b0a86c5717ba1d24ea20969abcacc","status":"affected","lessThan":"2a9575a372182ca075070b3cd77490dcf0c951e7","versionType":"git"},{"version":"95e2b352c03b0a86c5717ba1d24ea20969abcacc","status":"affected","lessThan":"cbf2f527ae4ca7c7dabce42e85e8deb58588a37e","versionType":"git"},{"version":"95e2b352c03b0a86c5717ba1d24ea20969abcacc","status":"affected","lessThan":"038861414ab383b41dd35abbf9ff0ef715592d53","versionType":"git"},{"version":"95e2b352c03b0a86c5717ba1d24ea20969abcacc","status":"affected","lessThan":"300b072df72694ea330c4c673c035253e07827b8","versionType":"git"},{"version":"a88efca805bea93cea9187dfd00835aa7093bf1b","status":"affected","versionType":"git"},{"version":"97c1f26e4d4af55e8584e4646dd5c5fa7baf62c7","status":"affected","versionType":"git"},{"version":"b0ed8ed0428ee96092da6fefa5cfacbe4abed701","status":"affected","versionType":"git"},{"version":"5.4.255","status":"affected","lessThan":"5.4.302","versionType":"semver"},{"version":"5.10.192","status":"affected","lessThan":"5.10.247","versionType":"semver"},{"version":"5.15.123","status":"affected","lessThan":"5.15.197","versionType":"semver"},{"version":"6.1.42","status":"affected","lessThan":"6.1.159","versionType":"semver"},{"version":"4.14.324","status":"affected","lessThan":"4.15","versionType":"semver"},{"version":"4.19.293","status":"affected","lessThan":"4.20","versionType":"semver"},{"version":"6.4.7","status":"affected","lessThan":"6.5","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/jfs/jfs_txnmgr.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.5","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.5","versionType":"semver"},{"version":"5.4.302","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.247","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.197","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.159","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.117","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.58","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.17.8","status":"unaffected","lessThanOrEqual":"6.17.*","versionType":"semver"},{"version":"6.18","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/jfs/jfs_txnmgr.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/d6af7fce2e162ac68e85d3a11eb6ac8c35b24b64"},{"url":"https://git.kernel.org/stable/c/8cae9cf23e0bd424ac904e753639a587543ce03a"},{"url":"https://git.kernel.org/stable/c/a2aa97cde9857f881920635a2e3d3b11769619c5"},{"url":"https://git.kernel.org/stable/c/d2dd7ca05a11685c314e62802a55e8d67a90e974"},{"url":"https://git.kernel.org/stable/c/2a9575a372182ca075070b3cd77490dcf0c951e7"},{"url":"https://git.kernel.org/stable/c/cbf2f527ae4ca7c7dabce42e85e8deb58588a37e"},{"url":"https://git.kernel.org/stable/c/038861414ab383b41dd35abbf9ff0ef715592d53"},{"url":"https://git.kernel.org/stable/c/300b072df72694ea330c4c673c035253e07827b8"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The vulnerable code is reached only through local filesystem operations on a mounted JFS volume (mount/remount plus ordinary syscalls such as creat/unlink/close); no remote peer data is parsed anywhere on the path.\nAC:L - Once a JFS volume has `sbi->log == NULL` (plain `mount -o ro`, remount-ro, or a failed `remount,rw` that still clears SB_RDONLY), `txBegin()` deterministically returns tid 0 and the very next `txEnd(0)` hits the uninitialized `TxBlock[0]`; there is no race to win and no memory layout the attacker must guess.\nPR:L - The trigger is an ordinary unprivileged file operation on an already-mounted volume, and the mount itself is routinely performed on the attacker's behalf by udisks/automount for removable media or by an admin handling an untrusted image — the standard crafted-filesystem-image model used for comparable fs CVEs.\nUI:N - After the volume is mounted as part of normal system operation, the attacker performs the triggering syscall entirely on their own; no victim action is needed at exploitation time.\nS:U - The corruption is confined to kernel memory within the same kernel security authority; no hypervisor, IOMMU, or sandbox boundary is crossed.\nC:H - `txEnd(0)` dereferences the uninitialized `tblk->sb` (`JFS_SBI(tblk->sb)->log`) and `__wake_up_common()` walks an uninitialized list head, so the kernel reads through pointers taken from recycled vmalloc pages — an unbounded wild read of arbitrary kernel memory, not a bounded NULL dereference.\nI:H - The same path writes through those uninitialized pointers (`--log->active`, `tblk->flag |= tblkGC_UNLOCKED`, `spin_lock_irq(&log->gclock)`) and performs an indirect call `curr->func(...)` through an uninitialized function pointer, giving both a write and a control-flow-hijack primitive; it additionally corrupts global JFS state by setting `TxAnchor.freetid = 0`.\nA:H - Real-world outcome is a hard kernel failure — lockdep \"non-static key\" BUG, wild-pointer oops, or an endless spin on a garbage spinlock with the global `jfsTxnLock` held and IRQs disabled (hard lockup) — and even in the benign case the zeroed `TxAnchor.freetid` permanently wedges every JFS transaction on the machine."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T12:09:57.842Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4.255","versionEndExcluding":"5.4.302"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.192","versionEndExcluding":"5.10.247"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.123","versionEndExcluding":"5.15.197"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1.42","versionEndExcluding":"6.1.159"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.5","versionEndExcluding":"6.6.117"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.5","versionEndExcluding":"6.12.58"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.5","versionEndExcluding":"6.17.8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.5","versionEndExcluding":"6.18"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14.324"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.19.293"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4.7"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}