{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2023-54077","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2025-12-24T12:21:05.094Z","datePublished":"2025-12-24T13:03:25.790Z","dateUpdated":"2026-05-11T19:55:02.546Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-05-11T19:55:02.546Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nfs/ntfs3: Fix memory leak if ntfs_read_mft failed\n\nLabel ATTR_ROOT in ntfs_read_mft() sets is_root = true and\nni->ni_flags |= NI_FLAG_DIR, then next attr will goto label ATTR_ALLOC\nand alloc ni->dir.alloc_run. However two states are not always\nconsistent and can make memory leak.\n\n 1) attr_name in ATTR_ROOT does not fit the condition it will set\n is_root = true but NI_FLAG_DIR is not set.\n 2) next attr_name in ATTR_ALLOC fits the condition and alloc\n ni->dir.alloc_run\n 3) in cleanup function ni_clear(), when NI_FLAG_DIR is set, it frees\n ni->dir.alloc_run, otherwise it frees ni->file.run\n 4) because NI_FLAG_DIR is not set in this case, ni->dir.alloc_run is\n leaked as kmemleak reported:\n\nunreferenced object 0xffff888003bc5480 (size 64):\n  backtrace:\n    [<000000003d42e6b0>] __kmalloc_node+0x4e/0x1c0\n    [<00000000d8e19b8a>] kvmalloc_node+0x39/0x1f0\n    [<00000000fc3eb5b8>] run_add_entry+0x18a/0xa40 [ntfs3]\n    [<0000000011c9f978>] run_unpack+0x75d/0x8e0 [ntfs3]\n    [<00000000e7cf1819>] run_unpack_ex+0xbc/0x500 [ntfs3]\n    [<00000000bbf0a43d>] ntfs_iget5+0xb25/0x2dd0 [ntfs3]\n    [<00000000a6e50693>] ntfs_fill_super+0x218d/0x3580 [ntfs3]\n    [<00000000b9170608>] get_tree_bdev+0x3fb/0x710\n    [<000000004833798a>] vfs_get_tree+0x8e/0x280\n    [<000000006e20b8e6>] path_mount+0xf3c/0x1930\n    [<000000007bf15a5f>] do_mount+0xf3/0x110\n    ...\n\nFix this by always setting is_root and NI_FLAG_DIR together."}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ntfs3/inode.c"],"versions":[{"version":"82cae269cfa953032fbb8980a7d554d60fb00b17","lessThan":"3030f2b9b3329db3948c1a145a5493ca6f617d50","status":"affected","versionType":"git"},{"version":"82cae269cfa953032fbb8980a7d554d60fb00b17","lessThan":"1bc6bb657dfb0ab3b94ef6d477ca241bf7b6ec06","status":"affected","versionType":"git"},{"version":"82cae269cfa953032fbb8980a7d554d60fb00b17","lessThan":"93bf79f989688852deade1550fb478b0a4d8daa8","status":"affected","versionType":"git"},{"version":"82cae269cfa953032fbb8980a7d554d60fb00b17","lessThan":"3bb0d3eb475f01744ce6d6e998dfbd80220852a1","status":"affected","versionType":"git"},{"version":"82cae269cfa953032fbb8980a7d554d60fb00b17","lessThan":"bfa434c60157c9793e9b12c9b68ade02aff9f803","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ntfs3/inode.c"],"versions":[{"version":"5.15","status":"affected"},{"version":"0","lessThan":"5.15","status":"unaffected","versionType":"semver"},{"version":"5.15.111","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.28","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.2.15","lessThanOrEqual":"6.2.*","status":"unaffected","versionType":"semver"},{"version":"6.3.2","lessThanOrEqual":"6.3.*","status":"unaffected","versionType":"semver"},{"version":"6.4","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"5.15.111"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"6.1.28"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"6.2.15"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"6.3.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"6.4"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/3030f2b9b3329db3948c1a145a5493ca6f617d50"},{"url":"https://git.kernel.org/stable/c/1bc6bb657dfb0ab3b94ef6d477ca241bf7b6ec06"},{"url":"https://git.kernel.org/stable/c/93bf79f989688852deade1550fb478b0a4d8daa8"},{"url":"https://git.kernel.org/stable/c/3bb0d3eb475f01744ce6d6e998dfbd80220852a1"},{"url":"https://git.kernel.org/stable/c/bfa434c60157c9793e9b12c9b68ade02aff9f803"}],"title":"fs/ntfs3: Fix memory leak if ntfs_read_mft failed","x_generator":{"engine":"bippy-1.2.0"}}}}