November 13, 2026 Follow Egret
CVE-2025-38352 · CVE record: PUBLISHED

posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del()

Linux Linux

In the Linux kernel, the following vulnerability has been resolved: posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del() If an exiting non-autoreaping task has already passed exit_notify() and calls handle_posix_cpu_timers() from IRQ, it can be reaped by its parent or debugger right after unlock_task_sighand(). If a concurrent posix_cpu_timer_del() runs at that moment, it won't be able to detect timer->it.cpu.firing != 0: cpu_timer_task_rcu() and/or lock_task_sighand() will fail. Add the tsk->exit_state check into run_posix_cpu_timers() to fix this. This fix is not needed if CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y, because exit_task_work() is called before exit_notify(). But the check still makes sense, task_work_add(&tsk->posix_cputimers_work.work) will fail anyway in this case.

Exploitation evidence

Known exploited · CISA KEV listed

Added 2025-09-04. Ransomware campaign use: Unknown.

CISA required action: Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.

CISA due date: 2025-09-25. This is the catalog’s deadline, not an assessment of your organization’s exposure.

KEV checked 13 Nov 2026, 00:20 Jerusalem · Original catalog ↗

Reported products and versions

Linux / Linux

Default status: unaffected

  • affected: 0bdd2ed4138ec04e09b4f8165981efc99e439f55 to < 78a4b8e3795b31dae58762bc091bb0f4f74a2200 (git)
  • affected: 0bdd2ed4138ec04e09b4f8165981efc99e439f55 to < c076635b3a42771ace7d276de8dc3bc76ee2ba1b (git)
  • affected: 0bdd2ed4138ec04e09b4f8165981efc99e439f55 to < 2f3daa04a9328220de46f0d5c919a6c0073a9f0b (git)
  • affected: 0bdd2ed4138ec04e09b4f8165981efc99e439f55 to < 764a7a5dfda23f69919441f2eac2a83e7db6e5bb (git)
  • affected: 0bdd2ed4138ec04e09b4f8165981efc99e439f55 to < 2c72fe18cc5f9f1750f5bc148cf1c94c29e106ff (git)
  • affected: 0bdd2ed4138ec04e09b4f8165981efc99e439f55 to < c29d5318708e67ac13c1b6fc1007d179fb65b4d7 (git)
  • affected: 0bdd2ed4138ec04e09b4f8165981efc99e439f55 to < 460188bc042a3f40f72d34b9f7fc6ee66b0b757b (git)
  • affected: 0bdd2ed4138ec04e09b4f8165981efc99e439f55 to < f90fff1e152dedf52b932240ebbd670d83330eca (git)

Linux / Linux

Default status: affected

  • affected: 2.6.36
  • unaffected: 0 to < 2.6.36 (semver)
  • unaffected: 5.4.295 to ≤ 5.4.* (semver)
  • unaffected: 5.10.239 to ≤ 5.10.* (semver)
  • unaffected: 5.15.186 to ≤ 5.15.* (semver)
  • unaffected: 6.1.142 to ≤ 6.1.* (semver)
  • unaffected: 6.6.94 to ≤ 6.6.* (semver)
  • unaffected: 6.12.34 to ≤ 6.12.* (semver)
  • unaffected: 6.15.3 to ≤ 6.15.* (semver)
  • unaffected: 6.16 to ≤ * (original_commit_for_fix)

Fixes and workarounds

No explicit solution text in the downloaded CVE record. Consult the vendor advisory; unaffected version ranges are shown above as reported, not inferred as a patch recommendation.

Sources and related reporting

CVE Program record ↗ · Download tracked evidence as JSON

Observed change timeline

History begins when Egret first downloads each source. It is not the complete upstream CVE history.

12 Nov 2026, 18:20 Jerusalem · EPSS observation updated

Stored EPSS snapshot at this observation.

{
  "date": "2026-11-12",
  "epss": 0.01357,
  "percentile": 0.72065
}
10 Nov 2026, 18:20 Jerusalem · EPSS observation updated

Stored EPSS snapshot at this observation.

{
  "date": "2026-11-10",
  "epss": 0.01357,
  "percentile": 0.71896
}
09 Nov 2026, 18:20 Jerusalem · EPSS observation updated

Stored EPSS snapshot at this observation.

{
  "date": "2026-11-09",
  "epss": 0.01357,
  "percentile": 0.71864
}
08 Nov 2026, 18:20 Jerusalem · EPSS observation updated

Stored EPSS snapshot at this observation.

{
  "date": "2026-11-08",
  "epss": 0.01357,
  "percentile": 0.7185
}
07 Nov 2026, 18:20 Jerusalem · EPSS observation updated

Stored EPSS snapshot at this observation.

{
  "date": "2026-11-07",
  "epss": 0.01357,
  "percentile": 0.71829
}
06 Nov 2026, 18:20 Jerusalem · EPSS observation updated

Stored EPSS snapshot at this observation.

{
  "date": "2026-11-06",
  "epss": 0.01357,
  "percentile": 0.71785
}
06 Nov 2026, 06:20 Jerusalem · EPSS observation updated

