{"id":"CVE-2026-31577","state":"PUBLISHED","title":"nilfs2: fix NULL i_assoc_inode dereference in nilfs_mdt_save_to_shadow_map","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnilfs2: fix NULL i_assoc_inode dereference in nilfs_mdt_save_to_shadow_map\n\nThe DAT inode's btree node cache (i_assoc_inode) is initialized lazily\nduring btree operations. However, nilfs_mdt_save_to_shadow_map()\nassumes i_assoc_inode is already initialized when copying dirty pages\nto the shadow map during GC.\n\nIf NILFS_IOCTL_CLEAN_SEGMENTS is called immediately after mount before\nany btree operation has occurred on the DAT inode, i_assoc_inode is\nNULL leading to a general protection fault.\n\nFix this by calling nilfs_attach_btree_node_cache() on the DAT inode\nin nilfs_dat_read() at mount time, ensuring i_assoc_inode is always\ninitialized before any GC operation can use it.","publishedAt":"2026-04-24T14:42:08.879Z","updatedAt":"2026-06-14T17:42:01.611Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d626fcdabea2258be395a775bdbe09270e9bf73d","status":"affected","lessThan":"6637bbcfb59df5b732a79e5ab1a74886a0b93d59","versionType":"git"},{"version":"d05cc5395e36711edad8bdef6945f138d8a7097b","status":"affected","lessThan":"837c7a59fb58f81b0db33848357f6a5d0d1250ad","versionType":"git"},{"version":"e897be17a441fa637cd166fc3de1445131e57692","status":"affected","lessThan":"7902b1df1520a0880bcda7a3704cfacd17905a83","versionType":"git"},{"version":"e897be17a441fa637cd166fc3de1445131e57692","status":"affected","lessThan":"7318e3549518ce8f14776a489d86488d80d7e2c8","versionType":"git"},{"version":"e897be17a441fa637cd166fc3de1445131e57692","status":"affected","lessThan":"449ec5fc99f45974525ba9eea16b6670c45cd363","versionType":"git"},{"version":"e897be17a441fa637cd166fc3de1445131e57692","status":"affected","lessThan":"c36e206f302f1ddefed92d09ecbba070e1ae079e","versionType":"git"},{"version":"e897be17a441fa637cd166fc3de1445131e57692","status":"affected","lessThan":"41de342278ae025c99cc8d33648773f05e306cf1","versionType":"git"},{"version":"e897be17a441fa637cd166fc3de1445131e57692","status":"affected","lessThan":"97fb7afec404912d967a7d4715f37742666b3084","versionType":"git"},{"version":"e897be17a441fa637cd166fc3de1445131e57692","status":"affected","lessThan":"4a4e0328edd9e9755843787d28f16dd4165f8b48","versionType":"git"},{"version":"6c3da8c0a35bbafe359d9166269d5590f29664de","status":"affected","versionType":"git"},{"version":"605babb979c213737618b1c837e89624e5ab11fd","status":"affected","versionType":"git"},{"version":"307d021b1a7f33048b624f7aaeaa75e3eae571f1","status":"affected","versionType":"git"},{"version":"1829b24a36ca12ca95b96d5478faeff40c17f2b6","status":"affected","versionType":"git"},{"version":"5.10.118","status":"affected","lessThan":"5.10.258","versionType":"semver"},{"version":"5.15.42","status":"affected","lessThan":"5.15.209","versionType":"semver"},{"version":"4.14.296","status":"affected","lessThan":"4.15","versionType":"semver"},{"version":"4.19.245","status":"affected","lessThan":"4.20","versionType":"semver"},{"version":"5.4.196","status":"affected","lessThan":"5.5","versionType":"semver"},{"version":"5.17.10","status":"affected","lessThan":"5.18","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/nilfs2/dat.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.18","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.18","versionType":"semver"},{"version":"5.10.258","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.209","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.175","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.136","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.83","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.24","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.14","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0.1","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/nilfs2/dat.c"]}],"references":["https://git.kernel.org/stable/c/6637bbcfb59df5b732a79e5ab1a74886a0b93d59","https://git.kernel.org/stable/c/837c7a59fb58f81b0db33848357f6a5d0d1250ad","https://git.kernel.org/stable/c/7902b1df1520a0880bcda7a3704cfacd17905a83","https://git.kernel.org/stable/c/7318e3549518ce8f14776a489d86488d80d7e2c8","https://git.kernel.org/stable/c/449ec5fc99f45974525ba9eea16b6670c45cd363","https://git.kernel.org/stable/c/c36e206f302f1ddefed92d09ecbba070e1ae079e","https://git.kernel.org/stable/c/41de342278ae025c99cc8d33648773f05e306cf1","https://git.kernel.org/stable/c/97fb7afec404912d967a7d4715f37742666b3084","https://git.kernel.org/stable/c/4a4e0328edd9e9755843787d28f16dd4165f8b48"],"weaknesses":[],"ingestedAt":"2026-10-29T20:11:40.391Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/31xxx/CVE-2026-31577.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-31577","state":"PUBLISHED","datePublished":"2026-04-24T14:42:08.879Z","dateUpdated":"2026-06-14T17:42:01.611Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-03-09T15:48:24.119Z"},"containers":{"cna":{"title":"nilfs2: fix NULL i_assoc_inode dereference in nilfs_mdt_save_to_shadow_map","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnilfs2: fix NULL i_assoc_inode dereference in nilfs_mdt_save_to_shadow_map\n\nThe DAT inode's btree node cache (i_assoc_inode) is initialized lazily\nduring btree operations. However, nilfs_mdt_save_to_shadow_map()\nassumes i_assoc_inode is already initialized when copying dirty pages\nto the shadow map during GC.\n\nIf NILFS_IOCTL_CLEAN_SEGMENTS is called immediately after mount before\nany btree operation has occurred on the DAT inode, i_assoc_inode is\nNULL leading to a general protection fault.\n\nFix this by calling nilfs_attach_btree_node_cache() on the DAT inode\nin nilfs_dat_read() at mount time, ensuring i_assoc_inode is always\ninitialized before any GC operation can use it."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d626fcdabea2258be395a775bdbe09270e9bf73d","status":"affected","lessThan":"6637bbcfb59df5b732a79e5ab1a74886a0b93d59","versionType":"git"},{"version":"d05cc5395e36711edad8bdef6945f138d8a7097b","status":"affected","lessThan":"837c7a59fb58f81b0db33848357f6a5d0d1250ad","versionType":"git"},{"version":"e897be17a441fa637cd166fc3de1445131e57692","status":"affected","lessThan":"7902b1df1520a0880bcda7a3704cfacd17905a83","versionType":"git"},{"version":"e897be17a441fa637cd166fc3de1445131e57692","status":"affected","lessThan":"7318e3549518ce8f14776a489d86488d80d7e2c8","versionType":"git"},{"version":"e897be17a441fa637cd166fc3de1445131e57692","status":"affected","lessThan":"449ec5fc99f45974525ba9eea16b6670c45cd363","versionType":"git"},{"version":"e897be17a441fa637cd166fc3de1445131e57692","status":"affected","lessThan":"c36e206f302f1ddefed92d09ecbba070e1ae079e","versionType":"git"},{"version":"e897be17a441fa637cd166fc3de1445131e57692","status":"affected","lessThan":"41de342278ae025c99cc8d33648773f05e306cf1","versionType":"git"},{"version":"e897be17a441fa637cd166fc3de1445131e57692","status":"affected","lessThan":"97fb7afec404912d967a7d4715f37742666b3084","versionType":"git"},{"version":"e897be17a441fa637cd166fc3de1445131e57692","status":"affected","lessThan":"4a4e0328edd9e9755843787d28f16dd4165f8b48","versionType":"git"},{"version":"6c3da8c0a35bbafe359d9166269d5590f29664de","status":"affected","versionType":"git"},{"version":"605babb979c213737618b1c837e89624e5ab11fd","status":"affected","versionType":"git"},{"version":"307d021b1a7f33048b624f7aaeaa75e3eae571f1","status":"affected","versionType":"git"},{"version":"1829b24a36ca12ca95b96d5478faeff40c17f2b6","status":"affected","versionType":"git"},{"version":"5.10.118","status":"affected","lessThan":"5.10.258","versionType":"semver"},{"version":"5.15.42","status":"affected","lessThan":"5.15.209","versionType":"semver"},{"version":"4.14.296","status":"affected","lessThan":"4.15","versionType":"semver"},{"version":"4.19.245","status":"affected","lessThan":"4.20","versionType":"semver"},{"version":"5.4.196","status":"affected","lessThan":"5.5","versionType":"semver"},{"version":"5.17.10","status":"affected","lessThan":"5.18","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/nilfs2/dat.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.18","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.18","versionType":"semver"},{"version":"5.10.258","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.209","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.175","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.136","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.83","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.24","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.14","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0.1","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/nilfs2/dat.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/6637bbcfb59df5b732a79e5ab1a74886a0b93d59"},{"url":"https://git.kernel.org/stable/c/837c7a59fb58f81b0db33848357f6a5d0d1250ad"},{"url":"https://git.kernel.org/stable/c/7902b1df1520a0880bcda7a3704cfacd17905a83"},{"url":"https://git.kernel.org/stable/c/7318e3549518ce8f14776a489d86488d80d7e2c8"},{"url":"https://git.kernel.org/stable/c/449ec5fc99f45974525ba9eea16b6670c45cd363"},{"url":"https://git.kernel.org/stable/c/c36e206f302f1ddefed92d09ecbba070e1ae079e"},{"url":"https://git.kernel.org/stable/c/41de342278ae025c99cc8d33648773f05e306cf1"},{"url":"https://git.kernel.org/stable/c/97fb7afec404912d967a7d4715f37742666b3084"},{"url":"https://git.kernel.org/stable/c/4a4e0328edd9e9755843787d28f16dd4165f8b48"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-06-14T17:42:01.611Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.118","versionEndExcluding":"5.10.258"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.42","versionEndExcluding":"5.15.209"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.18","versionEndExcluding":"6.1.175"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.18","versionEndExcluding":"6.6.136"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.18","versionEndExcluding":"6.12.83"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.18","versionEndExcluding":"6.18.24"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.18","versionEndExcluding":"6.19.14"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.18","versionEndExcluding":"7.0.1"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.18","versionEndExcluding":"7.1"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14.296"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.19.245"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4.196"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.17.10"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}