{"id":"CVE-2026-43130","state":"PUBLISHED","title":"iommu/vt-d: Flush dev-IOTLB only when PCIe device is accessible in scalable mode","description":"In the Linux kernel, the following vulnerability has been resolved:\n\niommu/vt-d: Flush dev-IOTLB only when PCIe device is accessible in scalable mode\n\nCommit 4fc82cd907ac (\"iommu/vt-d: Don't issue ATS Invalidation\nrequest when device is disconnected\") relies on\npci_dev_is_disconnected() to skip ATS invalidation for\nsafely-removed devices, but it does not cover link-down caused\nby faults, which can still hard-lock the system.\n\nFor example, if a VM fails to connect to the PCIe device,\n\"virsh destroy\" is executed to release resources and isolate\nthe fault, but a hard-lockup occurs while releasing the group fd.\n\nCall Trace:\n qi_submit_sync\n qi_flush_dev_iotlb\n intel_pasid_tear_down_entry\n device_block_translation\n blocking_domain_attach_dev\n __iommu_attach_device\n __iommu_device_set_domain\n __iommu_group_set_domain_internal\n iommu_detach_group\n vfio_iommu_type1_detach_group\n vfio_group_detach_container\n vfio_group_fops_release\n __fput\n\nAlthough pci_device_is_present() is slower than\npci_dev_is_disconnected(), it still takes only ~70 µs on a\nConnectX-5 (8 GT/s, x2) and becomes even faster as PCIe speed\nand width increase.\n\nBesides, devtlb_invalidation_with_pasid() is called only in the\npaths below, which are far less frequent than memory map/unmap.\n\n1. mm-struct release\n2. {attach,release}_dev\n3. set/remove PASID\n4. dirty-tracking setup\n\nThe gain in system stability far outweighs the negligible cost\nof using pci_device_is_present() instead of pci_dev_is_disconnected()\nto decide when to skip ATS invalidation, especially under GDR\nhigh-load conditions.","publishedAt":"2026-05-06T11:27:18.825Z","updatedAt":"2026-05-23T16:06:22.409Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"f873b85ec762c5a6abe94a7ddb31df5d3ba07d85","status":"affected","lessThan":"581ce094d9eafb78ec4f9de77bd24b780c151236","versionType":"git"},{"version":"d70f1c85113cd8c2aa8373f491ca5d1b22ec0554","status":"affected","lessThan":"e2c78c69f8faf2885ea4ceee08c71ac738f401a0","versionType":"git"},{"version":"34a7b30f56d30114bf4d436e4dc793afe326fbcf","status":"affected","lessThan":"ead67d0378e90f419e385a43af29435242d80c12","versionType":"git"},{"version":"2b74b2a92e524d7c8dec8e02e95ecf18b667c062","status":"affected","lessThan":"01aed2f1d7cb8fdf4c60c5bb4727608cb82b401d","versionType":"git"},{"version":"4fc82cd907ac075648789cc3a00877778aa1838b","status":"affected","lessThan":"9813306610d0d718c863aaa70928bf57d7570ec0","versionType":"git"},{"version":"4fc82cd907ac075648789cc3a00877778aa1838b","status":"affected","lessThan":"9deaacc8dcaddb6ddc5b52e1e63b457450ec0f94","versionType":"git"},{"version":"4fc82cd907ac075648789cc3a00877778aa1838b","status":"affected","lessThan":"0da6697e577023d8867c7beb2d16a22510e4eea9","versionType":"git"},{"version":"4fc82cd907ac075648789cc3a00877778aa1838b","status":"affected","lessThan":"10e60d87813989e20eac1f3eda30b3bae461e7f9","versionType":"git"},{"version":"c04f2780919f20e2cc4846764221f5e802555868","status":"affected","versionType":"git"},{"version":"025bc6b41e020aeb1e71f84ae3ffce945026de05","status":"affected","versionType":"git"},{"version":"5.10.214","status":"affected","lessThan":"5.10.252","versionType":"semver"},{"version":"5.15.153","status":"affected","lessThan":"5.15.202","versionType":"semver"},{"version":"6.1.83","status":"affected","lessThan":"6.1.165","versionType":"semver"},{"version":"6.6.23","status":"affected","lessThan":"6.6.128","versionType":"semver"},{"version":"6.7.11","status":"affected","lessThan":"6.8","versionType":"semver"},{"version":"6.8.2","status":"affected","lessThan":"6.9","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/iommu/intel/pasid.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.9","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.9","versionType":"semver"},{"version":"5.10.252","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.202","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.165","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.128","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.75","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.16","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.6","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/iommu/intel/pasid.c"]}],"references":["https://git.kernel.org/stable/c/581ce094d9eafb78ec4f9de77bd24b780c151236","https://git.kernel.org/stable/c/e2c78c69f8faf2885ea4ceee08c71ac738f401a0","https://git.kernel.org/stable/c/ead67d0378e90f419e385a43af29435242d80c12","https://git.kernel.org/stable/c/01aed2f1d7cb8fdf4c60c5bb4727608cb82b401d","https://git.kernel.org/stable/c/9813306610d0d718c863aaa70928bf57d7570ec0","https://git.kernel.org/stable/c/9deaacc8dcaddb6ddc5b52e1e63b457450ec0f94","https://git.kernel.org/stable/c/0da6697e577023d8867c7beb2d16a22510e4eea9","https://git.kernel.org/stable/c/10e60d87813989e20eac1f3eda30b3bae461e7f9"],"weaknesses":[],"ingestedAt":"2026-10-29T20:11:57.932Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/43xxx/CVE-2026-43130.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-43130","state":"PUBLISHED","datePublished":"2026-05-06T11:27:18.825Z","dateUpdated":"2026-05-23T16:06:22.409Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-05-01T14:12:55.988Z"},"containers":{"cna":{"title":"iommu/vt-d: Flush dev-IOTLB only when PCIe device is accessible in scalable mode","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\niommu/vt-d: Flush dev-IOTLB only when PCIe device is accessible in scalable mode\n\nCommit 4fc82cd907ac (\"iommu/vt-d: Don't issue ATS Invalidation\nrequest when device is disconnected\") relies on\npci_dev_is_disconnected() to skip ATS invalidation for\nsafely-removed devices, but it does not cover link-down caused\nby faults, which can still hard-lock the system.\n\nFor example, if a VM fails to connect to the PCIe device,\n\"virsh destroy\" is executed to release resources and isolate\nthe fault, but a hard-lockup occurs while releasing the group fd.\n\nCall Trace:\n qi_submit_sync\n qi_flush_dev_iotlb\n intel_pasid_tear_down_entry\n device_block_translation\n blocking_domain_attach_dev\n __iommu_attach_device\n __iommu_device_set_domain\n __iommu_group_set_domain_internal\n iommu_detach_group\n vfio_iommu_type1_detach_group\n vfio_group_detach_container\n vfio_group_fops_release\n __fput\n\nAlthough pci_device_is_present() is slower than\npci_dev_is_disconnected(), it still takes only ~70 µs on a\nConnectX-5 (8 GT/s, x2) and becomes even faster as PCIe speed\nand width increase.\n\nBesides, devtlb_invalidation_with_pasid() is called only in the\npaths below, which are far less frequent than memory map/unmap.\n\n1. mm-struct release\n2. {attach,release}_dev\n3. set/remove PASID\n4. dirty-tracking setup\n\nThe gain in system stability far outweighs the negligible cost\nof using pci_device_is_present() instead of pci_dev_is_disconnected()\nto decide when to skip ATS invalidation, especially under GDR\nhigh-load conditions."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"f873b85ec762c5a6abe94a7ddb31df5d3ba07d85","status":"affected","lessThan":"581ce094d9eafb78ec4f9de77bd24b780c151236","versionType":"git"},{"version":"d70f1c85113cd8c2aa8373f491ca5d1b22ec0554","status":"affected","lessThan":"e2c78c69f8faf2885ea4ceee08c71ac738f401a0","versionType":"git"},{"version":"34a7b30f56d30114bf4d436e4dc793afe326fbcf","status":"affected","lessThan":"ead67d0378e90f419e385a43af29435242d80c12","versionType":"git"},{"version":"2b74b2a92e524d7c8dec8e02e95ecf18b667c062","status":"affected","lessThan":"01aed2f1d7cb8fdf4c60c5bb4727608cb82b401d","versionType":"git"},{"version":"4fc82cd907ac075648789cc3a00877778aa1838b","status":"affected","lessThan":"9813306610d0d718c863aaa70928bf57d7570ec0","versionType":"git"},{"version":"4fc82cd907ac075648789cc3a00877778aa1838b","status":"affected","lessThan":"9deaacc8dcaddb6ddc5b52e1e63b457450ec0f94","versionType":"git"},{"version":"4fc82cd907ac075648789cc3a00877778aa1838b","status":"affected","lessThan":"0da6697e577023d8867c7beb2d16a22510e4eea9","versionType":"git"},{"version":"4fc82cd907ac075648789cc3a00877778aa1838b","status":"affected","lessThan":"10e60d87813989e20eac1f3eda30b3bae461e7f9","versionType":"git"},{"version":"c04f2780919f20e2cc4846764221f5e802555868","status":"affected","versionType":"git"},{"version":"025bc6b41e020aeb1e71f84ae3ffce945026de05","status":"affected","versionType":"git"},{"version":"5.10.214","status":"affected","lessThan":"5.10.252","versionType":"semver"},{"version":"5.15.153","status":"affected","lessThan":"5.15.202","versionType":"semver"},{"version":"6.1.83","status":"affected","lessThan":"6.1.165","versionType":"semver"},{"version":"6.6.23","status":"affected","lessThan":"6.6.128","versionType":"semver"},{"version":"6.7.11","status":"affected","lessThan":"6.8","versionType":"semver"},{"version":"6.8.2","status":"affected","lessThan":"6.9","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/iommu/intel/pasid.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.9","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.9","versionType":"semver"},{"version":"5.10.252","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.202","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.165","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.128","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.75","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.16","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.6","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/iommu/intel/pasid.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/581ce094d9eafb78ec4f9de77bd24b780c151236"},{"url":"https://git.kernel.org/stable/c/e2c78c69f8faf2885ea4ceee08c71ac738f401a0"},{"url":"https://git.kernel.org/stable/c/ead67d0378e90f419e385a43af29435242d80c12"},{"url":"https://git.kernel.org/stable/c/01aed2f1d7cb8fdf4c60c5bb4727608cb82b401d"},{"url":"https://git.kernel.org/stable/c/9813306610d0d718c863aaa70928bf57d7570ec0"},{"url":"https://git.kernel.org/stable/c/9deaacc8dcaddb6ddc5b52e1e63b457450ec0f94"},{"url":"https://git.kernel.org/stable/c/0da6697e577023d8867c7beb2d16a22510e4eea9"},{"url":"https://git.kernel.org/stable/c/10e60d87813989e20eac1f3eda30b3bae461e7f9"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-23T16:06:22.409Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.214","versionEndExcluding":"5.10.252"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.153","versionEndExcluding":"5.15.202"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1.83","versionEndExcluding":"6.1.165"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6.23","versionEndExcluding":"6.6.128"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.9","versionEndExcluding":"6.12.75"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.9","versionEndExcluding":"6.18.16"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.9","versionEndExcluding":"6.19.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.9","versionEndExcluding":"7.0"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.7.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.8.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}