CVE-2024-49957
NoneCVSS
—
EPSS
0.3%
Published
Oct 21, 2024
CISA due date
—
Cloudanix analysis
A bug in the Linux kernel can make computers crash when they try to use certain shared storage systems, interrupting work until the systems are restarted or fixed.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Null pointer dereference in ocfs2 journal shutdown when jbd2_journal_load fails due to short journal, because JBD2_LOADED flag is not checked before accessing journal->j_sb_buffer in the tail update path.
Why it matters to the business
Unexpected system crashes or kernel panics during mount of OCFS2 filesystems on Linux, causing downtime and loss of access to clustered storage in affected environments.
How an attack unfolds
An attacker with local access supplies a malformed or truncated OCFS2 filesystem image that causes journal_reset to fail inside jbd2_journal_load; subsequent ocfs2_journal_shutdown then dereferences a NULL j_sb_buffer while flushing the journal, triggering a kernel panic. General Linux kernel exploitation campaigns by espionage and financially motivated actors have targeted similar uninitialized resource and out-of-bounds issues.
How to fix it
Upgrade the Linux kernel to a version containing commit fd89d92c1140cee8f59de336cb37fa65e359c123 or later; for Rocky Linux 8 shim-unsigned-aarch64 update to 0:15-7.el8.1.1. Reboot after applying the fixed package.
How to confirm the fix worked
Confirm the running kernel contains the patch commit fd89d92c1140cee8f59de336cb37fa65e359c123; attempt to mount a short-journal OCFS2 image in a test environment and verify absence of the NULL dereference; inspect ocfs2_journal_shutdown for the added JBD2_LOADED flag check.
Typical attack path
- Gain local user access on a system using OCFS2
- Prepare or obtain a filesystem image with insufficient journal size
- Trigger mount of the malformed volume
- Cause journal load failure followed by shutdown path dereference
- Induce kernel panic and denial of service
How to detect it
Search kernel logs and dmesg for oops/panic traces referencing ocfs2_journal_shutdown, jbd2_journal_flush, __jbd2_update_log_tail, or jbd2_journal_update_sb_log_tail combined with NULL pointer dereference; examine audit logs for unexpected mount attempts of OCFS2 volumes.
- ocfs2_journal_shutdown
- jbd2_journal_update_sb_log_tail
- lock_buffer(journal->j_sb_buffer)
- NULL pointer dereference in ocfs2
- JBD2_LOADED
What your security team should do
- Apply the kernel update containing fd89d92c1140cee8f59de336cb37fa65e359c123 immediately on all OCFS2-using systems
- Prioritize patching production clustered storage nodes before general workloads
- Monitor kernel logs for OCFS2 and JBD2 panic signatures until patches are deployed
- Restrict untrusted local access to systems hosting OCFS2 volumes
The record
In the Linux kernel, the following vulnerability has been resolved: ocfs2: fix null-ptr-deref when journal load failed. During the mounting process, if journal_reset() fails because of too short journal, then lead to jbd2_journal_load() fails with NULL j_sb_buffer. Subsequently, ocfs2_journal_shutdown() calls jbd2_journal_flush()->jbd2_cleanup_journal_tail()-> __jbd2_update_log_tail()->jbd2_journal_update_sb_log_tail() ->lock_buffer(journal->j_sb_buffer), resulting in a null-pointer dereference error. To resolve this issue, we should check the JBD2_LOADED flag to ensure the journal was properly loaded. Additionally, use journal instead of osb->journal directly to simplify the code.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | linux | 0 | No fix |
| Debian:11 | linux | 0 | 5.10.234-1 |
| Debian:11 | linux-6.1 | 0 | 6.1.119-1~deb11u1 |
| Debian:12 | linux | 0 | No fix |
| Debian:13 | linux | 0 | No fix |
| Debian:13 | linux | 0 | 6.11.4-1 |
| Linux | Kernel | 2.6.32 | 4.19.323 |
| Mageia:9 | kernel | 0 | 6.6.58-2.mga9 |
| Mageia:9 | kernel-firmware | 0 | 20240909-1.mga9 |
| Mageia:9 | kernel-firmware-nonfree | 0 | 20240909-1.mga9.nonfree |
| Mageia:9 | kernel-linus | 0 | 6.6.58-2.mga9 |
| Mageia:9 | kmod-virtualbox | 0 | 7.0.20-57.mga9 |
| Mageia:9 | kmod-xtables-addons | 0 | 3.24-65.mga9 |
| Mageia:9 | radeon-firmware | 0 | 20240909-1.mga9.nonfree |
| SUSE:Linux Enterprise High Availability Extension 12 SP5 | kernel-default | 0 | 4.12.14-122.234.1 |
| SUSE:Linux Enterprise High Availability Extension 15 SP5 | kernel-default | 0 | 5.14.21-150500.55.88.1 |
| SUSE:Linux Enterprise High Availability Extension 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.30.1 |
| SUSE:Linux Enterprise Live Patching 12 SP5 | kernel-default | 0 | 4.12.14-122.234.1 |
| SUSE:Linux Enterprise Live Patching 12 SP5 | kgraft-patch-SLE12-SP5_Update_62 | 0 | 1-8.3.1 |
| SUSE:Linux Enterprise Live Patching 15 SP5 | kernel-default | 0 | 5.14.21-150500.55.88.1 |
| SUSE:Linux Enterprise Live Patching 15 SP5 | kernel-livepatch-SLE15-SP5-RT_Update_23 | 0 | 1-150500.11.3.1 |
| SUSE:Linux Enterprise Live Patching 15 SP5 | kernel-livepatch-SLE15-SP5_Update_21 | 0 | 1-150500.11.5.1 |
| SUSE:Linux Enterprise Live Patching 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.30.1 |
| SUSE:Linux Enterprise Live Patching 15 SP6 | kernel-livepatch-SLE15-SP6-RT_Update_5 | 0 | 1-150600.1.3.1 |
| SUSE:Linux Enterprise Live Patching 15 SP6 | kernel-livepatch-SLE15-SP6_Update_6 | 0 | 1-150600.13.3.5 |
| SUSE:Linux Enterprise Micro 5.5 | kernel-default | 0 | 5.14.21-150500.55.88.1 |
| SUSE:Linux Enterprise Micro 5.5 | kernel-default-base | 0 | 5.14.21-150500.55.88.1.150500.6.39.4 |
| SUSE:Linux Enterprise Micro 5.5 | kernel-rt | 0 | 5.14.21-150500.13.79.1 |
| SUSE:Linux Enterprise Micro 5.5 | kernel-source-rt | 0 | 5.14.21-150500.13.79.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | kernel-64kb | 0 | 5.14.21-150500.55.88.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | kernel-default | 0 | 5.14.21-150500.55.88.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | kernel-default-base | 0 | 5.14.21-150500.55.88.1.150500.6.39.4 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | kernel-source | 0 | 5.14.21-150500.55.88.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | kernel-zfcpdump | 0 | 5.14.21-150500.55.88.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-64kb | 0 | 6.4.0-150600.23.30.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.30.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-default-base | 0 | 6.4.0-150600.23.30.1.150600.12.12.6 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-source | 0 | 6.4.0-150600.23.30.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-zfcpdump | 0 | 6.4.0-150600.23.30.1 |
| SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 | kernel-coco | 0 | 6.4.0-15061.9.coco15sp6.1 |
| SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 | kernel-coco_debug | 0 | 6.4.0-15061.9.coco15sp6.1 |
| SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 | kernel-source-coco | 0 | 6.4.0-15061.9.coco15sp6.1 |
| SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 | kernel-syms-coco | 0 | 6.4.0-15061.9.coco15sp6.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP5 | kernel-docs | 0 | 5.14.21-150500.55.88.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP5 | kernel-obs-build | 0 | 5.14.21-150500.55.88.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP5 | kernel-source | 0 | 5.14.21-150500.55.88.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP5 | kernel-syms | 0 | 5.14.21-150500.55.88.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | kernel-docs | 0 | 6.4.0-150600.23.30.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | kernel-obs-build | 0 | 6.4.0-150600.23.30.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | kernel-source | 0 | 6.4.0-150600.23.30.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | kernel-syms | 0 | 6.4.0-150600.23.30.1 |
| SUSE:Linux Enterprise Module for Legacy 15 SP5 | kernel-default | 0 | 5.14.21-150500.55.88.1 |
| SUSE:Linux Enterprise Module for Legacy 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.30.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP5 | kernel-azure | 0 | 5.14.21-150500.33.75.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP5 | kernel-source-azure | 0 | 5.14.21-150500.33.75.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP5 | kernel-syms-azure | 0 | 5.14.21-150500.33.75.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP6 | kernel-azure | 0 | 6.4.0-150600.8.17.2 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP6 | kernel-source-azure | 0 | 6.4.0-150600.8.17.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP6 | kernel-syms-azure | 0 | 6.4.0-150600.8.17.1 |
| SUSE:Linux Enterprise Server 12 SP5-LTSS | kernel-default | 0 | 4.12.14-122.234.1 |
| SUSE:Linux Enterprise Server 12 SP5-LTSS | kernel-source | 0 | 4.12.14-122.234.1 |
| SUSE:Linux Enterprise Server 12 SP5-LTSS | kernel-syms | 0 | 4.12.14-122.234.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | kernel-default | 0 | 4.12.14-122.234.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | kernel-source | 0 | 4.12.14-122.234.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | kernel-syms | 0 | 4.12.14-122.234.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.30.1 |
| SUSE:Real Time Module 15 SP5 | kernel-rt | 0 | 5.14.21-150500.13.79.1 |
| SUSE:Real Time Module 15 SP5 | kernel-rt_debug | 0 | 5.14.21-150500.13.79.1 |
| SUSE:Real Time Module 15 SP5 | kernel-source-rt | 0 | 5.14.21-150500.13.79.1 |
| SUSE:Real Time Module 15 SP5 | kernel-syms-rt | 0 | 5.14.21-150500.13.79.1 |
| SUSE:Real Time Module 15 SP6 | kernel-rt | 0 | 6.4.0-150600.10.17.1 |
| SUSE:Real Time Module 15 SP6 | kernel-rt_debug | 0 | 6.4.0-150600.10.17.1 |
| SUSE:Real Time Module 15 SP6 | kernel-source-rt | 0 | 6.4.0-150600.10.17.1 |
| SUSE:Real Time Module 15 SP6 | kernel-syms-rt | 0 | 6.4.0-150600.10.17.1 |
| Ubuntu:20.04:LTS | linux-aws-5.15 | 0 | 5.15.0-1073.79~20.04.1 |
| Ubuntu:20.04:LTS | linux-azure-5.15 | 0 | 5.15.0-1078.87~20.04.1 |
| Ubuntu:20.04:LTS | linux-gcp-5.15 | 0 | 5.15.0-1072.80~20.04.1 |
| Ubuntu:20.04:LTS | linux-hwe-5.15 | 0 | 5.15.0-127.137~20.04.1 |
| Ubuntu:20.04:LTS | linux-ibm-5.15 | 0 | 5.15.0-1066.69~20.04.1 |
| Ubuntu:20.04:LTS | linux-intel-iotg-5.15 | 0 | 5.15.0-1071.77~20.04.1 |
| Ubuntu:20.04:LTS | linux-lowlatency-hwe-5.15 | 0 | 5.15.0-127.137~20.04.1 |
| Ubuntu:20.04:LTS | linux-oracle-5.15 | 0 | 5.15.0-1071.77~20.04.1 |
| Ubuntu:22.04:LTS | linux | 0 | 5.15.0-127.137 |
| Ubuntu:22.04:LTS | linux-aws | 0 | 5.15.0-1073.79 |
| Ubuntu:22.04:LTS | linux-azure | 0 | 5.15.0-1078.87 |
| Ubuntu:22.04:LTS | linux-gcp | 0 | 5.15.0-1072.80 |
| Ubuntu:22.04:LTS | linux-gke | 0 | 5.15.0-1070.76 |
| Ubuntu:22.04:LTS | linux-gkeop | 0 | 5.15.0-1056.63 |
| Ubuntu:22.04:LTS | linux-ibm | 0 | 5.15.0-1066.69 |
| Ubuntu:22.04:LTS | linux-intel-iotg | 0 | 5.15.0-1071.77 |
| Ubuntu:22.04:LTS | linux-kvm | 0 | 5.15.0-1070.75 |
| Ubuntu:22.04:LTS | linux-lowlatency | 0 | 5.15.0-127.137 |
| Ubuntu:22.04:LTS | linux-nvidia | 0 | 5.15.0-1068.69 |
| Ubuntu:22.04:LTS | linux-oracle | 0 | 5.15.0-1071.77 |
| Ubuntu:22.04:LTS | linux-raspi | 0 | 5.15.0-1066.69 |
| Ubuntu:22.04:LTS | linux-xilinx-zynqmp | 0 | 5.15.0-1039.43 |
| Ubuntu:24.10 | linux | 0 | 6.11.0-18.18 |
| Ubuntu:24.10 | linux-aws | 0 | 6.11.0-1009.10 |
| Ubuntu:24.10 | linux-azure | 0 | 6.11.0-1009.9 |
| Ubuntu:24.10 | linux-gcp | 0 | 6.11.0-1009.9 |
| Ubuntu:24.10 | linux-lowlatency | 0 | 6.11.0-1010.11 |
| Ubuntu:24.10 | linux-oracle | 0 | 6.11.0-1011.12 |
| Ubuntu:24.10 | linux-raspi | 0 | 6.11.0-1008.8 |
| Ubuntu:24.10 | linux-realtime | 0 | 6.11.0-1005.5 |
| openSUSE:Leap 15.5 | kernel-azure | 0 | 5.14.21-150500.33.75.1 |
| openSUSE:Leap 15.5 | kernel-rt | 0 | 5.14.21-150500.13.79.1 |
| openSUSE:Leap 15.5 | kernel-rt_debug | 0 | 5.14.21-150500.13.79.1 |
| openSUSE:Leap 15.5 | kernel-source-azure | 0 | 5.14.21-150500.33.75.1 |
| openSUSE:Leap 15.5 | kernel-source-rt | 0 | 5.14.21-150500.13.79.1 |
| openSUSE:Leap 15.5 | kernel-syms-azure | 0 | 5.14.21-150500.33.75.1 |
| openSUSE:Leap 15.5 | kernel-syms-rt | 0 | 5.14.21-150500.13.79.1 |
| openSUSE:Leap 15.6 | dtb-aarch64 | 0 | 6.4.0-150600.23.30.1 |
| openSUSE:Leap 15.6 | kernel-64kb | 0 | 6.4.0-150600.23.30.1 |
| openSUSE:Leap 15.6 | kernel-azure | 0 | 6.4.0-150600.8.17.2 |
| openSUSE:Leap 15.6 | kernel-debug | 0 | 6.4.0-150600.23.30.1 |
| openSUSE:Leap 15.6 | kernel-default | 0 | 6.4.0-150600.23.30.1 |
| openSUSE:Leap 15.6 | kernel-default-base | 0 | 6.4.0-150600.23.30.1.150600.12.12.6 |
| openSUSE:Leap 15.6 | kernel-docs | 0 | 6.4.0-150600.23.30.1 |
| openSUSE:Leap 15.6 | kernel-kvmsmall | 0 | 6.4.0-150600.23.30.1 |
| openSUSE:Leap 15.6 | kernel-obs-build | 0 | 6.4.0-150600.23.30.1 |
| openSUSE:Leap 15.6 | kernel-obs-qa | 0 | 6.4.0-150600.23.30.1 |
| openSUSE:Leap 15.6 | kernel-rt | 0 | 6.4.0-150600.10.17.1 |
| openSUSE:Leap 15.6 | kernel-rt_debug | 0 | 6.4.0-150600.10.17.1 |
| openSUSE:Leap 15.6 | kernel-source | 0 | 6.4.0-150600.23.30.1 |
| openSUSE:Leap 15.6 | kernel-source-azure | 0 | 6.4.0-150600.8.17.1 |
| openSUSE:Leap 15.6 | kernel-source-rt | 0 | 6.4.0-150600.10.17.1 |
| openSUSE:Leap 15.6 | kernel-syms | 0 | 6.4.0-150600.23.30.1 |
| openSUSE:Leap 15.6 | kernel-syms-azure | 0 | 6.4.0-150600.8.17.1 |
| openSUSE:Leap 15.6 | kernel-syms-rt | 0 | 6.4.0-150600.10.17.1 |
| openSUSE:Leap 15.6 | kernel-zfcpdump | 0 | 6.4.0-150600.23.30.1 |
| openSUSE:Leap Micro 5.5 | kernel-rt | 0 | 5.14.21-150500.13.79.1 |
| openSUSE:Tumbleweed | kernel-source | 0 | 6.11.8-1.1 |
| openSUSE:Tumbleweed | kernel-source-longterm | 0 | 6.12.11-1.1 |
Related vulnerabilities
- CVE-2025-39885 In the Linux kernel, the following vulnerability has been resolved: ocfs2: fix recursive… Also affects linux
- CVE-2025-39883 In the Linux kernel, the following vulnerability has been resolved: mm/memory-failure… Also affects linux
- CVE-2025-39876 In the Linux kernel, the following vulnerability has been resolved: net: fec: Fix… Also affects linux
- CVE-2025-39869 In the Linux kernel, the following vulnerability has been resolved: dmaengine: ti: edma… Also affects linux
- CVE-2025-39873 In the Linux kernel, the following vulnerability has been resolved: can: xilinx_can… Also affects linux
- CVE-2025-39863 In the Linux kernel, the following vulnerability has been resolved: wifi: brcmfmac: fix… Also affects linux
- CVE-2025-39865 In the Linux kernel, the following vulnerability has been resolved: tee: fix NULL pointer… Also affects linux
- CVE-2025-39866 In the Linux kernel, the following vulnerability has been resolved: fs: writeback: fix… Also affects linux