In the Linux kernel, the following vulnerability has been resolved:
usb: core: port: Deattach Type-C connector on component unbind
connector_unbind() is the mirror of connector_bind(), but it is missing the symmetric call to typec_deattach() that connector_bind() makes via:
if (port_dev->child) typec_attach(port_dev->connector, &port_dev->child->dev);
When a Thunderbolt dock is unplugged, two teardown paths race:
1. The component framework calls connector_unbind() first, which sets port_dev->connector = NULL without calling typec_deattach(). This leaves port->usb2_dev/port->usb3_dev in struct typec_port pointing at the USB device that is about to be freed.
2. usb_disconnect() then calls typec_deattach(port_dev->connector, ...), but port_dev->connector is already NULL, so the call is a no-op and port->usb2_dev is never cleared.
3. Concurrently, UCSI detects a PD partner-disconnect event and calls typec_unregister_partner(), which reads port->usb2_dev (now a dangling pointer to freed memory) and passes it to typec_partner_unlink_device() -> sysfs_remove_link() -> dev_name() on the freed device, corrupting the typec/UCSI partner state.
This corruption leaves the Thunderbolt tunnel in an inconsistent state on the next dock hot-plug. On affected hardware the dock's I225/igc NIC fails to enumerate: AER fires a slot reset while the igc driver is still initialising ("PCIe link lost"), and the subsequent igc_reset attempt hits igc_rd32 on an already-detached device:
igc 0000:2e:00.0 eth0: PCIe link lost, device now detached igc: Failed to read reg 0x0! WARNING: CPU: 9 PID: 129 at drivers/net/ethernet/intel/igc/igc_main.c:7005 igc_rd32+0xa4/0xc0 [igc] Call Trace: igc_disable_pcie_master+0x16/0xa0 [igc] igc_reset_hw_base+0x14/0x170 [igc] igc_reset+0x63/0x110 [igc] igc_io_slot_reset+0x9e/0xd0 [igc] report_slot_reset+0x5d/0xc0 pcie_do_recovery+0x209/0x400 aer_isr_one_error_type+0x235/0x430 aer_isr+0x4e/0x80 irq_thread+0xf4/0x1f0
4. UCSI later handles the PD partner-disconnect and calls typec_unregister_partner(), which still sees the stale port->usb2_dev and tries to remove its sysfs link a second time:
kernfs: can not remove 'typec', no directory WARNING: CPU: 6 PID: 55 at fs/kernfs/dir.c:1706 kernfs_remove_by_name_ns+0xe9/0xf0 Workqueue: events ucsi_handle_connector_change [typec_ucsi] Call Trace: sysfs_remove_link+0x19/0x50 typec_unregister_partner+0x6e/0x120 [typec] ucsi_unregister_partner+0x107/0x150 [typec_ucsi] ucsi_handle_connector_change+0x3ec/0x490 [typec_ucsi] process_one_work+0x18e/0x3e0 worker_thread+0x2e3/0x420 kthread+0x10a/0x230 ret_from_fork+0x121/0x140 ret_from_fork_asm+0x1a/0x30
With worse timing the same stale pointer is dereferenced after the backing memory is freed, turning the warning into a use-after-free.
Fix the asymmetry: call typec_deattach() before clearing port_dev->connector, matching what connector_bind() does on the bind side. typec_partner_deattach() is already protected by port->partner_link_lock, so it serialises safely with the concurrent typec_unregister_partner() path.
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux-6.12Upgrade linux | Aug 11, 2026 | Aug 11, 2026 |
| Redhat_linux | — | No solution exists | Aug 13, 2026 | Aug 10, 2026 |
| Ubuntu | — | Upgrade linux-image-oracle-6.8Upgrade linux-image-oem-7.0Upgrade linux-image-realtime-hwe-26.04Upgrade linux-image-genericUpgrade linux-image-gkeopUpgrade linux-image-6.8.0-1067-awsUpgrade linux-image-azure-6.8Upgrade linux-image-fips-6.8Upgrade linux-image-7.0.0-1017-azureUpgrade linux-image-aws-lts-24.04Upgrade linux-image-7.0.0-1014-gcpUpgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-7.0.0-1013-oracleUpgrade linux-image-lowlatency-64kUpgrade linux-image-7.0.0-1014-aws-64kUpgrade linux-image-ibmUpgrade linux-image-generic-64kUpgrade linux-image-gke-64k-hwe-26.04Upgrade linux-image-azure-lts-26.04Upgrade linux-image-lowlatencyUpgrade linux-image-7.0.0-1014-gcp-64kUpgrade linux-image-azure-fde-6.8Upgrade linux-image-oem-24.04dUpgrade linux-image-oem-24.04Upgrade linux-image-azure-fde-lts-26.04Upgrade linux-image-7.0.0-1013-oemUpgrade linux-image-aws-64kUpgrade linux-image-6.8.0-1071-azure-fipsUpgrade linux-image-gke-6.8Upgrade linux-image-realtime-6.8.1Upgrade linux-image-7.0.0-1015-ibmUpgrade linux-image-gcpUpgrade linux-image-7.0.0-38-generic-64kUpgrade linux-image-7.0.0-38-realtimeUpgrade linux-image-7.0.0-38-realtime-64kUpgrade linux-image-oracle-7.0Upgrade linux-image-virtualUpgrade linux-image-azure-fips-6.8Upgrade linux-image-oem-24.04aUpgrade linux-image-oem-26.04Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-gcp-64kUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-generic-64k-7.0Upgrade linux-image-6.8.0-1071-gcp-64kUpgrade linux-image-7.0.0-1016-azure-fdeUpgrade linux-image-aws-6.8Upgrade linux-image-gke-64k-6.8Upgrade linux-image-intel-iotgUpgrade linux-image-ibm-7.0Upgrade linux-image-6.8.0-147-lowlatency-64kUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-6.8.0-1052-gkeopUpgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1066-gke-64kUpgrade linux-image-gkeop-6.8Upgrade linux-image-oracle-64k-7.0Upgrade linux-image-6.8.0-1071-gcp-fipsUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.8.0-1067-aws-64kUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-generic-6.8Upgrade linux-image-azureUpgrade linux-image-gcp-64k-7.0Upgrade linux-image-gkeUpgrade linux-image-laptop-23.10Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-6.8.0-1067-aws-fipsUpgrade linux-image-6.8.0-1069-azure-fdeUpgrade linux-image-7.0.0-1008-gke-64kUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-realtime-64k-hwe-26.04Upgrade linux-image-6.8.0-1064-oracleUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-gcp-6.8Upgrade linux-image-azure-7.0Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-oem-26.04aUpgrade linux-image-lowlatency-6.8Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-aws-64k-7.0Upgrade linux-image-ibm-classicUpgrade linux-image-azure-fde-7.0Upgrade linux-image-7.0.0-38-genericUpgrade linux-image-6.8.1-1062-realtimeUpgrade linux-image-6.17.0-1033-oemUpgrade linux-image-fipsUpgrade linux-image-aws-fips-6.8Upgrade linux-image-gke-7.0Upgrade linux-image-generic-64k-6.8Upgrade linux-image-7.0.0-1013-oracle-64kUpgrade linux-image-oem-24.04cUpgrade linux-image-oem-24.04bUpgrade linux-image-gke-hwe-26.04Upgrade linux-image-generic-hwe-26.04Upgrade linux-image-7.0.0-1014-awsUpgrade linux-image-kvmUpgrade linux-image-6.8.0-1066-gkeUpgrade linux-image-generic-7.0Upgrade linux-image-oracleUpgrade linux-image-awsUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-azure-lts-24.04Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-virtual-hwe-26.04Upgrade linux-image-7.0.0-1008-gkeUpgrade linux-image-azure-fipsUpgrade linux-image-aws-7.0Upgrade linux-image-aws-64k-6.8Upgrade linux-image-6.8.0-147-lowlatencyUpgrade linux-image-ibm-6.8Upgrade linux-image-gke-64k-7.0Upgrade linux-image-6.8.0-1071-gcpUpgrade linux-image-realtime-64kUpgrade linux-image-gke-64kUpgrade linux-image-virtual-7.0Upgrade linux-image-6.8.0-1064-oracle-64kUpgrade linux-image-azure-fdeUpgrade linux-image-generic-lpaeUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-gcp-fipsUpgrade linux-image-6.8.0-1071-azureUpgrade linux-image-virtual-6.8Upgrade linux-image-realtime-64k-7.0Upgrade linux-image-oem-6.17Upgrade linux-image-oem-26.04bUpgrade linux-image-6.8.0-147-generic-64kUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-aws-fipsUpgrade linux-image-gcp-7.0Upgrade linux-image-6.8.0-147-genericUpgrade linux-image-6.8.0-147-fipsUpgrade linux-image-6.8.0-1067-ibmUpgrade linux-image-realtime-7.0Upgrade linux-image-realtime | Sep 14, 2026 | Sep 7, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Aug 17, 2026 | Aug 10, 2026 |
Prioritize with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub