Skip to main content
← All vulnerabilities
CVE-2026-98967EUVD-2026-108761GHSA-HVVF-G7GG-PMX4

cxgb4/ch_ktls: disable softirqs around tid_list erases

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.11, 5.13, 6.6.160, 6.12.113, 6.18.57, and 1 more
None on Exploit-DB, Metasploit or GitHub

Summary

The vulnerability affects the Linux kernel's cxgb4 driver for Chelsio network adapters, specifically its kTLS offload code (ch_ktls). A race in connection cleanup can cause the system to hang, resulting in a denial of service.

Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.

Read the original description

In the Linux kernel, the following vulnerability has been resolved: cxgb4/ch_ktls: disable softirqs around tid_list erases chcr_ktls_cpl_act_open_rpl() inserts into tid_list from the receive path using xa_insert_bh(). The array is shared by the adapter's connections and initialized with XA_FLAGS_LOCK_BH. However, chcr_ktls_dev_del() and the chcr_ktls_dev_add() error path use xa_erase(), which takes the XArray lock without disabling softirqs. When cleanup runs with softirqs enabled, a receive softirq for another connection on the same CPU can interrupt the erase and spin on the lock held by the interrupted task. Use xa_erase_bh() at both sites to match the insertion path.

Timeline

  1. CVE published
  2. First seen by cve.now

Affected versions

  • Linux Linux

    From 65e302a9bd57b62872040d57eea1201562a7cbb2 · fixed in 8739f06e3f82cd715f7dd10ab24029ed881efc90; From 65e302a9bd57b62872040d57eea1201562a7cbb2 · fixed in bcf97573d44e277b1744d7f1226f665aa0ccc599; From 65e302a9bd57b62872040d57eea1201562a7cbb2 · fixed in 7110c7f70c59eb7924e79853bcc00e2a026662e6; From 65e302a9bd57b62872040d57eea1201562a7cbb2 · fixed in bea736a2b8c6da5b1078badf1206541b5404250f; From 65e302a9bd57b62872040d57eea1201562a7cbb2 · fixed in 4c9dc0faca98084922caeb689579d338cf3e1c29; From 5.10.42 · fixed in 5.11; From 5.12.9 · fixed in 5.13

  • Linux Linux

    5.13

  • KernelLinux

    From 5.13.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.113; From 6.13.0 · fixed in 6.18.57; From 6.19.0 · fixed in 7.2.11

References 5

git.kernel.org