{"api_version":"1","generated_at":"2026-05-09T12:06:10+00:00","cve":"CVE-2026-43417","urls":{"html":"https://cve.report/CVE-2026-43417","api":"https://cve.report/api/cve/CVE-2026-43417.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-43417","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-43417"},"summary":{"title":"sched/mmcid: Handle vfork()/CLONE_VM correctly","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nsched/mmcid: Handle vfork()/CLONE_VM correctly\n\nMatthieu and Jiri reported stalls where a task endlessly loops in\nmm_get_cid() when scheduling in.\n\nIt turned out that the logic which handles vfork()'ed tasks is broken. It\nis invoked when the number of tasks associated to a process is smaller than\nthe number of MMCID users. It then walks the task list to find the\nvfork()'ed task, but accounts all the already processed tasks as well.\n\nIf that double processing brings the number of to be handled tasks to 0,\nthe walk stops and the vfork()'ed task's CID is not fixed up. As a\nconsequence a subsequent schedule in fails to acquire a (transitional) CID\nand the machine stalls.\n\nCure this by removing the accounting condition and make the fixup always\nwalk the full task list if it could not find the exact number of users in\nthe process' thread list.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-05-08 15:16:53","updated_at":"2026-05-08 15:16:53"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/28b5a1395036d6c7a6c8034d85ad3d7d365f192c","name":"https://git.kernel.org/stable/c/28b5a1395036d6c7a6c8034d85ad3d7d365f192c","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/e6761cdce78a8919a537989afb6aaf6881469f83","name":"https://git.kernel.org/stable/c/e6761cdce78a8919a537989afb6aaf6881469f83","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-43417","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-43417","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected fbd0e71dc370af73f6b316e4de9eed273dd90340 e6761cdce78a8919a537989afb6aaf6881469f83 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected fbd0e71dc370af73f6b316e4de9eed273dd90340 28b5a1395036d6c7a6c8034d85ad3d7d365f192c git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.19","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.19 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.19.9 6.19.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.0 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["kernel/sched/core.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"e6761cdce78a8919a537989afb6aaf6881469f83","status":"affected","version":"fbd0e71dc370af73f6b316e4de9eed273dd90340","versionType":"git"},{"lessThan":"28b5a1395036d6c7a6c8034d85ad3d7d365f192c","status":"affected","version":"fbd0e71dc370af73f6b316e4de9eed273dd90340","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["kernel/sched/core.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"6.19"},{"lessThan":"6.19","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.19.*","status":"unaffected","version":"6.19.9","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.0","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.19.9","versionStartIncluding":"6.19","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.0","versionStartIncluding":"6.19","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nsched/mmcid: Handle vfork()/CLONE_VM correctly\n\nMatthieu and Jiri reported stalls where a task endlessly loops in\nmm_get_cid() when scheduling in.\n\nIt turned out that the logic which handles vfork()'ed tasks is broken. It\nis invoked when the number of tasks associated to a process is smaller than\nthe number of MMCID users. It then walks the task list to find the\nvfork()'ed task, but accounts all the already processed tasks as well.\n\nIf that double processing brings the number of to be handled tasks to 0,\nthe walk stops and the vfork()'ed task's CID is not fixed up. As a\nconsequence a subsequent schedule in fails to acquire a (transitional) CID\nand the machine stalls.\n\nCure this by removing the accounting condition and make the fixup always\nwalk the full task list if it could not find the exact number of users in\nthe process' thread list."}],"providerMetadata":{"dateUpdated":"2026-05-08T14:21:53.618Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/e6761cdce78a8919a537989afb6aaf6881469f83"},{"url":"https://git.kernel.org/stable/c/28b5a1395036d6c7a6c8034d85ad3d7d365f192c"}],"title":"sched/mmcid: Handle vfork()/CLONE_VM correctly","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-43417","datePublished":"2026-05-08T14:21:53.618Z","dateReserved":"2026-05-01T14:12:56.008Z","dateUpdated":"2026-05-08T14:21:53.618Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-05-08 15:16:53","lastModifiedDate":"2026-05-08 15:16:53","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"43417","Ordinal":"1","Title":"sched/mmcid: Handle vfork()/CLONE_VM correctly","CVE":"CVE-2026-43417","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"43417","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nsched/mmcid: Handle vfork()/CLONE_VM correctly\n\nMatthieu and Jiri reported stalls where a task endlessly loops in\nmm_get_cid() when scheduling in.\n\nIt turned out that the logic which handles vfork()'ed tasks is broken. It\nis invoked when the number of tasks associated to a process is smaller than\nthe number of MMCID users. It then walks the task list to find the\nvfork()'ed task, but accounts all the already processed tasks as well.\n\nIf that double processing brings the number of to be handled tasks to 0,\nthe walk stops and the vfork()'ed task's CID is not fixed up. As a\nconsequence a subsequent schedule in fails to acquire a (transitional) CID\nand the machine stalls.\n\nCure this by removing the accounting condition and make the fixup always\nwalk the full task list if it could not find the exact number of users in\nthe process' thread list.","Type":"Description","Title":"sched/mmcid: Handle vfork()/CLONE_VM correctly"}]}}}