CVE-2026-90014 (GCVE-0-2026-90014)

Vulnerability from cvelistv5 – Published: 2026-09-16 10:33 – Updated: 2026-10-19 08:56
VLAI
Title
tracing: Have show_event_filters/triggers files take trace array ref
Summary
In the Linux kernel, the following vulnerability has been resolved: tracing: Have show_event_filters/triggers files take trace array ref The newly added files show_event_filters and show_event_triggers that show all filters or triggers that are set within the trace array do not take a reference for the trace array it is showing. Without taking a reference, the trace_array may be freed via "rmdir" while a task is reading one of theses files. Those files iterate all the events within an instance (trace_array) and nothing prevents that instance from being freed while its data is being read. This causes a use-after-free crash. Have the open of both those files take the trace_array reference via the trace_array_get() that prevents the trace_array from being freed while the files are opened.
Assigner
Linux CNA under the mitre root
CNA scorecard D 53/100 over 6639 records in the last 180 days details
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 729757b96a662d87e334fe8b837707800d8fd551 , < 2ee3f7d43f79efaca0cd84a6798653d9d75ce60b (git)
Affected: 729757b96a662d87e334fe8b837707800d8fd551 , < f4a771cc684c7354b6200147f7252c58d17408ff (git)
guessed Create a notification for this product.
Linux Linux Affected: 7.0
Unaffected: 0 , < 7.0 (semver)
Unaffected: 7.2.5 , ≤ 7.2.* (semver)
Unaffected: 7.3 , ≤ * (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.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "2ee3f7d43f79efaca0cd84a6798653d9d75ce60b",
              "status": "affected",
              "version": "729757b96a662d87e334fe8b837707800d8fd551",
              "versionType": "git"
            },
            {
              "lessThan": "f4a771cc684c7354b6200147f7252c58d17408ff",
              "status": "affected",
              "version": "729757b96a662d87e334fe8b837707800d8fd551",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "kernel/trace/trace_events.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "7.0"
            },
            {
              "lessThan": "7.0",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.5",
                  "versionStartIncluding": "7.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3",
                  "versionStartIncluding": "7.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Have show_event_filters/triggers files take trace array ref\n\nThe newly added files show_event_filters and show_event_triggers that show\nall filters or triggers that are set within the trace array do not take a\nreference for the trace array it is showing. Without taking a reference,\nthe trace_array may be freed via \"rmdir\" while a task is reading one of\ntheses files. Those files iterate all the events within an instance\n(trace_array) and nothing prevents that instance from being freed while\nits data is being read. This causes a use-after-free crash.\n\nHave the open of both those files take the trace_array reference via the\ntrace_array_get() that prevents the trace_array from being freed while the\nfiles are opened."
        }
      ],
      "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 UAF is reached only via local tracefs: open/read of instances/\u003cname\u003e/show_event_filters or show_event_triggers (ftrace_event_show_*_open -\u003e seq_read -\u003e t_start) concurrent with rmdir(2) of that instance (tracefs_syscall_rmdir -\u003e instance_rmdir -\u003e __remove_instance). There is no network, adjacent-radio, or physical path.\nAC:L - The attacker owns both sides and can trigger it sequentially: mkdir an instance, open show_event_filters/triggers (no trace_array ref), rmdir it (__remove_instance sees tr-\u003eref==1 and kfree()s tr), then read the still-open fd. No victim state or uninfluenced layout is required; CONFIG_TRACING is standard.\nPR:L - The open path checks only LOCKDOWN_TRACEFS and DAC (files are 0440; instance mkdir/rmdir has no capable() gate). Tracefs uid=/gid=/mode= mounts on Android/Perfetto, ChromeOS, and distro tracing groups grant this to unprivileged users, matching CVE-2024-50207, CVE-2025-38101, and CVE-2026-74634.\nUI:N - The attacker creates the instance, opens the seq file, rmdirs it, and reads the fd from their own threads. No separate victim mount, click, or cooperating process is required.\nS:U - The use-after-free corrupts the host kernel\u0027s trace_array and event-file heap objects within the same OS security authority. It enables local privilege escalation but does not cross a VM, IOMMU, sandbox, or hardware trust boundary.\nC:H - After rmdir kfree()s the trace_array and its trace_event_file objects, t_start/t_next walk the freed tr-\u003eevents list and t_show_filters copies filter-\u003efilter_string to userspace via seq_printf, disclosing recycled kernel heap. Use-after-free is scored C:H.\nI:H - t_show_triggers invokes data-\u003ecmd_ops-\u003eprint() on use-after-free trigger objects, and walking the freed tr-\u003eevents list is a heap UAF write/control-flow primitive after spraying. Use-after-free is scored I:H.\nA:H - syzkaller reported a KASAN slab-use-after-free in t_start/t_next when the instance is removed while the file is read, which oopses or panics the kernel. Any use-after-free of the trace_array is a reliable whole-system crash even without full exploitation."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-19T08:56:28.002Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/2ee3f7d43f79efaca0cd84a6798653d9d75ce60b"
        },
        {
          "url": "https://git.kernel.org/stable/c/f4a771cc684c7354b6200147f7252c58d17408ff"
        }
      ],
      "title": "tracing: Have show_event_filters/triggers files take trace array ref",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-90014",
    "datePublished": "2026-09-16T10:33:20.791Z",
    "dateReserved": "2026-09-11T19:38:34.781Z",
    "dateUpdated": "2026-10-19T08:56:28.002Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-90014",
      "date": "2026-11-10",
      "epss": "0.00165",
      "percentile": "0.05775"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "kernel/trace/trace_events.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "2ee3f7d43f79efaca0cd84a6798653d9d75ce60b",
                    "status": "affected",
                    "version": "729757b96a662d87e334fe8b837707800d8fd551",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "f4a771cc684c7354b6200147f7252c58d17408ff",
                    "status": "affected",
                    "version": "729757b96a662d87e334fe8b837707800d8fd551",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "kernel/trace/trace_events.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "7.0"
                  },
                  {
                    "lessThan": "7.0",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.5",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3",
                    "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: Have show_event_filters/triggers files take trace array ref\n\nThe newly added files show_event_filters and show_event_triggers that show\nall filters or triggers that are set within the trace array do not take a\nreference for the trace array it is showing. Without taking a reference,\nthe trace_array may be freed via \"rmdir\" while a task is reading one of\ntheses files. Those files iterate all the events within an instance\n(trace_array) and nothing prevents that instance from being freed while\nits data is being read. This causes a use-after-free crash.\n\nHave the open of both those files take the trace_array reference via the\ntrace_array_get() that prevents the trace_array from being freed while the\nfiles are opened."
          }
        ],
        "id": "CVE-2026-90014",
        "lastModified": "2026-10-19T09:18:49.283",
        "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-09-16T11:17:14.110",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/2ee3f7d43f79efaca0cd84a6798653d9d75ce60b"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/f4a771cc684c7354b6200147f7252c58d17408ff"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-11-06T01:28:07+00:00",
      "cve": "CVE-2026-90014",
      "id": "CVE-2026-90014",
      "initial_release_date": "2026-09-16T00:00:00+00:00",
      "product_status:known_affected": "14",
      "product_status:known_not_affected": "189",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: tracing: Have show_event_filters/triggers files take trace array ref",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-90014.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
How durations are calculated

Following the VTEM framework (Black Hat USA 2015), time to patch starts when the vendor or a coordinator was informed, total time to patch at discovery, and disclosure to patch at public disclosure; vendor response time runs from the report to its acknowledgement. Time to exploit and time unpatched start at the earliest discovery or report, falling back to public disclosure. Unpatched time ends at the first recorded patch, or the calculation time when no patch is recorded. Exploitation to patch shows the interval between those two events; a published proof of concept is a public exploit, not exploitation.

Each result shows its source dates. A negative interval means the end event came first; when date-only inputs leave the order open, the result says so. Date-only inputs are approximate. The earliest evidence wins: KEV report dates and sightings are labelled as such. Records describing another vulnerability are listed but never calculated from, and a PoC alone does not establish exploitation. Missing patch evidence does not prove that no patch exists. Filters below change the event list only.

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.