{"api_version":"1","generated_at":"2026-06-25T03:17:01+00:00","cve":"CVE-2026-52980","urls":{"html":"https://cve.report/CVE-2026-52980","api":"https://cve.report/api/cve/CVE-2026-52980.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-52980","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-52980"},"summary":{"title":"sched/fair: Clear rel_deadline when initializing forked entities","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nsched/fair: Clear rel_deadline when initializing forked entities\n\nA yield-triggered crash can happen when a newly forked sched_entity\nenters the fair class with se->rel_deadline unexpectedly set.\n\nThe failing sequence is:\n\n  1. A task is forked while se->rel_deadline is still set.\n  2. __sched_fork() initializes vruntime, vlag and other sched_entity\n     state, but does not clear rel_deadline.\n  3. On the first enqueue, enqueue_entity() calls place_entity().\n  4. Because se->rel_deadline is set, place_entity() treats se->deadline\n     as a relative deadline and converts it to an absolute deadline by\n     adding the current vruntime.\n  5. However, the forked entity's deadline is not a valid inherited\n     relative deadline for this new scheduling instance, so the conversion\n     produces an abnormally large deadline.\n  6. If the task later calls sched_yield(), yield_task_fair() advances\n     se->vruntime to se->deadline.\n  7. The inflated vruntime is then used by the following enqueue path,\n     where the vruntime-derived key can overflow when multiplied by the\n     entity weight.\n  8. This corrupts cfs_rq->sum_w_vruntime, breaks EEVDF eligibility\n     calculation, and can eventually make all entities appear ineligible.\n     pick_next_entity() may then return NULL unexpectedly, leading to a\n     later NULL dereference.\n\nA captured trace shows the effect clearly. Before yield, the entity's\nvruntime was around:\n\n  9834017729983308\n\nAfter yield_task_fair() executed:\n\n  se->vruntime = se->deadline\n\nthe vruntime jumped to:\n\n  19668035460670230\n\nand the deadline was later advanced further to:\n\n  19668035463470230\n\nThis shows that the deadline had already become abnormally large before\nyield_task_fair() copied it into vruntime.\n\nrel_deadline is only meaningful when se->deadline really carries a\nrelative deadline that still needs to be placed against vruntime. A\nfreshly forked sched_entity should not inherit or retain this state.\nClear se->rel_deadline in __sched_fork(), together with the other\nsched_entity runtime state, so that the first enqueue does not interpret\nthe new entity's deadline as a stale relative deadline.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-06-24 17:17:08","updated_at":"2026-06-24 17:17:08"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/c71bf35caba12bfd9bc23e32b0bcd9e02d1cf1ac","name":"https://git.kernel.org/stable/c/c71bf35caba12bfd9bc23e32b0bcd9e02d1cf1ac","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/8f4a16200785f49cf02c5b71bdfe7a9dab63f23a","name":"https://git.kernel.org/stable/c/8f4a16200785f49cf02c5b71bdfe7a9dab63f23a","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/3da56dc063cd77b9c0b40add930767fab4e389f3","name":"https://git.kernel.org/stable/c/3da56dc063cd77b9c0b40add930767fab4e389f3","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/f3c16e1f4a314a20717ab90a41885f8111a242ab","name":"https://git.kernel.org/stable/c/f3c16e1f4a314a20717ab90a41885f8111a242ab","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-52980","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-52980","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 82e9d0456e06cebe2c89f3c73cdbc9e3805e9437 c71bf35caba12bfd9bc23e32b0bcd9e02d1cf1ac git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 82e9d0456e06cebe2c89f3c73cdbc9e3805e9437 f3c16e1f4a314a20717ab90a41885f8111a242ab git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 82e9d0456e06cebe2c89f3c73cdbc9e3805e9437 8f4a16200785f49cf02c5b71bdfe7a9dab63f23a git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 82e9d0456e06cebe2c89f3c73cdbc9e3805e9437 3da56dc063cd77b9c0b40add930767fab4e389f3 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.12","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.91 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.33 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.0.10 7.0.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1 * 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":"c71bf35caba12bfd9bc23e32b0bcd9e02d1cf1ac","status":"affected","version":"82e9d0456e06cebe2c89f3c73cdbc9e3805e9437","versionType":"git"},{"lessThan":"f3c16e1f4a314a20717ab90a41885f8111a242ab","status":"affected","version":"82e9d0456e06cebe2c89f3c73cdbc9e3805e9437","versionType":"git"},{"lessThan":"8f4a16200785f49cf02c5b71bdfe7a9dab63f23a","status":"affected","version":"82e9d0456e06cebe2c89f3c73cdbc9e3805e9437","versionType":"git"},{"lessThan":"3da56dc063cd77b9c0b40add930767fab4e389f3","status":"affected","version":"82e9d0456e06cebe2c89f3c73cdbc9e3805e9437","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.12"},{"lessThan":"6.12","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.91","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.33","versionType":"semver"},{"lessThanOrEqual":"7.0.*","status":"unaffected","version":"7.0.10","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.1","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.91","versionStartIncluding":"6.12","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.33","versionStartIncluding":"6.12","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.0.10","versionStartIncluding":"6.12","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1","versionStartIncluding":"6.12","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nsched/fair: Clear rel_deadline when initializing forked entities\n\nA yield-triggered crash can happen when a newly forked sched_entity\nenters the fair class with se->rel_deadline unexpectedly set.\n\nThe failing sequence is:\n\n  1. A task is forked while se->rel_deadline is still set.\n  2. __sched_fork() initializes vruntime, vlag and other sched_entity\n     state, but does not clear rel_deadline.\n  3. On the first enqueue, enqueue_entity() calls place_entity().\n  4. Because se->rel_deadline is set, place_entity() treats se->deadline\n     as a relative deadline and converts it to an absolute deadline by\n     adding the current vruntime.\n  5. However, the forked entity's deadline is not a valid inherited\n     relative deadline for this new scheduling instance, so the conversion\n     produces an abnormally large deadline.\n  6. If the task later calls sched_yield(), yield_task_fair() advances\n     se->vruntime to se->deadline.\n  7. The inflated vruntime is then used by the following enqueue path,\n     where the vruntime-derived key can overflow when multiplied by the\n     entity weight.\n  8. This corrupts cfs_rq->sum_w_vruntime, breaks EEVDF eligibility\n     calculation, and can eventually make all entities appear ineligible.\n     pick_next_entity() may then return NULL unexpectedly, leading to a\n     later NULL dereference.\n\nA captured trace shows the effect clearly. Before yield, the entity's\nvruntime was around:\n\n  9834017729983308\n\nAfter yield_task_fair() executed:\n\n  se->vruntime = se->deadline\n\nthe vruntime jumped to:\n\n  19668035460670230\n\nand the deadline was later advanced further to:\n\n  19668035463470230\n\nThis shows that the deadline had already become abnormally large before\nyield_task_fair() copied it into vruntime.\n\nrel_deadline is only meaningful when se->deadline really carries a\nrelative deadline that still needs to be placed against vruntime. A\nfreshly forked sched_entity should not inherit or retain this state.\nClear se->rel_deadline in __sched_fork(), together with the other\nsched_entity runtime state, so that the first enqueue does not interpret\nthe new entity's deadline as a stale relative deadline."}],"providerMetadata":{"dateUpdated":"2026-06-24T16:28:56.457Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/c71bf35caba12bfd9bc23e32b0bcd9e02d1cf1ac"},{"url":"https://git.kernel.org/stable/c/f3c16e1f4a314a20717ab90a41885f8111a242ab"},{"url":"https://git.kernel.org/stable/c/8f4a16200785f49cf02c5b71bdfe7a9dab63f23a"},{"url":"https://git.kernel.org/stable/c/3da56dc063cd77b9c0b40add930767fab4e389f3"}],"title":"sched/fair: Clear rel_deadline when initializing forked entities","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-52980","datePublished":"2026-06-24T16:28:56.457Z","dateReserved":"2026-06-09T07:44:35.376Z","dateUpdated":"2026-06-24T16:28:56.457Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-06-24 17:17:08","lastModifiedDate":"2026-06-24 17:17:08","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"52980","Ordinal":"1","Title":"sched/fair: Clear rel_deadline when initializing forked entities","CVE":"CVE-2026-52980","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"52980","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nsched/fair: Clear rel_deadline when initializing forked entities\n\nA yield-triggered crash can happen when a newly forked sched_entity\nenters the fair class with se->rel_deadline unexpectedly set.\n\nThe failing sequence is:\n\n  1. A task is forked while se->rel_deadline is still set.\n  2. __sched_fork() initializes vruntime, vlag and other sched_entity\n     state, but does not clear rel_deadline.\n  3. On the first enqueue, enqueue_entity() calls place_entity().\n  4. Because se->rel_deadline is set, place_entity() treats se->deadline\n     as a relative deadline and converts it to an absolute deadline by\n     adding the current vruntime.\n  5. However, the forked entity's deadline is not a valid inherited\n     relative deadline for this new scheduling instance, so the conversion\n     produces an abnormally large deadline.\n  6. If the task later calls sched_yield(), yield_task_fair() advances\n     se->vruntime to se->deadline.\n  7. The inflated vruntime is then used by the following enqueue path,\n     where the vruntime-derived key can overflow when multiplied by the\n     entity weight.\n  8. This corrupts cfs_rq->sum_w_vruntime, breaks EEVDF eligibility\n     calculation, and can eventually make all entities appear ineligible.\n     pick_next_entity() may then return NULL unexpectedly, leading to a\n     later NULL dereference.\n\nA captured trace shows the effect clearly. Before yield, the entity's\nvruntime was around:\n\n  9834017729983308\n\nAfter yield_task_fair() executed:\n\n  se->vruntime = se->deadline\n\nthe vruntime jumped to:\n\n  19668035460670230\n\nand the deadline was later advanced further to:\n\n  19668035463470230\n\nThis shows that the deadline had already become abnormally large before\nyield_task_fair() copied it into vruntime.\n\nrel_deadline is only meaningful when se->deadline really carries a\nrelative deadline that still needs to be placed against vruntime. A\nfreshly forked sched_entity should not inherit or retain this state.\nClear se->rel_deadline in __sched_fork(), together with the other\nsched_entity runtime state, so that the first enqueue does not interpret\nthe new entity's deadline as a stale relative deadline.","Type":"Description","Title":"sched/fair: Clear rel_deadline when initializing forked entities"}]}}}