CVE-2026-74308

Summary

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

ext4: fix kernel BUG in ext4_write_inline_data_end

When the data=journal mount option is used, the ext4_journalled_write_end() function incorrectly calls ext4_write_inline_data_end() without checking if the EXT4_STATE_MAY_INLINE_DATA flag is still set on the inode.

If a previous attempt to convert the inline data to an extent failed (e.g. due to ENOSPC), the EXT4_STATE_MAY_INLINE_DATA flag is cleared, but the EXT4_INODE_INLINE_DATA flag remains set. In this scenario, the next call to ext4_write_begin() will not prepare the inline data xattr for writing, but ext4_journalled_write_end() will incorrectly attempt to write to it, triggering a BUG_ON(pos + len > EXT4_I(inode)->i_inline_size) in ext4_write_inline_data() since i_inline_size was not expanded.

Fix this by ensuring that ext4_journalled_write_end() only calls ext4_write_inline_data_end() if the EXT4_STATE_MAY_INLINE_DATA flag is set, mirroring the behavior of ext4_write_end() and ext4_da_write_end().

Affected Software

VendorProductVersion RangeStatus
LinuxLinux3fdcfb668fd78ec92d9bc2daddf1d41e2a8a30bb < 260830a9a706f5d335398236fc788ce32f220de1affected
LinuxLinux3fdcfb668fd78ec92d9bc2daddf1d41e2a8a30bb < 9808ae9fae996afa942bd963a39c9b1cdeebd0bdaffected
LinuxLinux3fdcfb668fd78ec92d9bc2daddf1d41e2a8a30bb < f00f5c0dd55319bc33b76f72c853bda0e0a32edaaffected
LinuxLinux3fdcfb668fd78ec92d9bc2daddf1d41e2a8a30bb < 0ae42b51607240990614e0843f0d3529aaff62ccaffected
LinuxLinux3fdcfb668fd78ec92d9bc2daddf1d41e2a8a30bb < ad09aa45965d3fafaf9963bc78109b73c0f9ac8daffected
LinuxLinux3.8affected
LinuxLinux0 < 3.8unaffected
LinuxLinux6.6.145 <= 6.6.*unaffected
LinuxLinux6.12.97 <= 6.12.*unaffected
LinuxLinux6.18.40 <= 6.18.*unaffected
LinuxLinux7.1.5 <= 7.1.*unaffected
LinuxLinux7.2 <= *unaffected

Weaknesses

References