CVE-2022-50095 (GCVE-0-2022-50095)

Vulnerability from cvelistv5 – Published: 2025-06-18 11:02 – Updated: 2026-08-05 08:57
VLAI
Title
posix-cpu-timers: Cleanup CPU timers before freeing them during exec
Summary
In the Linux kernel, the following vulnerability has been resolved: posix-cpu-timers: Cleanup CPU timers before freeing them during exec Commit 55e8c8eb2c7b ("posix-cpu-timers: Store a reference to a pid not a task") started looking up tasks by PID when deleting a CPU timer. When a non-leader thread calls execve, it will switch PIDs with the leader process. Then, as it calls exit_itimers, posix_cpu_timer_del cannot find the task because the timer still points out to the old PID. That means that armed timers won't be disarmed, that is, they won't be removed from the timerqueue_list. exit_itimers will still release their memory, and when that list is later processed, it leads to a use-after-free. Clean up the timers from the de-threaded task before freeing them. This prevents a reported use-after-free.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 , < 541840859ace9c2ccebc32fa9e376c7bd3def490 (git)
Affected: 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 , < 9e255ed238fc67058df87b0388ad6d4b2ef3a2bd (git)
Affected: 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 , < e8cb6e8fd9890780f1bfcf5592889e1b879e779c (git)
Affected: 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 , < b2fc1723eb65abb83e00d5f011de670296af0b28 (git)
Affected: 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 , < e362359ace6f87c201531872486ff295df306d13 (git)
Create a notification for this product.
Linux Linux Affected: 5.7
Unaffected: 0 , < 5.7 (semver)
Unaffected: 5.10.137 , ≤ 5.10.* (semver)
Unaffected: 5.15.61 , ≤ 5.15.* (semver)
Unaffected: 5.18.18 , ≤ 5.18.* (semver)
Unaffected: 5.19.2 , ≤ 5.19.* (semver)
Unaffected: 6.0 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/exec.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "541840859ace9c2ccebc32fa9e376c7bd3def490",
              "status": "affected",
              "version": "55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59",
              "versionType": "git"
            },
            {
              "lessThan": "9e255ed238fc67058df87b0388ad6d4b2ef3a2bd",
              "status": "affected",
              "version": "55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59",
              "versionType": "git"
            },
            {
              "lessThan": "e8cb6e8fd9890780f1bfcf5592889e1b879e779c",
              "status": "affected",
              "version": "55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59",
              "versionType": "git"
            },
            {
              "lessThan": "b2fc1723eb65abb83e00d5f011de670296af0b28",
              "status": "affected",
              "version": "55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59",
              "versionType": "git"
            },
            {
              "lessThan": "e362359ace6f87c201531872486ff295df306d13",
              "status": "affected",
              "version": "55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/exec.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.7"
            },
            {
              "lessThan": "5.7",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.137",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.61",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.18.*",
              "status": "unaffected",
              "version": "5.18.18",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.19.*",
              "status": "unaffected",
              "version": "5.19.2",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.0",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.137",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.61",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.18.18",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.19.2",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.0",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nposix-cpu-timers: Cleanup CPU timers before freeing them during exec\n\nCommit 55e8c8eb2c7b (\"posix-cpu-timers: Store a reference to a pid not a\ntask\") started looking up tasks by PID when deleting a CPU timer.\n\nWhen a non-leader thread calls execve, it will switch PIDs with the leader\nprocess. Then, as it calls exit_itimers, posix_cpu_timer_del cannot find\nthe task because the timer still points out to the old PID.\n\nThat means that armed timers won\u0027t be disarmed, that is, they won\u0027t be\nremoved from the timerqueue_list. exit_itimers will still release their\nmemory, and when that list is later processed, it leads to a\nuse-after-free.\n\nClean up the timers from the de-threaded task before freeing them. This\nprevents a reported use-after-free."
        }
      ],
      "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 - Exploitation requires local syscalls (clone/pthread_create, timer_create/timer_settime with CLOCK_THREAD_CPUTIME_ID, and execve from a non-leader thread); there is no network or adjacent-vector path into this code.\nAC:L - The bug is a deterministic logic error on the non-leader exec path after PID exchange, not a race against conditions the attacker cannot control; the attacker reliably creates, arms, and triggers the dangling timerqueue entry.\nPR:L - An unprivileged local user can create threads, create and arm self-targeted POSIX CPU timers, and call execve; no capabilities or init-namespace root are required.\nUI:N - The attacker performs all steps themselves; no separate victim action is needed to reach or trigger the use-after-free.\nS:U - Impact is confined to the local kernel/OS authority (standard kernel memory corruption / privilege escalation); it does not cross a VM, IOMMU, or other security boundary.\nC:H - The freed k_itimer remains linked in the per-thread CPU timerqueue and is later processed by run_posix_cpu_timers, yielding a kernel UAF that can be leveraged for arbitrary memory disclosure.\nI:H - The same UAF of a slab-allocated k_itimer enables heap reuse and write/control-flow primitives consistent with kernel timer-object corruption.\nA:H - Processing the dangling timerqueue entry after free causes kernel oops/panic or otherwise crashes the system even when not fully exploited for code execution."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:57:22.791Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/541840859ace9c2ccebc32fa9e376c7bd3def490"
        },
        {
          "url": "https://git.kernel.org/stable/c/9e255ed238fc67058df87b0388ad6d4b2ef3a2bd"
        },
        {
          "url": "https://git.kernel.org/stable/c/e8cb6e8fd9890780f1bfcf5592889e1b879e779c"
        },
        {
          "url": "https://git.kernel.org/stable/c/b2fc1723eb65abb83e00d5f011de670296af0b28"
        },
        {
          "url": "https://git.kernel.org/stable/c/e362359ace6f87c201531872486ff295df306d13"
        }
      ],
      "title": "posix-cpu-timers: Cleanup CPU timers before freeing them during exec",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-50095",
    "datePublished": "2025-06-18T11:02:33.221Z",
    "dateReserved": "2025-06-18T10:57:27.411Z",
    "dateUpdated": "2026-08-05T08:57:22.791Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2022-50095",
      "date": "2026-08-05",
      "epss": "0.00213",
      "percentile": "0.11626"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2022-50095\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-06-18T11:15:38.740\",\"lastModified\":\"2026-06-17T05:22:45.063\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nposix-cpu-timers: Cleanup CPU timers before freeing them during exec\\n\\nCommit 55e8c8eb2c7b (\\\"posix-cpu-timers: Store a reference to a pid not a\\ntask\\\") started looking up tasks by PID when deleting a CPU timer.\\n\\nWhen a non-leader thread calls execve, it will switch PIDs with the leader\\nprocess. Then, as it calls exit_itimers, posix_cpu_timer_del cannot find\\nthe task because the timer still points out to the old PID.\\n\\nThat means that armed timers won\u0027t be disarmed, that is, they won\u0027t be\\nremoved from the timerqueue_list. exit_itimers will still release their\\nmemory, and when that list is later processed, it leads to a\\nuse-after-free.\\n\\nClean up the timers from the de-threaded task before freeing them. This\\nprevents a reported use-after-free.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: posix-cpu-timers: Limpiar los temporizadores de CPU antes de liberarlos durante la ejecuci\u00f3n. el commit 55e8c8eb2c7b (\\\"posix-cpu-timers: Almacenar una referencia a un PID, no a una tarea\\\") comenz\u00f3 a buscar tareas por PID al eliminar un temporizador de CPU. Cuando un subproceso no l\u00edder llama a execve, intercambia los PID con el proceso l\u00edder. Luego, al llamar a exit_itimers, posix_cpu_timer_del no puede encontrar la tarea porque el temporizador a\u00fan apunta al PID anterior. Esto significa que los temporizadores armados no se desarmar\u00e1n; es decir, no se eliminar\u00e1n de timerqueue_list. exit_itimers liberar\u00e1 su memoria y, cuando esa lista se procese posteriormente, se generar\u00e1 un Use-After-Free. Limpie los temporizadores de la tarea desprovista de subprocesos antes de liberarlos. Esto evita un Use-After-Free reportado.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"fs/exec.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59\",\"lessThan\":\"541840859ace9c2ccebc32fa9e376c7bd3def490\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59\",\"lessThan\":\"9e255ed238fc67058df87b0388ad6d4b2ef3a2bd\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59\",\"lessThan\":\"e8cb6e8fd9890780f1bfcf5592889e1b879e779c\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59\",\"lessThan\":\"b2fc1723eb65abb83e00d5f011de670296af0b28\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59\",\"lessThan\":\"e362359ace6f87c201531872486ff295df306d13\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"fs/exec.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.7\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.7\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.10.137\",\"lessThanOrEqual\":\"5.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.61\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.18.18\",\"lessThanOrEqual\":\"5.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.19.2\",\"lessThanOrEqual\":\"5.19.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.0\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-416\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.7\",\"versionEndExcluding\":\"5.10.137\",\"matchCriteriaId\":\"674AABE4-BC3E-4530-9717-5DFE7AB70A3F\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.11\",\"versionEndExcluding\":\"5.15.61\",\"matchCriteriaId\":\"51861563-7F40-460F-82CD-2D3FBDAD6618\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.16\",\"versionEndExcluding\":\"5.18.18\",\"matchCriteriaId\":\"5B42E453-8837-49D0-A5EF-03F818A6DC11\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.19\",\"versionEndExcluding\":\"5.19.2\",\"matchCriteriaId\":\"A1A2A5A5-4598-4D7E-BA07-4660398D6C8F\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/541840859ace9c2ccebc32fa9e376c7bd3def490\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/9e255ed238fc67058df87b0388ad6d4b2ef3a2bd\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/b2fc1723eb65abb83e00d5f011de670296af0b28\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/e362359ace6f87c201531872486ff295df306d13\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/e8cb6e8fd9890780f1bfcf5592889e1b879e779c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-04T19:40:16+00:00",
      "cve": "CVE-2022-50095",
      "id": "CVE-2022-50095",
      "initial_release_date": "2022-01-01T00:00:00+00:00",
      "product_status:fixed": "332",
      "product_status:known_affected": "36",
      "product_status:known_not_affected": "152",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: posix-cpu-timers: Cleanup CPU timers before freeing them during exec",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2022/cve-2022-50095.json",
      "version": "3"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

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.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…