Skip to content
CVE PROGRAM SOURCE RECORD7.8 High

CVE-2024-42304

ext4: make sure the first directory block is not a hole

Description

In the Linux kernel, the following vulnerability has been resolved: ext4: make sure the first directory block is not a hole The syzbot constructs a directory that has no dirblock but is non-inline, i.e. the first directory block is a hole. And no errors are reported when creating files in this directory in the following flow. ext4_mknod ... ext4_add_entry // Read block 0 ext4_read_dirblock(dir, block, DIRENT) bh = ext4_bread(NULL, inode, block, 0) if (!bh && (type == INDEX || type == DIRENT_HTREE)) // The first directory block is a hole // But type == DIRENT, so no error is reported. After that, we get a directory block without '.' and '..' but with a valid dentry. This may cause some code that relies on dot or dotdot (such as make_indexed_dir()) to crash. Therefore when ext4_read_dirblock() finds that the first directory block is a hole report that the filesystem is corrupted and return an error to avoid loading corrupted data from disk causing something bad.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • 3a17ca864baffc0c6f6e8aad525aa4365775a193 to < d81d7e347d1f1f48a5634607d39eb90c161c8afeaffected
  • 4e19d6b65fb4fc42e352ce9883649e049da14743 to < e02f9941e8c011aa3eafa799def6a134ce06bcfaaffected
  • 4e19d6b65fb4fc42e352ce9883649e049da14743 to < de2a011a13a46468a6e8259db58b1b62071fe136affected
  • 4e19d6b65fb4fc42e352ce9883649e049da14743 to < 9771e3d8365ae1dd5e8846a204cb9af14e3e656aaffected
  • 4e19d6b65fb4fc42e352ce9883649e049da14743 to < b609753cbbd38f8c0affd4956c0af178348523acaffected
  • 4e19d6b65fb4fc42e352ce9883649e049da14743 to < c3893d9de8ee153baac56d127d844103488133b5affected
  • 4e19d6b65fb4fc42e352ce9883649e049da14743 to < 299bc6ffa57e04e74c6cce866d6c0741fb4897a1affected
  • 4e19d6b65fb4fc42e352ce9883649e049da14743 to < f9ca51596bbfd0f9c386dd1c613c394c78d9e5e6affected
  • 3f0307b0d2d8b333a6964fc4c820dc86896fd1cfaffected
  • 514631c2225c1fd556c799cc1893fb27b0f48f00affected
  • 7f1f86276515f6816a98f6ca3ef99c827d54642faffected
  • 5021b7a5bdd6bb859eb648c3da71cdd6aae1d133affected
  • 4.19.62 to < 4.19.320affected
  • 4.9.187 to < 4.10affected
  • 4.14.135 to < 4.15affected
  • 5.1.21 to < 5.2affected
  • 5.2.4 to < 5.3affected

Linux Linux

Default version status: affected

  • 5.3affected
  • 0 to < 5.3unaffected
  • 4.19.320 to ≤ 4.19.*unaffected
  • 5.4.282 to ≤ 5.4.*unaffected
  • 5.10.224 to ≤ 5.10.*unaffected
  • 5.15.165 to ≤ 5.15.*unaffected
  • 6.1.103 to ≤ 6.1.*unaffected
  • 6.6.44 to ≤ 6.6.*unaffected
  • 6.10.3 to ≤ 6.10.*unaffected
  • 6.11 to ≤ *unaffected

References