CVE-2026-74594 (GCVE-0-2026-74594)

Vulnerability from cvelistv5 – Published: 2026-08-22 15:31 – Updated: 2026-08-25 05:40
VLAI
Title
sched/psi: Shut down rtpoll_timer in psi_cgroup_free()
Summary
In the Linux kernel, the following vulnerability has been resolved: sched/psi: Shut down rtpoll_timer in psi_cgroup_free() psi_schedule_rtpoll_work() is called locklessly from the scheduler hotpath and can race psi_trigger_destroy() taking down the last rtpoll trigger under rtpoll_trigger_lock: psi_schedule_rtpoll_work() psi_trigger_destroy() rcu_read_lock(); task = rcu_dereference(rtpoll_task); rcu_assign_pointer(rtpoll_task, NULL); timer_delete(&rtpoll_timer); mod_timer(&rtpoll_timer, ...); rcu_read_unlock(); synchronize_rcu(); kthread_stop(task_to_destroy); The group can then be freed with the re-armed timer still pending, and poll_timer_fn() runs on freed memory. 461daba06bdc ("psi: eliminate kthread_worker from psi trigger scheduling mechanism") deleted the timer synchronously after the synchronize_rcu(), which prevented this but raced trigger creation instead: the deletion could cancel the timer that a new trigger set armed during the grace period and, as creation also reinitialized the timer at the time, corrupt it. 8f91efd870ea ("psi: Fix race between psi_trigger_create/destroy") moved the initialization into group_init() and the deletion into the locked section, trading the creation races for the window above. Neither placement in the destruction path works. A pending timer firing while the group is alive is harmless though. poll_timer_fn() just wakes the rtpoll waitqueue and doesn't re-arm itself. Bind the timer to the group's lifetime instead and shut it down in psi_cgroup_free(). Nothing can arm it by then. timer_shutdown_sync() because the timer is never armed again.
Assigner
Linux CNA under the mitre root
CNA scorecard D 53/100 over 6665 records in the last 180 days details
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 6bfcb6178925b1fd28c102e53d403091b8f49396 , < 4addb102154b7cf6e2310ccbe20c3c08619e520d (git)
Affected: 8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83 , < 894a9300d7fb2e2951da92e565ae6de7ddfb0a69 (git)
Affected: 8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83 , < 1e5ca82eee59caca6988f9d6e859786aab8a5fa0 (git)
Affected: 8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83 , < 310b5a537a78c358a4cd244bd767c1a517a05459 (git)
Affected: 8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83 , < 806fcff98c1d7cb3c1dc0015e55ebdbe819e6b08 (git)
Affected: 8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83 , < 8037c5b2b2a447df52542f4d8535895d837bdcbd (git)
Affected: 8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83 , < 611e7821c4f83a671455658797336faecc3a5196 (git)
Affected: 8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83 , < 5457025fa8ca3c0d2732109513de839e3e797190 (git)
Affected: e1e5e263bbe0e6e9c3db36aa48a3c8acf546fa49 (git)
Affected: 979965c33f734a1666af67900408f997ac669c23 (git)
Affected: 5.10.50 , < 5.10.266 (semver)
Affected: 5.12.17 , < 5.13 (semver)
Affected: 5.13.2 , < 5.14 (semver)
guessed Create a notification for this product.
Linux Linux Affected: 5.14
Unaffected: 0 , < 5.14 (semver)
Unaffected: 5.10.266 , ≤ 5.10.* (semver)
Unaffected: 5.15.217 , ≤ 5.15.* (semver)
Unaffected: 6.1.183 , ≤ 6.1.* (semver)
Unaffected: 6.6.152 , ≤ 6.6.* (semver)
Unaffected: 6.12.104 , ≤ 6.12.* (semver)
Unaffected: 6.18.45 , ≤ 6.18.* (semver)
Unaffected: 7.1.9 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "kernel/sched/psi.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "4addb102154b7cf6e2310ccbe20c3c08619e520d",
              "status": "affected",
              "version": "6bfcb6178925b1fd28c102e53d403091b8f49396",
              "versionType": "git"
            },
            {
              "lessThan": "894a9300d7fb2e2951da92e565ae6de7ddfb0a69",
              "status": "affected",
              "version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
              "versionType": "git"
            },
            {
              "lessThan": "1e5ca82eee59caca6988f9d6e859786aab8a5fa0",
              "status": "affected",
              "version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
              "versionType": "git"
            },
            {
              "lessThan": "310b5a537a78c358a4cd244bd767c1a517a05459",
              "status": "affected",
              "version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
              "versionType": "git"
            },
            {
              "lessThan": "806fcff98c1d7cb3c1dc0015e55ebdbe819e6b08",
              "status": "affected",
              "version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
              "versionType": "git"
            },
            {
              "lessThan": "8037c5b2b2a447df52542f4d8535895d837bdcbd",
              "status": "affected",
              "version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
              "versionType": "git"
            },
            {
              "lessThan": "611e7821c4f83a671455658797336faecc3a5196",
              "status": "affected",
              "version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
              "versionType": "git"
            },
            {
              "lessThan": "5457025fa8ca3c0d2732109513de839e3e797190",
              "status": "affected",
              "version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "e1e5e263bbe0e6e9c3db36aa48a3c8acf546fa49",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "979965c33f734a1666af67900408f997ac669c23",
              "versionType": "git"
            },
            {
              "lessThan": "5.10.266",
              "status": "affected",
              "version": "5.10.50",
              "versionType": "semver"
            },
            {
              "lessThan": "5.13",
              "status": "affected",
              "version": "5.12.17",
              "versionType": "semver"
            },
            {
              "lessThan": "5.14",
              "status": "affected",
              "version": "5.13.2",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "kernel/sched/psi.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.14"
            },
            {
              "lessThan": "5.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.266",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.217",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.183",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.152",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.104",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.45",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.9",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.266",
                  "versionStartIncluding": "5.10.50",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.217",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.183",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.152",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.104",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.45",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.9",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.12.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.13.2",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsched/psi: Shut down rtpoll_timer in psi_cgroup_free()\n\npsi_schedule_rtpoll_work() is called locklessly from the scheduler hotpath\nand can race psi_trigger_destroy() taking down the last rtpoll trigger under\nrtpoll_trigger_lock:\n\n  psi_schedule_rtpoll_work()        psi_trigger_destroy()\n\n  rcu_read_lock();\n  task = rcu_dereference(rtpoll_task);\n                                    rcu_assign_pointer(rtpoll_task, NULL);\n                                    timer_delete(\u0026rtpoll_timer);\n  mod_timer(\u0026rtpoll_timer, ...);\n  rcu_read_unlock();\n                                    synchronize_rcu();\n                                    kthread_stop(task_to_destroy);\n\nThe group can then be freed with the re-armed timer still pending, and\npoll_timer_fn() runs on freed memory.\n\n461daba06bdc (\"psi: eliminate kthread_worker from psi trigger scheduling\nmechanism\") deleted the timer synchronously after the synchronize_rcu(),\nwhich prevented this but raced trigger creation instead: the deletion could\ncancel the timer that a new trigger set armed during the grace period and,\nas creation also reinitialized the timer at the time, corrupt it.\n8f91efd870ea (\"psi: Fix race between psi_trigger_create/destroy\") moved the\ninitialization into group_init() and the deletion into the locked section,\ntrading the creation races for the window above.\n\nNeither placement in the destruction path works. A pending timer firing\nwhile the group is alive is harmless though. poll_timer_fn() just wakes the\nrtpoll waitqueue and doesn\u0027t re-arm itself. Bind the timer to the group\u0027s\nlifetime instead and shut it down in psi_cgroup_free(). Nothing can arm it\nby then. timer_shutdown_sync() because the timer is never armed again."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - Reachable only via local kernel interfaces: writing cgroup *.pressure or /proc/pressure/*, closing the trigger fd, and removing the cgroup; the race involves scheduler hotpath callbacks, not any network protocol.\nAC:L - The attacker controls both race participants\u2014closing/destroying the last privileged PSI trigger while concurrently driving psi_schedule_rtpoll_work() via cgroup task scheduling or the psimon worker\u2014so the mod_timer-after-timer_delete window is reliably winnable.\nPR:L - The vulnerable rtpoll path requires CAP_SYS_RESOURCE (non-2s PSI windows); that capability is available to an unprivileged user who creates a user namespace, and cgroup pressure files are writable under delegated cgroup v2 hierarchies in that namespace.\nUI:N - Exploitation is fully self-driven: the attacker creates the trigger, races its teardown against scheduler activity, and deletes the cgroup; no separate victim action such as mounting a filesystem or opening a file is required.\nS:U - Impact is confined to kernel memory corruption and potential local privilege escalation within the same kernel security authority; it does not cross a VM, container runtime, or IOMMU trust boundary.\nC:H - After psi_cgroup_free() the pending rtpoll_timer fires poll_timer_fn() on a freed psi_group, a classic use-after-free that can expose or corrupt adjacent slab contents and be developed into arbitrary kernel memory read primitives.\nI:H - poll_timer_fn() performs atomic_set() on group-\u003ertpoll_wakeup and wake_up_interruptible() on group-\u003ertpoll_wait after the psi_group is freed, giving attacker-influenced writes into a recycled kmem object suitable for control-flow hijacking.\nA:H - Timer execution on freed psi_group memory can cause immediate kernel oops/panic from invalid pointer dereferences or list corruption, and the race can be retriggered for sustained denial of service on shared cloud/container hosts."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-25T05:40:21.246Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/4addb102154b7cf6e2310ccbe20c3c08619e520d"
        },
        {
          "url": "https://git.kernel.org/stable/c/894a9300d7fb2e2951da92e565ae6de7ddfb0a69"
        },
        {
          "url": "https://git.kernel.org/stable/c/1e5ca82eee59caca6988f9d6e859786aab8a5fa0"
        },
        {
          "url": "https://git.kernel.org/stable/c/310b5a537a78c358a4cd244bd767c1a517a05459"
        },
        {
          "url": "https://git.kernel.org/stable/c/806fcff98c1d7cb3c1dc0015e55ebdbe819e6b08"
        },
        {
          "url": "https://git.kernel.org/stable/c/8037c5b2b2a447df52542f4d8535895d837bdcbd"
        },
        {
          "url": "https://git.kernel.org/stable/c/611e7821c4f83a671455658797336faecc3a5196"
        },
        {
          "url": "https://git.kernel.org/stable/c/5457025fa8ca3c0d2732109513de839e3e797190"
        }
      ],
      "title": "sched/psi: Shut down rtpoll_timer in psi_cgroup_free()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74594",
    "datePublished": "2026-08-22T15:31:44.894Z",
    "dateReserved": "2026-08-15T05:44:03.919Z",
    "dateUpdated": "2026-08-25T05:40:21.246Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74594",
      "date": "2026-10-14",
      "epss": "0.00129",
      "percentile": "0.02267"
    },
    "microsoft_vex": {
      "current_release_date": "2026-09-25T02:19:10.000Z",
      "cve": "CVE-2026-74594",
      "id": "msrc_CVE-2026-74594",
      "initial_release_date": "2026-08-24T01:10:54.000Z",
      "product_status:fixed": "1",
      "product_status:known_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "sched/psi: Shut down rtpoll_timer in psi_cgroup_free()",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-74594.json",
      "version": "4"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "kernel/sched/psi.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "4addb102154b7cf6e2310ccbe20c3c08619e520d",
                    "status": "affected",
                    "version": "6bfcb6178925b1fd28c102e53d403091b8f49396",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "894a9300d7fb2e2951da92e565ae6de7ddfb0a69",
                    "status": "affected",
                    "version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "1e5ca82eee59caca6988f9d6e859786aab8a5fa0",
                    "status": "affected",
                    "version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "310b5a537a78c358a4cd244bd767c1a517a05459",
                    "status": "affected",
                    "version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "806fcff98c1d7cb3c1dc0015e55ebdbe819e6b08",
                    "status": "affected",
                    "version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "8037c5b2b2a447df52542f4d8535895d837bdcbd",
                    "status": "affected",
                    "version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "611e7821c4f83a671455658797336faecc3a5196",
                    "status": "affected",
                    "version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "5457025fa8ca3c0d2732109513de839e3e797190",
                    "status": "affected",
                    "version": "8f91efd870ea5d8bc10b0fcc9740db51cd4c0c83",
                    "versionType": "git"
                  },
                  {
                    "status": "affected",
                    "version": "e1e5e263bbe0e6e9c3db36aa48a3c8acf546fa49",
                    "versionType": "git"
                  },
                  {
                    "status": "affected",
                    "version": "979965c33f734a1666af67900408f997ac669c23",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "5.10.266",
                    "status": "affected",
                    "version": "5.10.50",
                    "versionType": "semver"
                  },
                  {
                    "lessThan": "5.13",
                    "status": "affected",
                    "version": "5.12.17",
                    "versionType": "semver"
                  },
                  {
                    "lessThan": "5.14",
                    "status": "affected",
                    "version": "5.13.2",
                    "versionType": "semver"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "kernel/sched/psi.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "5.14"
                  },
                  {
                    "lessThan": "5.14",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.10.*",
                    "status": "unaffected",
                    "version": "5.10.266",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.15.*",
                    "status": "unaffected",
                    "version": "5.15.217",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.183",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.152",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.104",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.45",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.9",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.2",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsched/psi: Shut down rtpoll_timer in psi_cgroup_free()\n\npsi_schedule_rtpoll_work() is called locklessly from the scheduler hotpath\nand can race psi_trigger_destroy() taking down the last rtpoll trigger under\nrtpoll_trigger_lock:\n\n  psi_schedule_rtpoll_work()        psi_trigger_destroy()\n\n  rcu_read_lock();\n  task = rcu_dereference(rtpoll_task);\n                                    rcu_assign_pointer(rtpoll_task, NULL);\n                                    timer_delete(\u0026rtpoll_timer);\n  mod_timer(\u0026rtpoll_timer, ...);\n  rcu_read_unlock();\n                                    synchronize_rcu();\n                                    kthread_stop(task_to_destroy);\n\nThe group can then be freed with the re-armed timer still pending, and\npoll_timer_fn() runs on freed memory.\n\n461daba06bdc (\"psi: eliminate kthread_worker from psi trigger scheduling\nmechanism\") deleted the timer synchronously after the synchronize_rcu(),\nwhich prevented this but raced trigger creation instead: the deletion could\ncancel the timer that a new trigger set armed during the grace period and,\nas creation also reinitialized the timer at the time, corrupt it.\n8f91efd870ea (\"psi: Fix race between psi_trigger_create/destroy\") moved the\ninitialization into group_init() and the deletion into the locked section,\ntrading the creation races for the window above.\n\nNeither placement in the destruction path works. A pending timer firing\nwhile the group is alive is harmless though. poll_timer_fn() just wakes the\nrtpoll waitqueue and doesn\u0027t re-arm itself. Bind the timer to the group\u0027s\nlifetime instead and shut it down in psi_cgroup_free(). Nothing can arm it\nby then. timer_shutdown_sync() because the timer is never armed again."
          },
          {
            "lang": "es",
            "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nsched/psi: Apagar rtpoll_timer en psi_cgroup_free()\n\npsi_schedule_rtpoll_work() se llama sin bloqueo desde la ruta cr\u00edtica del planificador y puede competir con psi_trigger_destroy() al eliminar el \u00faltimo disparador rtpoll bajo rtpoll_trigger_lock:\n\n  psi_schedule_rtpoll_work()        psi_trigger_destroy()\n\n  rcu_read_lock();\n  task = rcu_dereference(rtpoll_task);\n                                    rcu_assign_pointer(rtpoll_task, NULL);\n                                    timer_delete(\u0026rtpoll_timer);\n  mod_timer(\u0026rtpoll_timer, ...);\n  rcu_read_unlock();\n                                    synchronize_rcu();\n                                    kthread_stop(task_to_destroy);\n\nEl grupo puede entonces ser liberado con el temporizador rearreglado a\u00fan pendiente, y poll_timer_fn() se ejecuta en memoria liberada.\n\n461daba06bdc (\u0027psi: eliminar kthread_worker del mecanismo de planificaci\u00f3n de disparadores psi\u0027) elimin\u00f3 el temporizador sincr\u00f3nicamente despu\u00e9s del synchronize_rcu(), lo que evit\u00f3 esto pero en su lugar compiti\u00f3 con la creaci\u00f3n del disparador: la eliminaci\u00f3n podr\u00eda cancelar el temporizador que un nuevo conjunto de disparadores arm\u00f3 durante el per\u00edodo de gracia y, como la creaci\u00f3n tambi\u00e9n reinicializ\u00f3 el temporizador en ese momento, corromperlo.\n8f91efd870ea (\u0027psi: Corregir condici\u00f3n de carrera entre psi_trigger_create/destroy\u0027) movi\u00f3 la inicializaci\u00f3n a group_init() y la eliminaci\u00f3n a la secci\u00f3n bloqueada, intercambiando las condiciones de carrera de creaci\u00f3n por la ventana anterior.\n\nNinguna de las ubicaciones en la ruta de destrucci\u00f3n funciona. Un temporizador pendiente que se dispara mientras el grupo est\u00e1 activo es inofensivo, sin embargo. poll_timer_fn() solo despierta la cola de espera rtpoll y no se rearma a s\u00ed mismo. Enlazar el temporizador a la vida \u00fatil del grupo en su lugar y apagarlo en psi_cgroup_free(). Nada puede armarlo para entonces. timer_shutdown_sync() porque el temporizador nunca se vuelve a armar."
          }
        ],
        "id": "CVE-2026-74594",
        "lastModified": "2026-10-14T13:10:00.187",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-08-22T16:16:31.680",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/1e5ca82eee59caca6988f9d6e859786aab8a5fa0"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/310b5a537a78c358a4cd244bd767c1a517a05459"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/4addb102154b7cf6e2310ccbe20c3c08619e520d"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/5457025fa8ca3c0d2732109513de839e3e797190"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/611e7821c4f83a671455658797336faecc3a5196"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/8037c5b2b2a447df52542f4d8535895d837bdcbd"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/806fcff98c1d7cb3c1dc0015e55ebdbe819e6b08"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/894a9300d7fb2e2951da92e565ae6de7ddfb0a69"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-25T08:49:54+00:00",
      "cve": "CVE-2026-74594",
      "id": "CVE-2026-74594",
      "initial_release_date": "2026-08-22T00:00:00+00:00",
      "product_status:known_affected": "48",
      "product_status:known_not_affected": "226",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: sched/psi: Shut down rtpoll_timer in psi_cgroup_free()",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74594.json",
      "version": "3"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline

Sightings and recorded dates, grouped by day · UTC

JSON
Events included in the timeline

Loading timeline…


    Loading…

    Loading…

    Loading…

    Related by attack behaviour

    Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.