CVE-2026-99233 (GCVE-0-2026-99233)

Vulnerability from cvelistv5 – Published: 2026-11-02 16:06 – Updated: 2026-11-03 19:13
VLAI
Title
tracing/histograms: Verify event_call identity when updating synth_event refcount
Summary
In the Linux kernel, the following vulnerability has been resolved: tracing/histograms: Verify event_call identity when updating synth_event refcount In event_hist_trigger_parse() and hist_unreg_all(), the histogram registration and unregistration paths look up find_synth_event() using trace_event_name(file->event_call) and adjust se->ref if a match is found. Because find_synth_event() only compares the event basename, registering or removing a histogram on a non-synthetic trace event whose basename matches a synthetic event erroneously modifies the synthetic event's reference count. If a histogram is registered on the non-synthetic event before the synthetic event is created and removed afterwards, se->ref is decremented without a matching increment, allowing the synthetic event to be freed while an active histogram action still holds a pointer to it. Introduce find_synth_event_call() to verify that &se->call matches file->event_call before adjusting se->ref.
Assigner
Linux CNA under the mitre root
CNA scorecard D 53/100 over 6637 records in the last 180 days details
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 4b147936fa509650beaf638b331573c23ba4d609 , < 381f543ed35c434d5b707369aa5dcd69ecf440af (git)
Affected: 4b147936fa509650beaf638b331573c23ba4d609 , < 4472579bd1c83708b6fe623c870cdf728e947205 (git)
Affected: 4b147936fa509650beaf638b331573c23ba4d609 , < 23b4106e8b35823acc79e206c7745f55b9cfd78b (git)
Affected: 4b147936fa509650beaf638b331573c23ba4d609 , < 06e816bed499fe47f39f12044382cc5d064485fb (git)
Affected: 4b147936fa509650beaf638b331573c23ba4d609 , < 5597bb8db6855fcb97a67196d227fea359bcd81c (git)
Affected: 4b147936fa509650beaf638b331573c23ba4d609 , < cf4e31d5da80fae4c9cdbe7af55b7c3ad213f0e4 (git)
Affected: 4b147936fa509650beaf638b331573c23ba4d609 , < 3403d9bb27ebc3572bd048620746b4414e073bf9 (git)
guessed Create a notification for this product.
Linux Linux Affected: 4.17
Unaffected: 0 , < 4.17 (semver)
Unaffected: 6.1.191 , ≤ 6.1.* (semver)
Unaffected: 6.6.161 , ≤ 6.6.* (semver)
Unaffected: 6.12.115 , ≤ 6.12.* (semver)
Unaffected: 6.18.60 , ≤ 6.18.* (semver)
Unaffected: 7.2.14 , ≤ 7.2.* (semver)
Unaffected: 7.3.1 , ≤ 7.3.* (semver)
Unaffected: 7.4-rc1 , ≤ * (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/trace/trace_events_hist.c",
            "kernel/trace/trace_events_synth.c",
            "kernel/trace/trace_synth.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "381f543ed35c434d5b707369aa5dcd69ecf440af",
              "status": "affected",
              "version": "4b147936fa509650beaf638b331573c23ba4d609",
              "versionType": "git"
            },
            {
              "lessThan": "4472579bd1c83708b6fe623c870cdf728e947205",
              "status": "affected",
              "version": "4b147936fa509650beaf638b331573c23ba4d609",
              "versionType": "git"
            },
            {
              "lessThan": "23b4106e8b35823acc79e206c7745f55b9cfd78b",
              "status": "affected",
              "version": "4b147936fa509650beaf638b331573c23ba4d609",
              "versionType": "git"
            },
            {
              "lessThan": "06e816bed499fe47f39f12044382cc5d064485fb",
              "status": "affected",
              "version": "4b147936fa509650beaf638b331573c23ba4d609",
              "versionType": "git"
            },
            {
              "lessThan": "5597bb8db6855fcb97a67196d227fea359bcd81c",
              "status": "affected",
              "version": "4b147936fa509650beaf638b331573c23ba4d609",
              "versionType": "git"
            },
            {
              "lessThan": "cf4e31d5da80fae4c9cdbe7af55b7c3ad213f0e4",
              "status": "affected",
              "version": "4b147936fa509650beaf638b331573c23ba4d609",
              "versionType": "git"
            },
            {
              "lessThan": "3403d9bb27ebc3572bd048620746b4414e073bf9",
              "status": "affected",
              "version": "4b147936fa509650beaf638b331573c23ba4d609",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "kernel/trace/trace_events_hist.c",
            "kernel/trace/trace_events_synth.c",
            "kernel/trace/trace_synth.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.17"
            },
            {
              "lessThan": "4.17",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.191",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.161",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.115",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.60",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.14",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.3.*",
              "status": "unaffected",
              "version": "7.3.1",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.4-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.191",
                  "versionStartIncluding": "4.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.161",
                  "versionStartIncluding": "4.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.115",
                  "versionStartIncluding": "4.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.60",
                  "versionStartIncluding": "4.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.14",
                  "versionStartIncluding": "4.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3.1",
                  "versionStartIncluding": "4.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.4-rc1",
                  "versionStartIncluding": "4.17",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntracing/histograms: Verify event_call identity when updating synth_event refcount\n\nIn event_hist_trigger_parse() and hist_unreg_all(), the histogram\nregistration and unregistration paths look up find_synth_event() using\ntrace_event_name(file-\u003eevent_call) and adjust se-\u003eref if a match is\nfound.\n\nBecause find_synth_event() only compares the event basename, registering\nor removing a histogram on a non-synthetic trace event whose basename\nmatches a synthetic event erroneously modifies the synthetic event\u0027s\nreference count.  If a histogram is registered on the non-synthetic\nevent before the synthetic event is created and removed afterwards,\nse-\u003eref is decremented without a matching increment, allowing the\nsynthetic event to be freed while an active histogram action still holds\na pointer to it.\n\nIntroduce find_synth_event_call() to verify that \u0026se-\u003ecall matches\nfile-\u003eevent_call before adjusting se-\u003eref."
        }
      ],
      "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 colliding basename is supplied by local writes: event_trigger_write() \u2192 trigger_process_regex() \u2192 event_hist_trigger_parse()/hist_unreg_all() on events/\u003csystem\u003e/\u003cevent\u003e/trigger, and synth_events_write() \u2192 create_or_delete_synth_event() on synthetic_events. No network protocol carries this input.\nAC:L - The attacker drives a fully ordered sequence: a hist on a non-synth event (no se-\u003eref++), then a same-basename synth event, then an ACTION_TRACE hist that stores data-\u003esynth_event and increments se-\u003eref, then the !hist/hist_unreg_all path which decrements se-\u003eref, then synth_event_delete(). event_mutex serializes it; no victim-owned state is required.\nPR:L - event_trigger_open() and synth_events_open() only call security_locked_down(LOCKDOWN_TRACEFS); both files are TRACE_MODE_WRITE (0640) with no capable() check. tracefs_parse_param() accepts uid=/gid= and tracefs_apply_options() applies that owner, so a delegated tracing user can write them; tracefs has no FS_USERNS_MOUNT.\nUI:N - The attacker writes the hist commands, creates and deletes the colliding synth event via synth_events_write(), and can fire the leftover ACTION_TRACE histogram from their own process (any syscall that hits the remaining event). No separate victim action is required.\nS:U - destroy_synth_event() kfree\u0027s struct synth_event while action_trace() still holds data-\u003esynth_event; that UAF is confined to the host tracing heap and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - Once free_synth_event() has kfree\u0027d the object, action_trace() still reads data-\u003esynth_event and trace_synth() follows event-\u003etp and tp-\u003efuncs; reclaiming that kmalloc object lets the attacker control those reads, giving a kernel-memory disclosure primitive.\nI:H - trace_synth() calls probe_func taken from the dangling event-\u003etp-\u003efuncs, and a later action_data_destroy() does data-\u003esynth_event-\u003eref-- on the freed object; spraying the reclaimed synth_event therefore yields a function-pointer hijack and a write primitive.\nA:H - trace_synth() does static_key_enabled(\u0026tp-\u003ekey) on event-\u003etp from the freed synth_event the first time the leftover histogram fires, which oopses on a poisoned or unmapped pointer; the UAF is repeatable at will."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-11-03T19:13:02.404Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/381f543ed35c434d5b707369aa5dcd69ecf440af"
        },
        {
          "url": "https://git.kernel.org/stable/c/4472579bd1c83708b6fe623c870cdf728e947205"
        },
        {
          "url": "https://git.kernel.org/stable/c/23b4106e8b35823acc79e206c7745f55b9cfd78b"
        },
        {
          "url": "https://git.kernel.org/stable/c/06e816bed499fe47f39f12044382cc5d064485fb"
        },
        {
          "url": "https://git.kernel.org/stable/c/5597bb8db6855fcb97a67196d227fea359bcd81c"
        },
        {
          "url": "https://git.kernel.org/stable/c/cf4e31d5da80fae4c9cdbe7af55b7c3ad213f0e4"
        },
        {
          "url": "https://git.kernel.org/stable/c/3403d9bb27ebc3572bd048620746b4414e073bf9"
        }
      ],
      "title": "tracing/histograms: Verify event_call identity when updating synth_event refcount",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-99233",
    "datePublished": "2026-11-02T16:06:40.643Z",
    "dateReserved": "2026-09-25T10:25:14.402Z",
    "dateUpdated": "2026-11-03T19:13:02.404Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-99233",
      "date": "2026-11-04",
      "epss": "0.00121",
      "percentile": "0.01887"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "kernel/trace/trace_events_hist.c",
                  "kernel/trace/trace_events_synth.c",
                  "kernel/trace/trace_synth.h"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "381f543ed35c434d5b707369aa5dcd69ecf440af",
                    "status": "affected",
                    "version": "4b147936fa509650beaf638b331573c23ba4d609",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "4472579bd1c83708b6fe623c870cdf728e947205",
                    "status": "affected",
                    "version": "4b147936fa509650beaf638b331573c23ba4d609",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "23b4106e8b35823acc79e206c7745f55b9cfd78b",
                    "status": "affected",
                    "version": "4b147936fa509650beaf638b331573c23ba4d609",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "06e816bed499fe47f39f12044382cc5d064485fb",
                    "status": "affected",
                    "version": "4b147936fa509650beaf638b331573c23ba4d609",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "5597bb8db6855fcb97a67196d227fea359bcd81c",
                    "status": "affected",
                    "version": "4b147936fa509650beaf638b331573c23ba4d609",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "cf4e31d5da80fae4c9cdbe7af55b7c3ad213f0e4",
                    "status": "affected",
                    "version": "4b147936fa509650beaf638b331573c23ba4d609",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "3403d9bb27ebc3572bd048620746b4414e073bf9",
                    "status": "affected",
                    "version": "4b147936fa509650beaf638b331573c23ba4d609",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "kernel/trace/trace_events_hist.c",
                  "kernel/trace/trace_events_synth.c",
                  "kernel/trace/trace_synth.h"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "4.17"
                  },
                  {
                    "lessThan": "4.17",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.191",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.161",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.115",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.60",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.14",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.3.*",
                    "status": "unaffected",
                    "version": "7.3.1",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.4-rc1",
                    "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\ntracing/histograms: Verify event_call identity when updating synth_event refcount\n\nIn event_hist_trigger_parse() and hist_unreg_all(), the histogram\nregistration and unregistration paths look up find_synth_event() using\ntrace_event_name(file-\u003eevent_call) and adjust se-\u003eref if a match is\nfound.\n\nBecause find_synth_event() only compares the event basename, registering\nor removing a histogram on a non-synthetic trace event whose basename\nmatches a synthetic event erroneously modifies the synthetic event\u0027s\nreference count.  If a histogram is registered on the non-synthetic\nevent before the synthetic event is created and removed afterwards,\nse-\u003eref is decremented without a matching increment, allowing the\nsynthetic event to be freed while an active histogram action still holds\na pointer to it.\n\nIntroduce find_synth_event_call() to verify that \u0026se-\u003ecall matches\nfile-\u003eevent_call before adjusting se-\u003eref."
          }
        ],
        "id": "CVE-2026-99233",
        "lastModified": "2026-11-03T20:18:29.270",
        "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-11-02T16:17:48.390",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/06e816bed499fe47f39f12044382cc5d064485fb"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/23b4106e8b35823acc79e206c7745f55b9cfd78b"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/3403d9bb27ebc3572bd048620746b4414e073bf9"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/381f543ed35c434d5b707369aa5dcd69ecf440af"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/4472579bd1c83708b6fe623c870cdf728e947205"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/5597bb8db6855fcb97a67196d227fea359bcd81c"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/cf4e31d5da80fae4c9cdbe7af55b7c3ad213f0e4"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Important",
      "current_release_date": "2026-11-05T00:20:33+00:00",
      "cve": "CVE-2026-99233",
      "id": "CVE-2026-99233",
      "initial_release_date": "2026-11-02T16:06:40.643000+00:00",
      "product_status:known_affected": "162",
      "product_status:known_not_affected": "42",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: kernel: Privilege escalation via use-after-free in tracing subsystem",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-99233.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.