{"id":"CVE-2025-38282","state":"PUBLISHED","title":"kernfs: Relax constraint in draining guard","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nkernfs: Relax constraint in draining guard\n\nThe active reference lifecycle provides the break/unbreak mechanism but\nthe active reference is not truly active after unbreak -- callers don't\nuse it afterwards but it's important for proper pairing of kn->active\ncounting. Assuming this mechanism is in place, the WARN check in\nkernfs_should_drain_open_files() is too sensitive -- it may transiently\ncatch those (rightful) callers between\nkernfs_unbreak_active_protection() and kernfs_put_active() as found out by Chen\nRidong:\n\n\tkernfs_remove_by_name_ns\tkernfs_get_active // active=1\n\t__kernfs_remove\t\t\t\t\t  // active=0x80000002\n\tkernfs_drain\t\t\t...\n\twait_event\n\t//waiting (active == 0x80000001)\n\t\t\t\t\tkernfs_break_active_protection\n\t\t\t\t\t// active = 0x80000001\n\t// continue\n\t\t\t\t\tkernfs_unbreak_active_protection\n\t\t\t\t\t// active = 0x80000002\n\t...\n\tkernfs_should_drain_open_files\n\t// warning occurs\n\t\t\t\t\tkernfs_put_active\n\nTo avoid the false positives (mind panic_on_warn) remove the check altogether.\n(This is meant as quick fix, I think active reference break/unbreak may be\nsimplified with larger rework.)","publishedAt":"2025-07-10T07:42:00.395Z","updatedAt":"2026-05-11T21:24:51.633Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72","status":"affected","lessThan":"2d6a67c2b3b87808a347dc1047b520a9dd177a4f","versionType":"git"},{"version":"bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72","status":"affected","lessThan":"6c81f1c7812c61f187bed1b938f1d2e391d503ab","versionType":"git"},{"version":"bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72","status":"affected","lessThan":"6bfb154f95d5f0ab7ed056f23aba8c1a94cb3927","versionType":"git"},{"version":"bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72","status":"affected","lessThan":"72275c888f8962b406ee9c6885c79bf68cca5a63","versionType":"git"},{"version":"bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72","status":"affected","lessThan":"071d8e4c2a3b0999a9b822e2eb8854784a350f8a","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/kernfs/dir.c","fs/kernfs/file.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.1","versionType":"semver"},{"version":"6.1.142","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.94","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.34","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.15.3","status":"unaffected","lessThanOrEqual":"6.15.*","versionType":"semver"},{"version":"6.16","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/kernfs/dir.c","fs/kernfs/file.c"]}],"references":["https://git.kernel.org/stable/c/2d6a67c2b3b87808a347dc1047b520a9dd177a4f","https://git.kernel.org/stable/c/6c81f1c7812c61f187bed1b938f1d2e391d503ab","https://git.kernel.org/stable/c/6bfb154f95d5f0ab7ed056f23aba8c1a94cb3927","https://git.kernel.org/stable/c/72275c888f8962b406ee9c6885c79bf68cca5a63","https://git.kernel.org/stable/c/071d8e4c2a3b0999a9b822e2eb8854784a350f8a","https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html"],"weaknesses":[],"ingestedAt":"2026-10-29T20:09:09.358Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/38xxx/CVE-2025-38282.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-38282","state":"PUBLISHED","datePublished":"2025-07-10T07:42:00.395Z","dateUpdated":"2026-05-11T21:24:51.633Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-04-16T04:51:24.000Z"},"containers":{"cna":{"title":"kernfs: Relax constraint in draining guard","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nkernfs: Relax constraint in draining guard\n\nThe active reference lifecycle provides the break/unbreak mechanism but\nthe active reference is not truly active after unbreak -- callers don't\nuse it afterwards but it's important for proper pairing of kn->active\ncounting. Assuming this mechanism is in place, the WARN check in\nkernfs_should_drain_open_files() is too sensitive -- it may transiently\ncatch those (rightful) callers between\nkernfs_unbreak_active_protection() and kernfs_put_active() as found out by Chen\nRidong:\n\n\tkernfs_remove_by_name_ns\tkernfs_get_active // active=1\n\t__kernfs_remove\t\t\t\t\t  // active=0x80000002\n\tkernfs_drain\t\t\t...\n\twait_event\n\t//waiting (active == 0x80000001)\n\t\t\t\t\tkernfs_break_active_protection\n\t\t\t\t\t// active = 0x80000001\n\t// continue\n\t\t\t\t\tkernfs_unbreak_active_protection\n\t\t\t\t\t// active = 0x80000002\n\t...\n\tkernfs_should_drain_open_files\n\t// warning occurs\n\t\t\t\t\tkernfs_put_active\n\nTo avoid the false positives (mind panic_on_warn) remove the check altogether.\n(This is meant as quick fix, I think active reference break/unbreak may be\nsimplified with larger rework.)"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72","status":"affected","lessThan":"2d6a67c2b3b87808a347dc1047b520a9dd177a4f","versionType":"git"},{"version":"bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72","status":"affected","lessThan":"6c81f1c7812c61f187bed1b938f1d2e391d503ab","versionType":"git"},{"version":"bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72","status":"affected","lessThan":"6bfb154f95d5f0ab7ed056f23aba8c1a94cb3927","versionType":"git"},{"version":"bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72","status":"affected","lessThan":"72275c888f8962b406ee9c6885c79bf68cca5a63","versionType":"git"},{"version":"bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72","status":"affected","lessThan":"071d8e4c2a3b0999a9b822e2eb8854784a350f8a","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/kernfs/dir.c","fs/kernfs/file.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.1","versionType":"semver"},{"version":"6.1.142","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.94","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.34","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.15.3","status":"unaffected","lessThanOrEqual":"6.15.*","versionType":"semver"},{"version":"6.16","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/kernfs/dir.c","fs/kernfs/file.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/2d6a67c2b3b87808a347dc1047b520a9dd177a4f"},{"url":"https://git.kernel.org/stable/c/6c81f1c7812c61f187bed1b938f1d2e391d503ab"},{"url":"https://git.kernel.org/stable/c/6bfb154f95d5f0ab7ed056f23aba8c1a94cb3927"},{"url":"https://git.kernel.org/stable/c/72275c888f8962b406ee9c6885c79bf68cca5a63"},{"url":"https://git.kernel.org/stable/c/071d8e4c2a3b0999a9b822e2eb8854784a350f8a"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T21:24:51.633Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1","versionEndExcluding":"6.1.142"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1","versionEndExcluding":"6.6.94"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1","versionEndExcluding":"6.12.34"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1","versionEndExcluding":"6.15.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1","versionEndExcluding":"6.16"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2025-11-03T17:36:11.856Z"}}]}}}