Cloudanix VulnDB

CVE-2024-49959

None

CVSS

—

EPSS

0.3%

Published

Oct 21, 2024

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A bug in the Linux kernel's disk journaling code could cause confusing error messages and possible filesystem trouble when storage errors occur, so updating to a newer kernel version fixes the problem.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
High
Impact
Denial Of Service
Component
OS kernel
Class
Other
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The flaw is improper error propagation in __jbd2_log_wait_for_space when jbd2_cleanup_journal_tail returns an error such as EIO; the function continues instead of aborting the wait, and when j_committing_transaction is NULL it emits a kernel warning and falsely claims no journal space can be obtained.

Why it matters to the business

Linux systems using ext4 or other jbd2-based filesystems may experience kernel warnings, delayed or failed journal operations, and potential filesystem instability during I/O errors, increasing operational risk for organizations running affected Rocky Linux kernels or upstream stable trees until patched.

How an attack unfolds

An attacker with local access or the ability to induce I/O errors on the journal device could trigger the buggy path in journal space reclamation, but the low EPSS and absence from KEV indicate no known remote exploitation; any observed activity would likely be incidental rather than targeted.

How to fix it

Upgrade to a fixed kernel containing commit 801a35dfef6996f3d5eaa96a59caf00440d9165e. For Rocky Linux 8 apply delve-1.5.0-2.module+el8.4.0+396+d2d16ae3, golang-1.15.7-1.module+el8.4.0+396+d2d16ae3, or go-toolset-1.15.7-1.module+el8.4.0+396+d2d16ae3 as appropriate; rebuild and reboot systems after installation.

How to confirm the fix worked

Confirm the running kernel Git commit is at or beyond 801a35dfef6996f3d5eaa96a59caf00440d9165e, verify package versions match the listed fixed releases, and re-test journal-space recovery under simulated EIO conditions to ensure the warning no longer appears.

Typical attack path

  1. Obtain local code execution or trigger filesystem activity that starts a transaction
  2. Force an I/O error during jbd2_cleanup_journal_tail
  3. Reach __jbd2_log_wait_for_space with j_committing_transaction NULL
  4. Observe the resulting WARNING and journal-space exhaustion message

How to detect it

Search kernel logs for the exact strings "JBD2: I/O error when updating journal superblock", "__jbd2_log_wait_for_space: needed" and "no way to get more journal space"; correlate with process names containing kworker and filesystem operations on ext4 volumes.

  • __jbd2_log_wait_for_space: needed
  • no way to get more journal space
  • JBD2: I/O error when updating journal superblock

What your security team should do

  • Prioritize kernel updates on all ext4/jbd2 hosts within the next maintenance window
  • Monitor EPSS and KEV status for any change indicating increased exploitability
  • Include the fixed commit hash in vulnerability scanning and SBOM checks
  • Review logs for prior instances of the __jbd2_log_wait_for_space WARNING as part of routine forensics

The record

In the Linux kernel, the following vulnerability has been resolved: jbd2: stop waiting for space when jbd2_cleanup_journal_tail() returns error In __jbd2_log_wait_for_space(), we might call jbd2_cleanup_journal_tail() to recover some journal space. But if an error occurs while executing jbd2_cleanup_journal_tail() (e.g., an EIO), we don't stop waiting for free space right away, we try other branches, and if j_committing_transaction is NULL (i.e., the tid is 0), we will get the following complain: ============================================ JBD2: I/O error when updating journal superblock for sdd-8. __jbd2_log_wait_for_space: needed 256 blocks and only had 217 space available __jbd2_log_wait_for_space: no way to get more journal space in sdd-8 ------------[ cut here ]------------ WARNING: CPU: 2 PID: 139804 at fs/jbd2/checkpoint.c:109 __jbd2_log_wait_for_space+0x251/0x2e0 Modules linked in: CPU: 2 PID: 139804 Comm: kworker/u8:3 Not tainted 6.6.0+ #1 RIP: 0010:__jbd2_log_wait_for_space+0x251/0x2e0 Call Trace: <TASK> add_transaction_credits+0x5d1/0x5e0 start_this_handle+0x1ef/0x6a0 jbd2__journal_start+0x18b/0x340 ext4_dirty_inode+0x5d/0xb0 __mark_inode_dirty+0xe4/0x5d0 generic_update_time+0x60/0x70 [...] ============================================ So only if jbd2_cleanup_journal_tail() returns 1, i.e., there is nothing to clean up at the moment, continue to try to reclaim free space in other ways. Note that this fix relies on commit 6f6a6fda2945 ("jbd2: fix ocfs2 corrupt when updating journal superblock fails") to make jbd2_cleanup_journal_tail return the correct error 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.28 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_22 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_6 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.76.1
SUSE:Linux Enterprise Micro 5.5 kernel-source-rt 0 5.14.21-150500.13.76.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.72.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP5 kernel-source-azure 0 5.14.21-150500.33.72.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP5 kernel-syms-azure 0 5.14.21-150500.33.72.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.76.1
SUSE:Real Time Module 15 SP5 kernel-rt_debug 0 5.14.21-150500.13.76.1
SUSE:Real Time Module 15 SP5 kernel-source-rt 0 5.14.21-150500.13.76.1
SUSE:Real Time Module 15 SP5 kernel-syms-rt 0 5.14.21-150500.13.76.1
SUSE:Real Time Module 15 SP6 kernel-rt 0 6.4.0-150600.10.20.1
SUSE:Real Time Module 15 SP6 kernel-rt_debug 0 6.4.0-150600.10.20.1
SUSE:Real Time Module 15 SP6 kernel-source-rt 0 6.4.0-150600.10.20.1
SUSE:Real Time Module 15 SP6 kernel-syms-rt 0 6.4.0-150600.10.20.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.72.1
openSUSE:Leap 15.5 kernel-rt 0 5.14.21-150500.13.76.1
openSUSE:Leap 15.5 kernel-rt_debug 0 5.14.21-150500.13.76.1
openSUSE:Leap 15.5 kernel-source-azure 0 5.14.21-150500.33.72.1
openSUSE:Leap 15.5 kernel-source-rt 0 5.14.21-150500.13.76.1
openSUSE:Leap 15.5 kernel-syms-azure 0 5.14.21-150500.33.72.1
openSUSE:Leap 15.5 kernel-syms-rt 0 5.14.21-150500.13.76.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.20.1
openSUSE:Leap 15.6 kernel-rt_debug 0 6.4.0-150600.10.20.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.20.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.20.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.76.1
openSUSE:Tumbleweed kernel-source 0 6.11.8-1.1
openSUSE:Tumbleweed kernel-source-longterm 0 6.12.11-1.1

Related vulnerabilities