{"id":"CVE-2023-54311","state":"PUBLISHED","title":"ext4: fix deadlock when converting an inline directory in nojournal mode","description":"In the Linux kernel, the following vulnerability has been resolved:\n\next4: fix deadlock when converting an inline directory in nojournal mode\n\nIn no journal mode, ext4_finish_convert_inline_dir() can self-deadlock\nby calling ext4_handle_dirty_dirblock() when it already has taken the\ndirectory lock.  There is a similar self-deadlock in\next4_incvert_inline_data_nolock() for data files which we'll fix at\nthe same time.\n\nA simple reproducer demonstrating the problem:\n\n    mke2fs -Fq -t ext2 -O inline_data -b 4k /dev/vdc 64\n    mount -t ext4 -o dirsync /dev/vdc /vdc\n    cd /vdc\n    mkdir file0\n    cd file0\n    touch file0\n    touch file1\n    attr -s BurnSpaceInEA -V abcde .\n    touch supercalifragilisticexpialidocious","publishedAt":"2025-12-30T12:23:43.174Z","updatedAt":"2026-05-11T19:59:30.869Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"3c47d54170b6a678875566b1b8d6dcf57904e49b","status":"affected","lessThan":"b4fa4768c9acff77245d672d855d2c88294850b1","versionType":"git"},{"version":"3c47d54170b6a678875566b1b8d6dcf57904e49b","status":"affected","lessThan":"5f8b55136ad787aed2c184f7cb3e93772ae637a3","versionType":"git"},{"version":"3c47d54170b6a678875566b1b8d6dcf57904e49b","status":"affected","lessThan":"640c8c365999c6f23447ac766437236ad88317c5","versionType":"git"},{"version":"3c47d54170b6a678875566b1b8d6dcf57904e49b","status":"affected","lessThan":"665cc3ba50330049524c1d275bc840a8f28dde73","versionType":"git"},{"version":"3c47d54170b6a678875566b1b8d6dcf57904e49b","status":"affected","lessThan":"0b1c4357bb21d9770451a1bdb8d419ea10bada88","versionType":"git"},{"version":"3c47d54170b6a678875566b1b8d6dcf57904e49b","status":"affected","lessThan":"804de0c72cd473e186ca4e1f6287d45431b14e5a","versionType":"git"},{"version":"3c47d54170b6a678875566b1b8d6dcf57904e49b","status":"affected","lessThan":"f4ce24f54d9cca4f09a395f3eecce20d6bec4663","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ext4/inline.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.8","versionType":"semver"},{"version":"5.4.243","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.180","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.112","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.29","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.2.16","status":"unaffected","lessThanOrEqual":"6.2.*","versionType":"semver"},{"version":"6.3.3","status":"unaffected","lessThanOrEqual":"6.3.*","versionType":"semver"},{"version":"6.4","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ext4/inline.c"]}],"references":["https://git.kernel.org/stable/c/b4fa4768c9acff77245d672d855d2c88294850b1","https://git.kernel.org/stable/c/5f8b55136ad787aed2c184f7cb3e93772ae637a3","https://git.kernel.org/stable/c/640c8c365999c6f23447ac766437236ad88317c5","https://git.kernel.org/stable/c/665cc3ba50330049524c1d275bc840a8f28dde73","https://git.kernel.org/stable/c/0b1c4357bb21d9770451a1bdb8d419ea10bada88","https://git.kernel.org/stable/c/804de0c72cd473e186ca4e1f6287d45431b14e5a","https://git.kernel.org/stable/c/f4ce24f54d9cca4f09a395f3eecce20d6bec4663"],"weaknesses":[],"ingestedAt":"2026-10-29T20:06:42.242Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2023/54xxx/CVE-2023-54311.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2023-54311","state":"PUBLISHED","datePublished":"2025-12-30T12:23:43.174Z","dateUpdated":"2026-05-11T19:59:30.869Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-12-30T12:06:44.530Z"},"containers":{"cna":{"title":"ext4: fix deadlock when converting an inline directory in nojournal mode","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\next4: fix deadlock when converting an inline directory in nojournal mode\n\nIn no journal mode, ext4_finish_convert_inline_dir() can self-deadlock\nby calling ext4_handle_dirty_dirblock() when it already has taken the\ndirectory lock.  There is a similar self-deadlock in\next4_incvert_inline_data_nolock() for data files which we'll fix at\nthe same time.\n\nA simple reproducer demonstrating the problem:\n\n    mke2fs -Fq -t ext2 -O inline_data -b 4k /dev/vdc 64\n    mount -t ext4 -o dirsync /dev/vdc /vdc\n    cd /vdc\n    mkdir file0\n    cd file0\n    touch file0\n    touch file1\n    attr -s BurnSpaceInEA -V abcde .\n    touch supercalifragilisticexpialidocious"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"3c47d54170b6a678875566b1b8d6dcf57904e49b","status":"affected","lessThan":"b4fa4768c9acff77245d672d855d2c88294850b1","versionType":"git"},{"version":"3c47d54170b6a678875566b1b8d6dcf57904e49b","status":"affected","lessThan":"5f8b55136ad787aed2c184f7cb3e93772ae637a3","versionType":"git"},{"version":"3c47d54170b6a678875566b1b8d6dcf57904e49b","status":"affected","lessThan":"640c8c365999c6f23447ac766437236ad88317c5","versionType":"git"},{"version":"3c47d54170b6a678875566b1b8d6dcf57904e49b","status":"affected","lessThan":"665cc3ba50330049524c1d275bc840a8f28dde73","versionType":"git"},{"version":"3c47d54170b6a678875566b1b8d6dcf57904e49b","status":"affected","lessThan":"0b1c4357bb21d9770451a1bdb8d419ea10bada88","versionType":"git"},{"version":"3c47d54170b6a678875566b1b8d6dcf57904e49b","status":"affected","lessThan":"804de0c72cd473e186ca4e1f6287d45431b14e5a","versionType":"git"},{"version":"3c47d54170b6a678875566b1b8d6dcf57904e49b","status":"affected","lessThan":"f4ce24f54d9cca4f09a395f3eecce20d6bec4663","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ext4/inline.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.8","versionType":"semver"},{"version":"5.4.243","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.180","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.112","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.29","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.2.16","status":"unaffected","lessThanOrEqual":"6.2.*","versionType":"semver"},{"version":"6.3.3","status":"unaffected","lessThanOrEqual":"6.3.*","versionType":"semver"},{"version":"6.4","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ext4/inline.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/b4fa4768c9acff77245d672d855d2c88294850b1"},{"url":"https://git.kernel.org/stable/c/5f8b55136ad787aed2c184f7cb3e93772ae637a3"},{"url":"https://git.kernel.org/stable/c/640c8c365999c6f23447ac766437236ad88317c5"},{"url":"https://git.kernel.org/stable/c/665cc3ba50330049524c1d275bc840a8f28dde73"},{"url":"https://git.kernel.org/stable/c/0b1c4357bb21d9770451a1bdb8d419ea10bada88"},{"url":"https://git.kernel.org/stable/c/804de0c72cd473e186ca4e1f6287d45431b14e5a"},{"url":"https://git.kernel.org/stable/c/f4ce24f54d9cca4f09a395f3eecce20d6bec4663"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T19:59:30.869Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"5.4.243"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"5.10.180"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"5.15.112"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"6.1.29"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"6.2.16"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"6.3.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"6.4"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}