CVE-2026-74381 (GCVE-0-2026-74381)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-08-17 05:18
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: gpu: host1x: Allow entries in BO caches to be freed When a buffer object is pinned via host1x_bo_pin() with a cache, the resulting mapping is kept in the cache so it can be reused on subsequent pins. Each mapping held a reference to the underlying host1x_bo (taken in tegra_bo_pin / gather_bo_pin), so as long as a mapping was cached, the bo itself could not be freed. However, the only way to remove the cached mapping was through the free path of the buffer object. This meant that if a bo got cached, it could never get freed again. Resolve the circularity by holding a weak reference to the bo from the cache side. This is done by having the .pin callbacks not bump the bo's refcount -- instead the common Host1x bo code does so, except for the cache reference. Also move the remove-cache-mapping-on-free code into a common function inside Host1x code. This is only called from the TegraDRM GEM buffers since those are the only ones that can be cached at the moment.
Impacted products
Vendor Product Version
Linux Linux Version: 1f39b1dfa53c84b56d7ad37fed44afda7004959d
Version: 1f39b1dfa53c84b56d7ad37fed44afda7004959d
Version: 1f39b1dfa53c84b56d7ad37fed44afda7004959d
Version: 1f39b1dfa53c84b56d7ad37fed44afda7004959d
Version: 1f39b1dfa53c84b56d7ad37fed44afda7004959d
Version: 1f39b1dfa53c84b56d7ad37fed44afda7004959d
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/tegra/gem.c",
            "drivers/gpu/drm/tegra/submit.c",
            "drivers/gpu/host1x/bus.c",
            "include/linux/host1x.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "af755456299d44e4ed6af3b7c70a7f03ea37fdf1",
              "status": "affected",
              "version": "1f39b1dfa53c84b56d7ad37fed44afda7004959d",
              "versionType": "git"
            },
            {
              "lessThan": "71c017b3f83ff72638f2a1b1d6d4e7bc61d30231",
              "status": "affected",
              "version": "1f39b1dfa53c84b56d7ad37fed44afda7004959d",
              "versionType": "git"
            },
            {
              "lessThan": "0e9dd7cfb9986b78cc81eca126ccfbf57f4c0602",
              "status": "affected",
              "version": "1f39b1dfa53c84b56d7ad37fed44afda7004959d",
              "versionType": "git"
            },
            {
              "lessThan": "8c0d3cf0d5108c96317e0eca92b60dd368867cef",
              "status": "affected",
              "version": "1f39b1dfa53c84b56d7ad37fed44afda7004959d",
              "versionType": "git"
            },
            {
              "lessThan": "df63c76f9c8d881ca7bce1aecfba512328d0527d",
              "status": "affected",
              "version": "1f39b1dfa53c84b56d7ad37fed44afda7004959d",
              "versionType": "git"
            },
            {
              "lessThan": "3cbf5e3c46e66d9b3b6b91099bb720c6cb1be3bc",
              "status": "affected",
              "version": "1f39b1dfa53c84b56d7ad37fed44afda7004959d",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/tegra/gem.c",
            "drivers/gpu/drm/tegra/submit.c",
            "drivers/gpu/host1x/bus.c",
            "include/linux/host1x.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.17"
            },
            {
              "lessThan": "5.17",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.178",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.145",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.97",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.40",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.178",
                  "versionStartIncluding": "5.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.145",
                  "versionStartIncluding": "5.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.97",
                  "versionStartIncluding": "5.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.40",
                  "versionStartIncluding": "5.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.5",
                  "versionStartIncluding": "5.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "5.17",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ngpu: host1x: Allow entries in BO caches to be freed\n\nWhen a buffer object is pinned via host1x_bo_pin() with a cache, the\nresulting mapping is kept in the cache so it can be reused on subsequent\npins. Each mapping held a reference to the underlying host1x_bo (taken\nin tegra_bo_pin / gather_bo_pin), so as long as a mapping was cached,\nthe bo itself could not be freed.\n\nHowever, the only way to remove the cached mapping was through the free\npath of the buffer object. This meant that if a bo got cached, it could\nnever get freed again.\n\nResolve the circularity by holding a weak reference to the bo from the\ncache side. This is done by having the .pin callbacks not bump the bo\u0027s\nrefcount -- instead the common Host1x bo code does so, except for the\ncache reference.\n\nAlso move the remove-cache-mapping-on-free code into a common function\ninside Host1x code. This is only called from the TegraDRM GEM buffers\nsince those are the only ones that can be cached at the moment."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:18:19.071Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/af755456299d44e4ed6af3b7c70a7f03ea37fdf1"
        },
        {
          "url": "https://git.kernel.org/stable/c/71c017b3f83ff72638f2a1b1d6d4e7bc61d30231"
        },
        {
          "url": "https://git.kernel.org/stable/c/0e9dd7cfb9986b78cc81eca126ccfbf57f4c0602"
        },
        {
          "url": "https://git.kernel.org/stable/c/8c0d3cf0d5108c96317e0eca92b60dd368867cef"
        },
        {
          "url": "https://git.kernel.org/stable/c/df63c76f9c8d881ca7bce1aecfba512328d0527d"
        },
        {
          "url": "https://git.kernel.org/stable/c/3cbf5e3c46e66d9b3b6b91099bb720c6cb1be3bc"
        }
      ],
      "title": "gpu: host1x: Allow entries in BO caches to be freed",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74381",
    "datePublished": "2026-08-15T05:58:58.354Z",
    "dateReserved": "2026-08-15T05:44:03.890Z",
    "dateUpdated": "2026-08-17T05:18:19.071Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…