{"id":"CVE-2025-38282","title":"kernfs: Relax constraint in draining guard","summary":"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 unbre…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72 < 2d6a67c2b3b87808a347dc1047b520a9dd177a4f","Linux >= bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72 < 6c81f1c7812c61f187bed1b938f1d2e391d503ab","Linux >= bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72 < 6bfb154f95d5f0ab7ed056f23aba8c1a94cb3927","Linux >= bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72 < 72275c888f8962b406ee9c6885c79bf68cca5a63","Linux >= bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72 < 071d8e4c2a3b0999a9b822e2eb8854784a350f8a","Linux 6.1"],"ssvc":{"exploitation":"none","automatable":"no","technicalImpact":"partial","timestamp":"2026-11-05T20:53:01.163475Z"},"published":"2025-07-10","updated":"2026-11-05","sourceUpdated":"2026-11-05T21:02:30.419Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2025-38282","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"}],"tags":["cve.org"],"epss":0.00191,"epssPercentile":0.08763,"ingestedAt":"2026-11-05T22:38:31.946Z","slug":"CVE-2025-38282","body":"## Overview\n\nIn 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.)\n\n## Affected\n\n- `Linux >= bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72 < 2d6a67c2b3b87808a347dc1047b520a9dd177a4f`\n- `Linux >= bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72 < 6c81f1c7812c61f187bed1b938f1d2e391d503ab`\n- `Linux >= bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72 < 6bfb154f95d5f0ab7ed056f23aba8c1a94cb3927`\n- `Linux >= bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72 < 72275c888f8962b406ee9c6885c79bf68cca5a63`\n- `Linux >= bdb2fd7fc56e197a63c0b0e7e07d25d5e20e7c72 < 071d8e4c2a3b0999a9b822e2eb8854784a350f8a`\n- `Linux 6.1`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}