{"id":"CVE-2023-54077","summary":"fs/ntfs3: Fix memory leak if ntfs_read_mft failed","details":"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-\u003eni_flags |= NI_FLAG_DIR, then next attr will goto label ATTR_ALLOC\nand alloc ni-\u003edir.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-\u003edir.alloc_run\n 3) in cleanup function ni_clear(), when NI_FLAG_DIR is set, it frees\n ni-\u003edir.alloc_run, otherwise it frees ni-\u003efile.run\n 4) because NI_FLAG_DIR is not set in this case, ni-\u003edir.alloc_run is\n leaked as kmemleak reported:\n\nunreferenced object 0xffff888003bc5480 (size 64):\n  backtrace:\n    [\u003c000000003d42e6b0\u003e] __kmalloc_node+0x4e/0x1c0\n    [\u003c00000000d8e19b8a\u003e] kvmalloc_node+0x39/0x1f0\n    [\u003c00000000fc3eb5b8\u003e] run_add_entry+0x18a/0xa40 [ntfs3]\n    [\u003c0000000011c9f978\u003e] run_unpack+0x75d/0x8e0 [ntfs3]\n    [\u003c00000000e7cf1819\u003e] run_unpack_ex+0xbc/0x500 [ntfs3]\n    [\u003c00000000bbf0a43d\u003e] ntfs_iget5+0xb25/0x2dd0 [ntfs3]\n    [\u003c00000000a6e50693\u003e] ntfs_fill_super+0x218d/0x3580 [ntfs3]\n    [\u003c00000000b9170608\u003e] get_tree_bdev+0x3fb/0x710\n    [\u003c000000004833798a\u003e] vfs_get_tree+0x8e/0x280\n    [\u003c000000006e20b8e6\u003e] path_mount+0xf3c/0x1930\n    [\u003c000000007bf15a5f\u003e] do_mount+0xf3/0x110\n    ...\n\nFix this by always setting is_root and NI_FLAG_DIR together.","modified":"2026-04-02T09:45:34.455248Z","published":"2025-12-24T13:03:25.790Z","database_specific":{"cna_assigner":"Linux","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/54xxx/CVE-2023-54077.json"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/1bc6bb657dfb0ab3b94ef6d477ca241bf7b6ec06"},{"type":"WEB","url":"https://git.kernel.org/stable/c/3030f2b9b3329db3948c1a145a5493ca6f617d50"},{"type":"WEB","url":"https://git.kernel.org/stable/c/3bb0d3eb475f01744ce6d6e998dfbd80220852a1"},{"type":"WEB","url":"https://git.kernel.org/stable/c/93bf79f989688852deade1550fb478b0a4d8daa8"},{"type":"WEB","url":"https://git.kernel.org/stable/c/bfa434c60157c9793e9b12c9b68ade02aff9f803"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/54xxx/CVE-2023-54077.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2023-54077"},{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"82cae269cfa953032fbb8980a7d554d60fb00b17"},{"fixed":"3030f2b9b3329db3948c1a145a5493ca6f617d50"},{"fixed":"1bc6bb657dfb0ab3b94ef6d477ca241bf7b6ec06"},{"fixed":"93bf79f989688852deade1550fb478b0a4d8daa8"},{"fixed":"3bb0d3eb475f01744ce6d6e998dfbd80220852a1"},{"fixed":"bfa434c60157c9793e9b12c9b68ade02aff9f803"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-54077.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.15.0"},{"fixed":"5.15.111"}]},{"type":"ECOSYSTEM","events":[{"introduced":"5.16.0"},{"fixed":"6.1.28"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.2.0"},{"fixed":"6.2.15"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.3.0"},{"fixed":"6.3.2"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-54077.json"}}],"schema_version":"1.7.5"}