Skip to content
Heist/ feed
Back to feed
UnratedFix available

thunderbolt: Make the DP tunnel activation callback mandatory

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: thunderbolt: Make the DP tunnel activation callback mandatory tb_tunnel_alloc_dp() takes an optional callback which is run from dprx_work once the DPRX capabilities read has completed. Without that callback tb_dp_dprx_start() reads the capabilities synchronously and never queues the work. It however always takes a tunnel reference which is only dropped by dprx_work itself or by tb_dp_dprx_stop() when cancel_delayed_work() actually canceled that work. That reference is thus leaked for every tunnel without a callback. The only tunnels without one are those from tb_tunnel_discover_dp(), which are activated again when restoring from hibernation. Pass the callback to tb_tunnel_discover_dp() as well and drop the synchronous path such that the DPRX capabilities are always read from dprx_work. Hibernation restore then also no longer blocks for up to 12 seconds while waiting for that read to complete. Also fix up the KUnit tests.

Products
Kernel
Affected versions
Not specified
Fixed versions
7.2.10
CVEs
CVE-2026-98692
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 14:01 UTC · Revision 1

Source evidence

thunderbolt: Make the DP tunnel activation callback mandatory

core-osv · Original source

Published 18 Oct 2026, 15:46 UTC

In the Linux kernel, the following vulnerability has been resolved: thunderbolt: Make the DP tunnel activation callback mandatory tb_tunnel_alloc_dp() takes an optional callback which is run from dprx_work once the DPRX capabilities read has completed. Without that callback tb_dp_dprx_start() reads the capabilities synchronously and never queues the work. It however always takes a tunnel reference which is only dropped by dprx_work itself or by tb_dp_dprx_stop() when cancel_delayed_work() actually canceled that work. That reference is thus leaked for every tunnel without a callback. The only tunnels without one are those from tb_tunnel_discover_dp(), which are activated again when restoring from hibernation. Pass the callback to tb_tunnel_discover_dp() as well and drop the synchronous path such that the DPRX capabilities are always read from dprx_work. Hibernation restore then also no longer blocks for up to 12 seconds while waiting for that read to complete. Also fix up the KUnit tests.

osv:CVE-2026-98692

Kernel

Fixed versions: 7.2.10

Complete source record
{
  "id": "6a6ac1f481546555a714ea5cbac3d8e14e1fcf6c57e232b16b35eb10a79d4b8d",
  "url": "https://osv.dev/vulnerability/CVE-2026-98692",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "thunderbolt: Make the DP tunnel activation callback mandatory",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: thunderbolt: Make the DP tunnel activation callback mandatory tb_tunnel_alloc_dp() takes an optional callback which is run from dprx_work once the DPRX capabilities read has completed. Without that callback tb_dp_dprx_start() reads the capabilities synchronously and never queues the work. It however always takes a tunnel reference which is only dropped by dprx_work itself or by tb_dp_dprx_stop() when cancel_delayed_work() actually canceled that work. That reference is thus leaked for every tunnel without a callback. The only tunnels without one are those from tb_tunnel_discover_dp(), which are activated again when restoring from hibernation. Pass the callback to tb_tunnel_discover_dp() as well and drop the synchronous path such that the DPRX capabilities are always read from dprx_work. Hibernation restore then also no longer blocks for up to 12 seconds while waiting for that read to complete. Also fix up the KUnit tests.",
    "evidence": "osv:CVE-2026-98692",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "7.2.10",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2026-98692",
      "aliases": [
        "CVE-2026-98692"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "d6d458d42e1e1544a18f37f1d5c840e00d5261b9"
                },
                {
                  "fixed": "47d60ea801fc333a10c576691eca2e7840b02d3d"
                },
                {
                  "fixed": "12f5d8b85a66a0ac08d082517d92ce136f8c0d42"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98692.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.14.0"
                },
                {
                  "fixed": "7.2.10"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98692.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:35.819911309Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/12f5d8b85a66a0ac08d082517d92ce136f8c0d42",
        "https://git.kernel.org/stable/c/47d60ea801fc333a10c576691eca2e7840b02d3d",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98692.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-98692",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98692.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-98692",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 503412,
  "published_at": "2026-10-18T15:46:16.794+00:00"
}