In the Linux kernel, the following vulnerability has been resolved:
iommu/vt-d: Use device rbtree in iopf reporting path
The existing I/O page fault handler currently locates the PCI device by calling pcigetdomainbusandslot(). This function searches the list of all PCI devices until the desired device is found. To improve lookup efficiency, replace it with devicerbtree_find() to search the device within the probed device rbtree.
The I/O page fault is initiated by the device, which does not have any synchronization mechanism with the software to ensure that the device stays in the probed device tree. Theoretically, a device could be released by the IOMMU subsystem after devicerbtreefind() and before iopfgetdevfaultparam(), which would cause a use-after-free problem.
Add a mutex to synchronize the I/O page fault reporting path and the IOMMU release device path. This lock doesn't introduce any performance overhead, as the conflict between I/O page fault reporting and device releasing is very rare.
[
    {
        "id": "CVE-2024-35843-05ba11e6",
        "target": {
            "file": "drivers/iommu/intel/dmar.c"
        },
        "signature_type": "Line",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d39238991e745c5df85785604f037f35d9d1b15",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "28233042689581404638580321474453929181",
                "317564259901379273803598359370079291346",
                "225579458258076712026240588835942141006",
                "132611814653994684913773421603272318393"
            ]
        },
        "deprecated": false,
        "signature_version": "v1"
    },
    {
        "id": "CVE-2024-35843-1049c897",
        "target": {
            "function": "prq_event_thread",
            "file": "drivers/iommu/intel/svm.c"
        },
        "signature_type": "Function",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def054b01a867822254e1dda13d587f5c7a99e2a",
        "digest": {
            "function_hash": "303253984311866850574611906024817911554",
            "length": 2195.0
        },
        "deprecated": false,
        "signature_version": "v1"
    },
    {
        "id": "CVE-2024-35843-16557253",
        "target": {
            "function": "alloc_iommu",
            "file": "drivers/iommu/intel/dmar.c"
        },
        "signature_type": "Function",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d39238991e745c5df85785604f037f35d9d1b15",
        "digest": {
            "function_hash": "67251633691984299762822134742943893915",
            "length": 2690.0
        },
        "deprecated": false,
        "signature_version": "v1"
    },
    {
        "id": "CVE-2024-35843-28bec286",
        "target": {
            "function": "alloc_iommu",
            "file": "drivers/iommu/intel/dmar.c"
        },
        "signature_type": "Function",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def054b01a867822254e1dda13d587f5c7a99e2a",
        "digest": {
            "function_hash": "67251633691984299762822134742943893915",
            "length": 2690.0
        },
        "deprecated": false,
        "signature_version": "v1"
    },
    {
        "id": "CVE-2024-35843-2e52619e",
        "target": {
            "file": "drivers/iommu/intel/iommu.h"
        },
        "signature_type": "Line",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d39238991e745c5df85785604f037f35d9d1b15",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "332767941108856905367581380923692993682",
                "216107382889560692183179075483121259555",
                "296822471957071272773550713565156356496",
                "238520149396546845094108000518584784602"
            ]
        },
        "deprecated": false,
        "signature_version": "v1"
    },
    {
        "id": "CVE-2024-35843-3a91d65c",
        "target": {
            "file": "drivers/iommu/intel/svm.c"
        },
        "signature_type": "Line",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d39238991e745c5df85785604f037f35d9d1b15",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "91041953678800398857752302088747634292",
                "287536045530044073158884786246335975675",
                "310628707121221363591967640453926467238",
                "234990705870368065946561490699802958964",
                "36278719728401305695699243803482937809",
                "257013104167360355362018499336218452820",
                "132853425212172317072409479939812480798",
                "16859618668681695119563294139071289571",
                "133302770444085595611592366762015953758",
                "136605266777123111264840201913834166582",
                "116266540770508858659184310427106674589",
                "96473026821152896063001533312112863501",
                "286208630915514438808081646038764256881",
                "50901048438082895168694784624649893196",
                "184298211250441089661125156449115292514",
                "311660521008776475193942739371264987684",
                "196419463674387736030870883966685175855",
                "283552279264939210132483671651507180491",
                "84618477959179610311913771633846775262"
            ]
        },
        "deprecated": false,
        "signature_version": "v1"
    },
    {
        "id": "CVE-2024-35843-48f32b05",
        "target": {
            "file": "drivers/iommu/intel/iommu.c"
        },
        "signature_type": "Line",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def054b01a867822254e1dda13d587f5c7a99e2a",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "152740115542934779582287712267081565305",
                "47095251848403806257207747287339345687",
                "337659689732910227393493631313840920851",
                "131297457974004173797230007707635499863",
                "147407247479824246868515672351881835750"
            ]
        },
        "deprecated": false,
        "signature_version": "v1"
    },
    {
        "id": "CVE-2024-35843-5bef8939",
        "target": {
            "function": "intel_iommu_release_device",
            "file": "drivers/iommu/intel/iommu.c"
        },
        "signature_type": "Function",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def054b01a867822254e1dda13d587f5c7a99e2a",
        "digest": {
            "function_hash": "323553198001773739659695777242218875121",
            "length": 205.0
        },
        "deprecated": false,
        "signature_version": "v1"
    },
    {
        "id": "CVE-2024-35843-8387a897",
        "target": {
            "function": "prq_event_thread",
            "file": "drivers/iommu/intel/svm.c"
        },
        "signature_type": "Function",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d39238991e745c5df85785604f037f35d9d1b15",
        "digest": {
            "function_hash": "303253984311866850574611906024817911554",
            "length": 2195.0
        },
        "deprecated": false,
        "signature_version": "v1"
    },
    {
        "id": "CVE-2024-35843-8d3e8289",
        "target": {
            "file": "drivers/iommu/intel/dmar.c"
        },
        "signature_type": "Line",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def054b01a867822254e1dda13d587f5c7a99e2a",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "28233042689581404638580321474453929181",
                "317564259901379273803598359370079291346",
                "225579458258076712026240588835942141006",
                "132611814653994684913773421603272318393"
            ]
        },
        "deprecated": false,
        "signature_version": "v1"
    },
    {
        "id": "CVE-2024-35843-9b5f231e",
        "target": {
            "file": "drivers/iommu/intel/svm.c"
        },
        "signature_type": "Line",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def054b01a867822254e1dda13d587f5c7a99e2a",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "91041953678800398857752302088747634292",
                "287536045530044073158884786246335975675",
                "310628707121221363591967640453926467238",
                "234990705870368065946561490699802958964",
                "36278719728401305695699243803482937809",
                "257013104167360355362018499336218452820",
                "132853425212172317072409479939812480798",
                "16859618668681695119563294139071289571",
                "133302770444085595611592366762015953758",
                "136605266777123111264840201913834166582",
                "116266540770508858659184310427106674589",
                "96473026821152896063001533312112863501",
                "286208630915514438808081646038764256881",
                "50901048438082895168694784624649893196",
                "184298211250441089661125156449115292514",
                "311660521008776475193942739371264987684",
                "196419463674387736030870883966685175855",
                "283552279264939210132483671651507180491",
                "84618477959179610311913771633846775262"
            ]
        },
        "deprecated": false,
        "signature_version": "v1"
    },
    {
        "id": "CVE-2024-35843-a21208a6",
        "target": {
            "function": "intel_iommu_release_device",
            "file": "drivers/iommu/intel/iommu.c"
        },
        "signature_type": "Function",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d39238991e745c5df85785604f037f35d9d1b15",
        "digest": {
            "function_hash": "323553198001773739659695777242218875121",
            "length": 205.0
        },
        "deprecated": false,
        "signature_version": "v1"
    },
    {
        "id": "CVE-2024-35843-bdbf25dc",
        "target": {
            "file": "drivers/iommu/intel/iommu.h"
        },
        "signature_type": "Line",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@def054b01a867822254e1dda13d587f5c7a99e2a",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "332767941108856905367581380923692993682",
                "216107382889560692183179075483121259555",
                "296822471957071272773550713565156356496",
                "238520149396546845094108000518584784602"
            ]
        },
        "deprecated": false,
        "signature_version": "v1"
    },
    {
        "id": "CVE-2024-35843-ce8f94da",
        "target": {
            "file": "drivers/iommu/intel/iommu.c"
        },
        "signature_type": "Line",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d39238991e745c5df85785604f037f35d9d1b15",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "152740115542934779582287712267081565305",
                "47095251848403806257207747287339345687",
                "337659689732910227393493631313840920851",
                "131297457974004173797230007707635499863",
                "147407247479824246868515672351881835750"
            ]
        },
        "deprecated": false,
        "signature_version": "v1"
    }
]