GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

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

Vulnerability from cvelistv5 – Published: 2026-09-16 10:33 – Updated: 2026-09-16 14:41
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.
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-rc2 , ≤ * (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-rc2",
              "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-rc2",
                  "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-09-16T14:41:32.775Z",
        "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-09-16T14:41:32.775Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-90014",
      "date": "2026-09-17",
      "epss": "0.00154",
      "percentile": "0.04929"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-90014\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-09-16T11:17:14.110\",\"lastModified\":\"2026-09-16T15:18:25.113\",\"vulnStatus\":\"Received\",\"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.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"kernel/trace/trace_events.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"729757b96a662d87e334fe8b837707800d8fd551\",\"lessThan\":\"2ee3f7d43f79efaca0cd84a6798653d9d75ce60b\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"729757b96a662d87e334fe8b837707800d8fd551\",\"lessThan\":\"f4a771cc684c7354b6200147f7252c58d17408ff\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"kernel/trace/trace_events.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"7.0\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"7.0\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2.5\",\"lessThanOrEqual\":\"7.2.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.3-rc2\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"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}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/2ee3f7d43f79efaca0cd84a6798653d9d75ce60b\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/f4a771cc684c7354b6200147f7252c58d17408ff\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}



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…

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.


Loading…