CVE-2026-97933 (GCVE-0-2026-97933)

Vulnerability from cvelistv5 – Published: 2026-09-25 10:22 – Updated: 2026-09-25 10:22
VLAI
Title
tracing: Take trace_array reference when opening a tracer options file
Summary
In the Linux kernel, the following vulnerability has been resolved: tracing: Take trace_array reference when opening a tracer options file When a tracer option file is opened, it is passed a descriptor that points to an element on the trace_array's topts array. This element has information to find the trace array and other information. It uses this element to take a reference of the trace_array so that the trace_array does not get removed while this file is opened. Unfortunately, there's a race condition where the element itself could be freed by the removal of the instance the trace_array represents causing a use-after-free as this element that is used to find the trace_array to increment its reference counter is also freed when the instance is removed. To solve this, add a trace_array_tracer_options_get() helper function that will take the address of the element that is passed to the open function by the inode->i_private pointer and search all the trace_arrays under a lock to find the one that the element's address is in the range of the trace_arrays topts array elements. When a match happens, that trace_array's reference would be increased. Note, there's a race where if an admin was deleting and creating trace instances at the same time and the memory of the old trace_array's array matched the memory of the new trace_array that it could in theory open the option from the wrong trace array. But we do not care because it would be stupid to perform that kind of action. As long as the only thing that can happen is that the option from the wrong trace array is used and doesn't crash the kernel it will only make the user confused. But if they are doing something stupid like this, they are already confused, so no harm done.
Severity
No CVSS data available.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 7e2cfbd2d3c86afcd5c26b5c4b1dd251f63c5838 , < b2fb87d29ffb3a7a9ccc5acf12898ecb80587427 (git)
Affected: 7e2cfbd2d3c86afcd5c26b5c4b1dd251f63c5838 , < ed0aff60f83a9bdc2f6556376ac79c96b3ce7e80 (git)
Affected: 952e477f908048145a5eb2ed3d431d9efc1e1073 (git)
Affected: b3183f5f05cd867f5c17122773ca5aa8d07b51af (git)
Affected: bf38c1d29f8bfe9631b62a67f8dd1b8f7efb7139 (git)
Affected: 2617afde0c3db285778734b0ccad9a55b4f9cda2 (git)
Affected: 586787a0331aa2d7d244e9c4400d2a73295b0cf0 (git)
Affected: 5.4.257 , < 5.5 (semver)
Affected: 5.10.197 , < 5.11 (semver)
Affected: 5.15.133 , < 5.16 (semver)
Affected: 6.1.55 , < 6.2 (semver)
Affected: 6.5.5 , < 6.6 (semver)
guessed Create a notification for this product.
Linux Linux Affected: 6.6
Unaffected: 0 , < 6.6 (semver)
Unaffected: 7.2.7 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc3 , ≤ * (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.c",
            "kernel/trace/trace.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "b2fb87d29ffb3a7a9ccc5acf12898ecb80587427",
              "status": "affected",
              "version": "7e2cfbd2d3c86afcd5c26b5c4b1dd251f63c5838",
              "versionType": "git"
            },
            {
              "lessThan": "ed0aff60f83a9bdc2f6556376ac79c96b3ce7e80",
              "status": "affected",
              "version": "7e2cfbd2d3c86afcd5c26b5c4b1dd251f63c5838",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "952e477f908048145a5eb2ed3d431d9efc1e1073",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "b3183f5f05cd867f5c17122773ca5aa8d07b51af",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "bf38c1d29f8bfe9631b62a67f8dd1b8f7efb7139",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "2617afde0c3db285778734b0ccad9a55b4f9cda2",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "586787a0331aa2d7d244e9c4400d2a73295b0cf0",
              "versionType": "git"
            },
            {
              "lessThan": "5.5",
              "status": "affected",
              "version": "5.4.257",
              "versionType": "semver"
            },
            {
              "lessThan": "5.11",
              "status": "affected",
              "version": "5.10.197",
              "versionType": "semver"
            },
            {
              "lessThan": "5.16",
              "status": "affected",
              "version": "5.15.133",
              "versionType": "semver"
            },
            {
              "lessThan": "6.2",
              "status": "affected",
              "version": "6.1.55",
              "versionType": "semver"
            },
            {
              "lessThan": "6.6",
              "status": "affected",
              "version": "6.5.5",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "kernel/trace/trace.c",
            "kernel/trace/trace.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.6"
            },
            {
              "lessThan": "6.6",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.7",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.7",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc3",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.4.257",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.10.197",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.15.133",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.1.55",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.5.5",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Take trace_array reference when opening a tracer options file\n\nWhen a tracer option file is opened, it is passed a descriptor that points\nto an element on the trace_array\u0027s topts array. This element has\ninformation to find the trace array and other information. It uses this\nelement to take a reference of the trace_array so that the trace_array\ndoes not get removed while this file is opened.\n\nUnfortunately, there\u0027s a race condition where the element itself could be\nfreed by the removal of the instance the trace_array represents causing a\nuse-after-free as this element that is used to find the trace_array to\nincrement its reference counter is also freed when the instance is\nremoved.\n\nTo solve this, add a trace_array_tracer_options_get() helper function that\nwill take the address of the element that is passed to the open function\nby the inode-\u003ei_private pointer and search all the trace_arrays under a\nlock to find the one that the element\u0027s address is in the range of the\ntrace_arrays topts array elements. When a match happens, that trace_array\u0027s\nreference would be increased.\n\nNote, there\u0027s a race where if an admin was deleting and creating trace\ninstances at the same time and the memory of the old trace_array\u0027s array\nmatched the memory of the new trace_array that it could in theory open the\noption from the wrong trace array. But we do not care because it would be\nstupid to perform that kind of action. As long as the only thing that can\nhappen is that the option from the wrong trace array is used and doesn\u0027t\ncrash the kernel it will only make the user confused. But if they are\ndoing something stupid like this, they are already confused, so no harm\ndone."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-25T10:22:48.591Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/b2fb87d29ffb3a7a9ccc5acf12898ecb80587427"
        },
        {
          "url": "https://git.kernel.org/stable/c/ed0aff60f83a9bdc2f6556376ac79c96b3ce7e80"
        }
      ],
      "title": "tracing: Take trace_array reference when opening a tracer options file",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-97933",
    "datePublished": "2026-09-25T10:22:48.591Z",
    "dateReserved": "2026-09-25T10:18:58.203Z",
    "dateUpdated": "2026-09-25T10:22:48.591Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-97933",
      "date": "2026-09-26",
      "epss": "0.00189",
      "percentile": "0.07669"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "kernel/trace/trace.c",
                  "kernel/trace/trace.h"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "b2fb87d29ffb3a7a9ccc5acf12898ecb80587427",
                    "status": "affected",
                    "version": "7e2cfbd2d3c86afcd5c26b5c4b1dd251f63c5838",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "ed0aff60f83a9bdc2f6556376ac79c96b3ce7e80",
                    "status": "affected",
                    "version": "7e2cfbd2d3c86afcd5c26b5c4b1dd251f63c5838",
                    "versionType": "git"
                  },
                  {
                    "status": "affected",
                    "version": "952e477f908048145a5eb2ed3d431d9efc1e1073",
                    "versionType": "git"
                  },
                  {
                    "status": "affected",
                    "version": "b3183f5f05cd867f5c17122773ca5aa8d07b51af",
                    "versionType": "git"
                  },
                  {
                    "status": "affected",
                    "version": "bf38c1d29f8bfe9631b62a67f8dd1b8f7efb7139",
                    "versionType": "git"
                  },
                  {
                    "status": "affected",
                    "version": "2617afde0c3db285778734b0ccad9a55b4f9cda2",
                    "versionType": "git"
                  },
                  {
                    "status": "affected",
                    "version": "586787a0331aa2d7d244e9c4400d2a73295b0cf0",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "5.5",
                    "status": "affected",
                    "version": "5.4.257",
                    "versionType": "semver"
                  },
                  {
                    "lessThan": "5.11",
                    "status": "affected",
                    "version": "5.10.197",
                    "versionType": "semver"
                  },
                  {
                    "lessThan": "5.16",
                    "status": "affected",
                    "version": "5.15.133",
                    "versionType": "semver"
                  },
                  {
                    "lessThan": "6.2",
                    "status": "affected",
                    "version": "6.1.55",
                    "versionType": "semver"
                  },
                  {
                    "lessThan": "6.6",
                    "status": "affected",
                    "version": "6.5.5",
                    "versionType": "semver"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "kernel/trace/trace.c",
                  "kernel/trace/trace.h"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.6"
                  },
                  {
                    "lessThan": "6.6",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.7",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3-rc3",
                    "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: Take trace_array reference when opening a tracer options file\n\nWhen a tracer option file is opened, it is passed a descriptor that points\nto an element on the trace_array\u0027s topts array. This element has\ninformation to find the trace array and other information. It uses this\nelement to take a reference of the trace_array so that the trace_array\ndoes not get removed while this file is opened.\n\nUnfortunately, there\u0027s a race condition where the element itself could be\nfreed by the removal of the instance the trace_array represents causing a\nuse-after-free as this element that is used to find the trace_array to\nincrement its reference counter is also freed when the instance is\nremoved.\n\nTo solve this, add a trace_array_tracer_options_get() helper function that\nwill take the address of the element that is passed to the open function\nby the inode-\u003ei_private pointer and search all the trace_arrays under a\nlock to find the one that the element\u0027s address is in the range of the\ntrace_arrays topts array elements. When a match happens, that trace_array\u0027s\nreference would be increased.\n\nNote, there\u0027s a race where if an admin was deleting and creating trace\ninstances at the same time and the memory of the old trace_array\u0027s array\nmatched the memory of the new trace_array that it could in theory open the\noption from the wrong trace array. But we do not care because it would be\nstupid to perform that kind of action. As long as the only thing that can\nhappen is that the option from the wrong trace array is used and doesn\u0027t\ncrash the kernel it will only make the user confused. But if they are\ndoing something stupid like this, they are already confused, so no harm\ndone."
          }
        ],
        "id": "CVE-2026-97933",
        "lastModified": "2026-09-25T11:17:20.610",
        "metrics": {},
        "published": "2026-09-25T11:17:20.610",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/b2fb87d29ffb3a7a9ccc5acf12898ecb80587427"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/ed0aff60f83a9bdc2f6556376ac79c96b3ce7e80"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    }
  }
}



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…

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…