Stored EPSS snapshot at this observation.

{
  "date": "2026-11-05",
  "epss": 0.01357,
  "percentile": 0.71762
}
04 Nov 2026, 18:20 Jerusalem · EPSS observation updated

Stored EPSS snapshot at this observation.

{
  "date": "2026-11-04",
  "epss": 0.01357,
  "percentile": 0.71742
}
03 Nov 2026, 18:20 Jerusalem · EPSS observation updated

Stored EPSS snapshot at this observation.

{
  "date": "2026-11-03",
  "epss": 0.01357,
  "percentile": 0.71696
}
03 Nov 2026, 18:20 Jerusalem · CVE Program record changed

Stored CNA snapshot at this observation.

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2025-38352",
                "options": [
                  {
                    "Exploitation": "active"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2025-09-05T03:55:31.566379Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          },
          {
            "other": {
              "content": {
                "dateAdded": "2025-09-04",
                "reference": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2025-38352"
              },
              "type": "kev"
            }
          }
        ],
        "problemTypes": [
          {
            "descriptions": [
              {
                "cweId": "CWE-367",
                "description": "CWE-367 Time-of-check Time-of-use (TOCTOU) Race Condition",
                "lang": "en",
                "type": "CWE"
              }
            ]
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-09-08T15:32:28.302Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "references": [
          {
            "tags": [
              "government-resource"
            ],
            "url": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2025-38352"
          },
          {
            "tags": [
              "exploit"
            ],
            "url": "https://github.com/farazsth98/chronomaly"
          }
        ],
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2025-11-03T17:37:02.965Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html"
          },
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "kernel/time/posix-cpu-timers.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "78a4b8e3795b31dae58762bc091bb0f4f74a2200",
              "status": "affected",
              "version": "0bdd2ed4138ec04e09b4f8165981efc99e439f55",
              "versionType": "git"
            },
            {
              "lessThan": "c076635b3a42771ace7d276de8dc3bc76ee2ba1b",
              "status": "affected",
              "version": "0bdd2ed4138ec04e09b4f8165981efc99e439f55",
              "versionType": "git"
            },
            {
              "lessThan": "2f3daa04a9328220de46f0d5c919a6c0073a9f0b",
              "status": "affected",
              "version": "0bdd2ed4138ec04e09b4f8165981efc99e439f55",
              "versionType": "git"
            },
            {
              "lessThan": "764a7a5dfda23f69919441f2eac2a83e7db6e5bb",
              "status": "affected",
              "version": "0bdd2ed4138ec04e09b4f8165981efc99e439f55",
              "versionType": "git"
            },
            {
              "lessThan": "2c72fe18cc5f9f1750f5bc148cf1c94c29e106ff",
              "status": "affected",
              "version": "0bdd2ed4138ec04e09b4f8165981efc99e439f55",
              "versionType": "git"
            },
            {
              "lessThan": "c29d5318708e67ac13c1b6fc1007d179fb65b4d7",
              "status": "affected",
              "version": "0bdd2ed4138ec04e09b4f8165981efc99e439f55",
              "versionType": "git"
            },
            {
              "lessThan": "460188bc042a3f40f72d34b9f7fc6ee66b0b757b",
              "status": "affected",
              "version": "0bdd2ed4138ec04e09b4f8165981efc99e439f55",
              "versionType": "git"
            },
            {
              "lessThan": "f90fff1e152dedf52b932240ebbd670d83330eca",
              "status": "affected",
              "version": "0bdd2ed4138ec04e09b4f8165981efc99e439f55",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "kernel/time/posix-cpu-timers.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "2.6.36"
            },
            {
              "lessThan": "2.6.36",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.4.*",
              "status": "unaffected",
              "version": "5.4.295",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.239",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.186",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.142",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.94",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.34",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.15.*",
              "status": "unaffected",
              "version": "6.15.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.16",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.4.295",
                  "versionStartIncluding": "2.6.36",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.239",
                  "versionStartIncluding": "2.6.36",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.186",
                  "versionStartIncluding": "2.6.36",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.142",
                  "versionStartIncluding": "2.6.36",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.94",
                  "versionStartIncluding": "2.6.36",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.34",
                  "versionStartIncluding": "2.6.36",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15.3",
                  "versionStartIncluding": "2.6.36",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.16",
                  "versionStartIncluding": "2.6.36",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nposix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del()\n\nIf an exiting non-autoreaping task has already passed exit_notify() and\ncalls handle_posix_cpu_timers() from IRQ, it can be reaped by its parent\nor debugger right after unlock_task_sighand().\n\nIf a concurrent posix_cpu_timer_del() runs at that moment, it won't be\nable to detect timer->it.cpu.firing != 0: cpu_timer_task_rcu() and/or\nlock_task_sighand() will fail.\n\nAdd the tsk->exit_state check into run_posix_cpu_timers() to fix this.\n\nThis fix is not needed if CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y, because\nexit_task_work() is called before exit_notify(). But the check still\nmakes sense, task_work_add(&tsk->posix_cputimers_work.work) will fail\nanyway in this case."
        }
      ],
      "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 - The vulnerability is reached purely through local syscalls — `timer_create`/`timer_settime`/`timer_delete` (or `clock_nanosleep`) plus `ptrace`/`waitpid` to control task reaping — with the trigger arriving via the local timer tick. There is no network-facing path into posix-cpu-timers.\nAC:L - The attacker controls both sides of the race: it arms the CPU timer expiry, chooses the precise moment of `release_task()` by calling `waitpid()` from its own parent/tracer, and issues the concurrent `timer_delete()` from a sibling thread — retryable in a tight loop and widenable by queueing up to 20 timers on the firing list. Real-world exploitation of this exact bug confirms it is reliably winnable.\nPR:L - No capability or permission check exists anywhere on the path — `validate_clock_permissions()`/`pid_for_clock()` gate only on thread-group/pid existence, and `grep` for `capable`/`CAP_` in both posix-timers files returns nothing. Any unprivileged local user, including a seccomp-confined Android app UID, can reach it.\nUI:N - The attacker's own processes and threads perform every step — creating the timer, exiting the traced thread, reaping it, and deleting the timer. No victim action of any kind is needed.\nS:U - The use-after-free corrupts kernel heap objects and escalates within the kernel's own security authority, which is standard kernel privilege escalation. No hypervisor, IOMMU, or other security-authority boundary is crossed.\nC:H - The freed `struct sigqueue` is linked into the signal pending list by `send_sigqueue()` and later copied out to userspace through `dequeue_signal()`/`rt_sigtimedwait()`, disclosing whatever now occupies the reclaimed slab object — an effectively arbitrary kernel-memory read. The `do_cpu_nanosleep()` variant additionally exposes reclaimed kernel stack.\nI:H - `send_sigqueue()` writes into the freed object (`q->info.si_overrun++`) and performs a `list_add_tail()` linked-list insertion on attacker-resprayable memory, followed by a double free on dequeue — a classic controlled-write primitive leading to full privilege escalation, as demonstrated by in-the-wild exploitation of this flaw.\nA:H - Even without successful exploitation the race causes `BUG_ON(!(q->flags & SIGQUEUE_PREALLOC))` in `send_sigqueue()`, `WARN_ON_ONCE()` in the delete path, list corruption, and a double free — any of which oops or panic the kernel. Spinning the race is trivially repeatable as a denial of service."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:01:20.234Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/78a4b8e3795b31dae58762bc091bb0f4f74a2200"
        },
        {
          "url": "https://git.kernel.org/stable/c/c076635b3a42771ace7d276de8dc3bc76ee2ba1b"
        },
        {
          "url": "https://git.kernel.org/stable/c/2f3daa04a9328220de46f0d5c919a6c0073a9f0b"
        },
        {
          "url": "https://git.kernel.org/stable/c/764a7a5dfda23f69919441f2eac2a83e7db6e5bb"
        },
        {
          "url": "https://git.kernel.org/stable/c/2c72fe18cc5f9f1750f5bc148cf1c94c29e106ff"
        },
        {
          "url": "https://git.kernel.org/stable/c/c29d5318708e67ac13c1b6fc1007d179fb65b4d7"
        },
        {
          "url": "https://git.kernel.org/stable/c/460188bc042a3f40f72d34b9f7fc6ee66b0b757b"
        },
        {
          "url": "https://git.kernel.org/stable/c/f90fff1e152dedf52b932240ebbd670d83330eca"
        }
      ],
      "title": "posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-38352",
    "datePublished": "2025-07-22T08:04:25.277Z",
    "dateReserved": "2025-04-16T04:51:24.006Z",
    "dateUpdated": "2026-09-08T15:32:28.302Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}
