{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2025-38283", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2025-04-16T04:51:24.000Z", "datePublished": "2025-07-10T07:42:01.018Z", "dateUpdated": "2026-08-05T12:00:58.088Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T12:00:58.088Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nhisi_acc_vfio_pci: bugfix live migration function without VF device driver\n\nIf the VF device driver is not loaded in the Guest OS and we attempt to\nperform device data migration, the address of the migrated data will\nbe NULL.\nThe live migration recovery operation on the destination side will\naccess a null address value, which will cause access errors.\n\nTherefore, live migration of VMs without added VF device drivers\ndoes not require device data migration.\nIn addition, when the queue address data obtained by the destination\nis empty, device queue recovery processing will not be performed." } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H", "baseScore": 8.8, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:L - The vulnerable path is driven entirely through local file operations on a VFIO device fd — `VFIO_DEVICE_FEATURE` migration-state ioctls plus `write()` on the migration fd — with no network-facing component.\nAC:L - Triggering is fully deterministic: either leave the VF driver unloaded in the guest before migration, or simply open the device and perform STOP→RUNNING, since `vf_qm_state` defaults to `QM_READY` (0) from kzalloc. No race, timing window, or memory-layout condition is involved.\nPR:L - An unprivileged local user granted access to /dev/vfio/* or /dev/iommu (the standard libvirt/QEMU delegation model) can reach the migration state machine; no capability is required on the IOMMU-backed path, as `CAP_SYS_RAWIO` gates only VFIO_NO_IOMMU mode.\nUI:N - The attacker performs every step themselves — open device, set RESUMING, write zeroed migration data, set STOP/RUNNING — with no action required from an administrator or any other user.\nS:C - Zeroed queue-context bases make the accelerator DMA against unintended addresses in the assigned domain, and the resulting device errors escalate through `qm_abnormal_irq()` to a PF `qm_controller_reset()` that calls `qm_try_stop_vfs()`, halting every sibling VF belonging to other VMs and the host's own crypto drivers — impact well beyond the attacker's own VFIO device.\nC:H - With SQC/CQC/EQC bases set to zero the accelerator fetches queue contexts from IOVA 0 (guest physical page 0 in a typical no-vIOMMU passthrough) and follows those garbage descriptors, exposing memory never designated as queue storage through the device's queue and response path.\nI:H - The same bogus contexts cause the device to write CQEs/EQEs into arbitrary attacker-influenceable addresses in the DMA domain, silently corrupting a migrated VM's memory, while zeroed queue state is also committed into the physical VF's hardware configuration.\nA:H - The NULL-address queue programming produces AXI/queue-invalid errors in the QM reset mask, which drive `qm_abnormal_irq()` → `qm_controller_reset()`, stopping the PF and all VFs — a full accelerator outage for the host and every VM using that device, in addition to failing the migration." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c" ], "versions": [ { "version": "b0eed085903e7758532696d64397901a75bba8ba", "lessThan": "b5ef128926cd34dffa2a66607b9c82b902581ef8", "status": "affected", "versionType": "git" }, { "version": "b0eed085903e7758532696d64397901a75bba8ba", "lessThan": "59a834592dd200969fdf3c61be1cb0615c647e45", "status": "affected", "versionType": "git" }, { "version": "b0eed085903e7758532696d64397901a75bba8ba", "lessThan": "53e8e8e909f7c3a77857d09d2b733a42547f57ee", "status": "affected", "versionType": "git" }, { "version": "b0eed085903e7758532696d64397901a75bba8ba", "lessThan": "2777a40998deb36f96b6afc48bd397cf58a4edf0", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c" ], "versions": [ { "version": "5.18", "status": "affected" }, { "version": "0", "lessThan": "5.18", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.94", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.34", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.15.3", "lessThanOrEqual": "6.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.16", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.18", "versionEndExcluding": "6.6.94" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.18", "versionEndExcluding": "6.12.34" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.18", "versionEndExcluding": "6.15.3" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.18", "versionEndExcluding": "6.16" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/b5ef128926cd34dffa2a66607b9c82b902581ef8" }, { "url": "https://git.kernel.org/stable/c/59a834592dd200969fdf3c61be1cb0615c647e45" }, { "url": "https://git.kernel.org/stable/c/53e8e8e909f7c3a77857d09d2b733a42547f57ee" }, { "url": "https://git.kernel.org/stable/c/2777a40998deb36f96b6afc48bd397cf58a4edf0" } ], "title": "hisi_acc_vfio_pci: bugfix live migration function without VF device driver", "x_generator": { "engine": "bippy-1.2.0" } } } }