{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2023-53440","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2025-09-17T14:54:09.751Z","datePublished":"2025-09-18T16:04:17.845Z","dateUpdated":"2026-08-05T09:14:08.186Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T09:14:08.186Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnilfs2: fix sysfs interface lifetime\n\nThe current nilfs2 sysfs support has issues with the timing of creation\nand deletion of sysfs entries, potentially leading to null pointer\ndereferences, use-after-free, and lockdep warnings.\n\nSome of the sysfs attributes for nilfs2 per-filesystem instance refer to\nmetadata file \"cpfile\", \"sufile\", or \"dat\", but\nnilfs_sysfs_create_device_group that creates those attributes is executed\nbefore the inodes for these metadata files are loaded, and\nnilfs_sysfs_delete_device_group which deletes these sysfs entries is\ncalled after releasing their metadata file inodes.\n\nTherefore, access to some of these sysfs attributes may occur outside of\nthe lifetime of these metadata files, resulting in inode NULL pointer\ndereferences or use-after-free.\n\nIn addition, the call to nilfs_sysfs_create_device_group() is made during\nthe locking period of the semaphore \"ns_sem\" of nilfs object, so the\nshrinker call caused by the memory allocation for the sysfs entries, may\nderive lock dependencies \"ns_sem\" -> (shrinker) -> \"locks acquired in\nnilfs_evict_inode()\".\n\nSince nilfs2 may acquire \"ns_sem\" deep in the call stack holding other\nlocks via its error handler __nilfs_error(), this causes lockdep to report\ncircular locking.  This is a false positive and no circular locking\nactually occurs as no inodes exist yet when\nnilfs_sysfs_create_device_group() is called.  Fortunately, the lockdep\nwarnings can be resolved by simply moving the call to\nnilfs_sysfs_create_device_group() out of \"ns_sem\".\n\nThis fixes these sysfs issues by revising where the device's sysfs\ninterface is created/deleted and keeping its lifetime within the lifetime\nof the metadata files above."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The bug is reached only via local mount/umount of a nilfs2 block device and concurrent reads of world-readable `/sys/fs/nilfs2/<device>/` attributes (checkpoints/segments show handlers). No network or adjacent protocol path exists.\nAC:L - The attacker controls both sides of the lifetime race—mount/unmount (or failed-mount cleanup) plus concurrent sysfs reads of the published attributes—and can retry indefinitely, so success does not depend on external timing.\nPR:L - Although nilfs2 lacks FS_USERNS_MOUNT, an ordinary local console user can drive mount/unmount through udisks2/policykit automount or `user` fstab entries on desktop/kiosk/embedded systems, matching other nilfs2 teardown CVEs; sysfs attrs are mode 0444 so no extra privilege is needed to hit the handlers.\nUI:N - The attacker performs the mount/unmount cycling and sysfs reads themselves (or via automount of media they supply); no separate victim action is required at exploit time.\nS:U - NULL deref and inode use-after-free corrupt kernel memory within the host kernel’s security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - After `iput()` of `ns_cpfile`/`ns_sufile`/`ns_dat` while sysfs entries remain, show handlers dereference freed inodes (`nilfs_cpfile_get_stat`, `NILFS_MDT(ns_dat)->mi_sem`, `nilfs_sufile_get_ncleansegs`); UAF of those objects yields a kernel memory read primitive.\nI:H - The same freed inode/mdt objects are used under `down_read`/`up_read` and metadata helpers, so heap spraying the reclaimed slots provides write and control-flow hijack primitives typical of inode UAFs.\nA:H - Pre-load reads hit NULL `ns_*` pointers and post-`iput` reads hit freed memory, both producing kernel oops/panic (and the commit explicitly documents NULL dereferences and use-after-free)."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/nilfs2/super.c","fs/nilfs2/the_nilfs.c"],"versions":[{"version":"dd70edbde2627f47df118d899de6bbb55abcfdbf","lessThan":"d20dcec8f326deb77b6688f8441e014045dac457","status":"affected","versionType":"git"},{"version":"dd70edbde2627f47df118d899de6bbb55abcfdbf","lessThan":"5fe0ea141fbb887d407f1bf572ebf24427480d5c","status":"affected","versionType":"git"},{"version":"dd70edbde2627f47df118d899de6bbb55abcfdbf","lessThan":"83b16a60e413148685739635901937e2f16a7873","status":"affected","versionType":"git"},{"version":"dd70edbde2627f47df118d899de6bbb55abcfdbf","lessThan":"3dbee84bf9e3273c4bb9ca6fc18ff22fba23dd24","status":"affected","versionType":"git"},{"version":"dd70edbde2627f47df118d899de6bbb55abcfdbf","lessThan":"d540aea451ab5489777a8156560f1388449b3109","status":"affected","versionType":"git"},{"version":"dd70edbde2627f47df118d899de6bbb55abcfdbf","lessThan":"1942ccb7d95f287a312fcbabfa8bc9ba501b1953","status":"affected","versionType":"git"},{"version":"dd70edbde2627f47df118d899de6bbb55abcfdbf","lessThan":"daf4eb3a908b108279b60172d2f176e70d2df875","status":"affected","versionType":"git"},{"version":"dd70edbde2627f47df118d899de6bbb55abcfdbf","lessThan":"42560f9c92cc43dce75dbf06cc0d840dced39b12","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/nilfs2/super.c","fs/nilfs2/the_nilfs.c"],"versions":[{"version":"3.17","status":"affected"},{"version":"0","lessThan":"3.17","status":"unaffected","versionType":"semver"},{"version":"4.14.313","lessThanOrEqual":"4.14.*","status":"unaffected","versionType":"semver"},{"version":"4.19.281","lessThanOrEqual":"4.19.*","status":"unaffected","versionType":"semver"},{"version":"5.4.241","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.178","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.107","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.24","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.2.11","lessThanOrEqual":"6.2.*","status":"unaffected","versionType":"semver"},{"version":"6.3","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":"3.17","versionEndExcluding":"4.14.313"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"4.19.281"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"5.4.241"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"5.10.178"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"5.15.107"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"6.1.24"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"6.2.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"6.3"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/d20dcec8f326deb77b6688f8441e014045dac457"},{"url":"https://git.kernel.org/stable/c/5fe0ea141fbb887d407f1bf572ebf24427480d5c"},{"url":"https://git.kernel.org/stable/c/83b16a60e413148685739635901937e2f16a7873"},{"url":"https://git.kernel.org/stable/c/3dbee84bf9e3273c4bb9ca6fc18ff22fba23dd24"},{"url":"https://git.kernel.org/stable/c/d540aea451ab5489777a8156560f1388449b3109"},{"url":"https://git.kernel.org/stable/c/1942ccb7d95f287a312fcbabfa8bc9ba501b1953"},{"url":"https://git.kernel.org/stable/c/daf4eb3a908b108279b60172d2f176e70d2df875"},{"url":"https://git.kernel.org/stable/c/42560f9c92cc43dce75dbf06cc0d840dced39b12"}],"title":"nilfs2: fix sysfs interface lifetime","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":5.5,"attackVector":"LOCAL","baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","integrityImpact":"NONE","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"LOW","confidentialityImpact":"NONE"}},{"other":{"type":"ssvc","content":{"id":"CVE-2023-53440","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2026-01-14T19:17:48.447888Z"}}}],"problemTypes":[{"descriptions":[{"lang":"en","type":"CWE","cweId":"CWE-476","description":"CWE-476 NULL Pointer Dereference"}]}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2026-01-14T19:23:10.782Z"}}]}}