{"id":"CVE-2024-42304","revision":"f87ac21d86e54069b9ed2298176d2b60","records":[{"revision":"f87ac21d86e54069b9ed2298176d2b60","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2024-42304","aliases":[],"title":"ext4: make sure the first directory block is not a hole","description":"In the Linux kernel, the following vulnerability has been resolved:\n\next4: make sure the first directory block is not a hole\n\nThe syzbot constructs a directory that has no dirblock but is non-inline,\ni.e. the first directory block is a hole. And no errors are reported when\ncreating files in this directory in the following flow.\n\n    ext4_mknod\n     ...\n      ext4_add_entry\n        // Read block 0\n        ext4_read_dirblock(dir, block, DIRENT)\n          bh = ext4_bread(NULL, inode, block, 0)\n          if (!bh && (type == INDEX || type == DIRENT_HTREE))\n          // The first directory block is a hole\n          // But type == DIRENT, so no error is reported.\n\nAfter that, we get a directory block without '.' and '..' but with a valid\ndentry. This may cause some code that relies on dot or dotdot (such as\nmake_indexed_dir()) to crash.\n\nTherefore when ext4_read_dirblock() finds that the first directory block\nis a hole report that the filesystem is corrupted and return an error to\navoid loading corrupted data from disk causing something bad.","state":0,"publishedAt":"2024-08-17T09:09:10.545+00:00","modifiedAt":"2026-10-15T00:48:16.603+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"fs/ext4/namei.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"3a17ca864baffc0c6f6e8aad525aa4365775a193\",\n                            \"lessThan\": \"d81d7e347d1f1f48a5634607d39eb90c161c8afe\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"4e19d6b65fb4fc42e352ce9883649e049da14743\",\n                            \"lessThan\": \"e02f9941e8c011aa3eafa799def6a134ce06bcfa\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"4e19d6b65fb4fc42e352ce9883649e049da14743\",\n                            \"lessThan\": \"de2a011a13a46468a6e8259db58b1b62071fe136\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"4e19d6b65fb4fc42e352ce9883649e049da14743\",\n                            \"lessThan\": \"9771e3d8365ae1dd5e8846a204cb9af14e3e656a\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"4e19d6b65fb4fc42e352ce9883649e049da14743\",\n                            \"lessThan\": \"b609753cbbd38f8c0affd4956c0af178348523ac\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"4e19d6b65fb4fc42e352ce9883649e049da14743\",\n                            \"lessThan\": \"c3893d9de8ee153baac56d127d844103488133b5\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"4e19d6b65fb4fc42e352ce9883649e049da14743\",\n                            \"lessThan\": \"299bc6ffa57e04e74c6cce866d6c0741fb4897a1\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"4e19d6b65fb4fc42e352ce9883649e049da14743\",\n                            \"lessThan\": \"f9ca51596bbfd0f9c386dd1c613c394c78d9e5e6\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"3f0307b0d2d8b333a6964fc4c820dc86896fd1cf\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"514631c2225c1fd556c799cc1893fb27b0f48f00\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"7f1f86276515f6816a98f6ca3ef99c827d54642f\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"5021b7a5bdd6bb859eb648c3da71cdd6aae1d133\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"4.19.62\",\n                            \"lessThan\": \"4.19.320\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"4.9.187\",\n                            \"lessThan\": \"4.10\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"4.14.135\",\n                            \"lessThan\": \"4.15\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.1.21\",\n                            \"lessThan\": \"5.2\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.2.4\",\n                            \"lessThan\": \"5.3\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"fs/ext4/namei.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"5.3\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"5.3\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"4.19.320\",\n                            \"lessThanOrEqual\": \"4.19.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.4.282\",\n                            \"lessThanOrEqual\": \"5.4.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.10.224\",\n                            \"lessThanOrEqual\": \"5.10.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.165\",\n                            \"lessThanOrEqual\": \"5.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.103\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.44\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.10.3\",\n                            \"lessThanOrEqual\": \"6.10.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.11\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","score":7.8,"severity":"HIGH"}],"references":["https://git.kernel.org/stable/c/d81d7e347d1f1f48a5634607d39eb90c161c8afe","https://git.kernel.org/stable/c/e02f9941e8c011aa3eafa799def6a134ce06bcfa","https://git.kernel.org/stable/c/de2a011a13a46468a6e8259db58b1b62071fe136","https://git.kernel.org/stable/c/9771e3d8365ae1dd5e8846a204cb9af14e3e656a","https://git.kernel.org/stable/c/b609753cbbd38f8c0affd4956c0af178348523ac","https://git.kernel.org/stable/c/c3893d9de8ee153baac56d127d844103488133b5","https://git.kernel.org/stable/c/299bc6ffa57e04e74c6cce866d6c0741fb4897a1","https://git.kernel.org/stable/c/f9ca51596bbfd0f9c386dd1c613c394c78d9e5e6"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2024-42304","license":"CVE Program Terms of Use","key":"cve-program:CVE-2024-42304","identifiers":["CVE-2024-42304"]},"retained":false,"historicalAffected":[]}],"coverage":[]}