{"id":"CVE-2022-48921","state":"PUBLISHED","title":"sched/fair: Fix fault in reweight_entity","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nsched/fair: Fix fault in reweight_entity\n\nSyzbot found a GPF in reweight_entity. This has been bisected to\ncommit 4ef0c5c6b5ba (\"kernel/sched: Fix sched_fork() access an invalid\nsched_task_group\")\n\nThere is a race between sched_post_fork() and setpriority(PRIO_PGRP)\nwithin a thread group that causes a null-ptr-deref in\nreweight_entity() in CFS. The scenario is that the main process spawns\nnumber of new threads, which then call setpriority(PRIO_PGRP, 0, -20),\nwait, and exit.  For each of the new threads the copy_process() gets\ninvoked, which adds the new task_struct and calls sched_post_fork()\nfor it.\n\nIn the above scenario there is a possibility that\nsetpriority(PRIO_PGRP) and set_one_prio() will be called for a thread\nin the group that is just being created by copy_process(), and for\nwhich the sched_post_fork() has not been executed yet. This will\ntrigger a null pointer dereference in reweight_entity(), as it will\ntry to access the run queue pointer, which hasn't been set.\n\nBefore the mentioned change the cfs_rq pointer for the task  has been\nset in sched_fork(), which is called much earlier in copy_process(),\nbefore the new task is added to the thread_group.  Now it is done in\nthe sched_post_fork(), which is called after that.  To fix the issue\nthe remove the update_load param from the update_load param() function\nand call reweight_task() only if the task flag doesn't have the\nTASK_NEW flag set.","publishedAt":"2024-08-22T01:32:53.131Z","updatedAt":"2026-05-23T15:21:05.775Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"c85c6fadbef0a3eab41540ea628fa8fe8928c820","status":"affected","lessThan":"8f317cd888059c59e2fa924bf4b0957cfa53f78e","versionType":"git"},{"version":"3869eecf050416a1d19bac60926f6b5d64b0aa58","status":"affected","lessThan":"e0bcd6b5779352aed88f2e538a82a39f1a7715bb","versionType":"git"},{"version":"4ef0c5c6b5ba1f38f0ea1cedad0cad722f00c14a","status":"affected","lessThan":"589a954daab5e18399860b6c8ffaeaf79844eb20","versionType":"git"},{"version":"4ef0c5c6b5ba1f38f0ea1cedad0cad722f00c14a","status":"affected","lessThan":"13765de8148f71fa795e0a6607de37c49ea5915a","versionType":"git"},{"version":"25d40b828fb855ee62e1039c65a666c9afd60786","status":"affected","versionType":"git"},{"version":"5.10.80","status":"affected","lessThan":"5.10.137","versionType":"semver"},{"version":"5.15.3","status":"affected","lessThan":"5.15.27","versionType":"semver"},{"version":"5.14.19","status":"affected","lessThan":"5.15","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/sched/core.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.16","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.16","versionType":"semver"},{"version":"5.10.137","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.27","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.16.13","status":"unaffected","lessThanOrEqual":"5.16.*","versionType":"semver"},{"version":"5.17","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/sched/core.c"]}],"references":["https://git.kernel.org/stable/c/8f317cd888059c59e2fa924bf4b0957cfa53f78e","https://git.kernel.org/stable/c/e0bcd6b5779352aed88f2e538a82a39f1a7715bb","https://git.kernel.org/stable/c/589a954daab5e18399860b6c8ffaeaf79844eb20","https://git.kernel.org/stable/c/13765de8148f71fa795e0a6607de37c49ea5915a"],"weaknesses":[],"ingestedAt":"2026-10-29T20:05:26.763Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2022/48xxx/CVE-2022-48921.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2022-48921","state":"PUBLISHED","datePublished":"2024-08-22T01:32:53.131Z","dateUpdated":"2026-05-23T15:21:05.775Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-08-21T06:06:23.295Z"},"containers":{"cna":{"title":"sched/fair: Fix fault in reweight_entity","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nsched/fair: Fix fault in reweight_entity\n\nSyzbot found a GPF in reweight_entity. This has been bisected to\ncommit 4ef0c5c6b5ba (\"kernel/sched: Fix sched_fork() access an invalid\nsched_task_group\")\n\nThere is a race between sched_post_fork() and setpriority(PRIO_PGRP)\nwithin a thread group that causes a null-ptr-deref in\nreweight_entity() in CFS. The scenario is that the main process spawns\nnumber of new threads, which then call setpriority(PRIO_PGRP, 0, -20),\nwait, and exit.  For each of the new threads the copy_process() gets\ninvoked, which adds the new task_struct and calls sched_post_fork()\nfor it.\n\nIn the above scenario there is a possibility that\nsetpriority(PRIO_PGRP) and set_one_prio() will be called for a thread\nin the group that is just being created by copy_process(), and for\nwhich the sched_post_fork() has not been executed yet. This will\ntrigger a null pointer dereference in reweight_entity(), as it will\ntry to access the run queue pointer, which hasn't been set.\n\nBefore the mentioned change the cfs_rq pointer for the task  has been\nset in sched_fork(), which is called much earlier in copy_process(),\nbefore the new task is added to the thread_group.  Now it is done in\nthe sched_post_fork(), which is called after that.  To fix the issue\nthe remove the update_load param from the update_load param() function\nand call reweight_task() only if the task flag doesn't have the\nTASK_NEW flag set."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"c85c6fadbef0a3eab41540ea628fa8fe8928c820","status":"affected","lessThan":"8f317cd888059c59e2fa924bf4b0957cfa53f78e","versionType":"git"},{"version":"3869eecf050416a1d19bac60926f6b5d64b0aa58","status":"affected","lessThan":"e0bcd6b5779352aed88f2e538a82a39f1a7715bb","versionType":"git"},{"version":"4ef0c5c6b5ba1f38f0ea1cedad0cad722f00c14a","status":"affected","lessThan":"589a954daab5e18399860b6c8ffaeaf79844eb20","versionType":"git"},{"version":"4ef0c5c6b5ba1f38f0ea1cedad0cad722f00c14a","status":"affected","lessThan":"13765de8148f71fa795e0a6607de37c49ea5915a","versionType":"git"},{"version":"25d40b828fb855ee62e1039c65a666c9afd60786","status":"affected","versionType":"git"},{"version":"5.10.80","status":"affected","lessThan":"5.10.137","versionType":"semver"},{"version":"5.15.3","status":"affected","lessThan":"5.15.27","versionType":"semver"},{"version":"5.14.19","status":"affected","lessThan":"5.15","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/sched/core.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.16","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.16","versionType":"semver"},{"version":"5.10.137","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.27","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.16.13","status":"unaffected","lessThanOrEqual":"5.16.*","versionType":"semver"},{"version":"5.17","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/sched/core.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/8f317cd888059c59e2fa924bf4b0957cfa53f78e"},{"url":"https://git.kernel.org/stable/c/e0bcd6b5779352aed88f2e538a82a39f1a7715bb"},{"url":"https://git.kernel.org/stable/c/589a954daab5e18399860b6c8ffaeaf79844eb20"},{"url":"https://git.kernel.org/stable/c/13765de8148f71fa795e0a6607de37c49ea5915a"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-23T15:21:05.775Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.80","versionEndExcluding":"5.10.137"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.3","versionEndExcluding":"5.15.27"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.16","versionEndExcluding":"5.16.13"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.16","versionEndExcluding":"5.17"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.14.19"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2022-48921","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2024-09-10T15:33:28.558357Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-09-12T17:33:01.045Z"}}]}}}