03 Nov 2026, 02:22 Jerusalem · EPSS observation updated

Stored EPSS snapshot at this observation.

{
  "date": "2026-11-02",
  "epss": 0.01357,
  "percentile": 0.71663
}
03 Nov 2026, 02:22 Jerusalem · CISA KEV status changed

Stored KEV snapshot at this observation.

{
  "cveID": "CVE-2025-38352",
  "cwes": [
    "CWE-367"
  ],
  "dateAdded": "2025-09-04",
  "dueDate": "2025-09-25",
  "forensicTriage": "No",
  "knownRansomwareCampaignUse": "Unknown",
  "notes": "This vulnerability affects a common open-source component, third-party library, or a protocol used by different products. Please check with specific vendors for information on patching status. For more information, please see: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=2c72fe18cc5f9f1750f5bc148cf1c94c29e106ff ; https://source.android.com/docs/security/bulletin/2025-09-01 ; https://nvd.nist.gov/vuln/detail/CVE-2025-38352",
  "product": "Kernel",
  "requiredAction": "Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.",
  "shortDescription": "Linux kernel contains a time-of-check time-of-use (TOCTOU) race condition vulnerability that has a high impact on confidentiality, integrity, and availability.",
  "vendorProject": "Linux",
  "vulnerabilityName": "Linux Kernel Time-of-Check Time-of-Use (TOCTOU) Race Condition Vulnerability"
}
Egret — Back to top Egret