CVE-2026-72289
CVE.org · Published
- Record status
- Published
- Identifier year (not publication year)
- 2026
- Source publication
- Source updated
- Imported by cveboard
- Source snapshot
- cve_2026-10-24_midnight_baseline ·
CNA source text (English)
KVM: arm64: vgic: Check the interrupt is still ours before migrating it
In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: vgic: Check the interrupt is still ours before migrating it vgic_prune_ap_list() drops both ap_list_lock and irq_lock while migrating an interrupt to another vCPU. After reacquiring the locks it only checks that the affinity is unchanged (target_vcpu == vgic_target_oracle(irq)) before moving the interrupt, which assumes that an interrupt whose affinity is preserved is still queued on this vCPU's ap_list. That assumption no longer holds if the interrupt is taken off the ap_list while the locks are dropped. vgic_flush_pending_lpis() removes the interrupt from the list and sets irq->vcpu to NULL, but leaves enabled/pending/target_vcpu untouched. As the interrupt is still enabled and pending, vgic_target_oracle() returns the same target_vcpu, so the affinity check passes and list_del() is run a second time on an entry that has already been removed. Also check that the interrupt is still assigned to this vCPU (irq->vcpu == vcpu) before moving it.
Scoped product and version facts
Fix information unknown; no fixed version is derived here. Missing information does not prove that no fix exists.
Exploitation unknown; this catalogue does not assess exploitation.
Linux
- Vendor
- Linux
- Product
- Linux
- Platforms
- Unknown
- Default status
unaffected
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| 0919e84c0fc1fc73525fdcedefab89ea8460f697 | affected | git | 3893e1fcf6f306b327a8358dcd1cbd077989a240 | Unavailable | None listed |
| 0919e84c0fc1fc73525fdcedefab89ea8460f697 | affected | git | cb3efe1a354f1638726725c3ecee1ce8d1a7e2dc | Unavailable | None listed |
| 0919e84c0fc1fc73525fdcedefab89ea8460f697 | affected | git | da2d249a39a1881681c303ceea33f38ba1c5bbeb | Unavailable | None listed |
| 0919e84c0fc1fc73525fdcedefab89ea8460f697 | affected | git | 654be81c4c637af12709d47c7efc3302cd336513 | Unavailable | None listed |
| 0919e84c0fc1fc73525fdcedefab89ea8460f697 | affected | git | e363c0bc0226dc5ea5046a88e9a6864b82c45399 | Unavailable | None listed |
| 0919e84c0fc1fc73525fdcedefab89ea8460f697 | affected | git | 79fdd2aa774e44847cd9bb7edc811e73e3dc7bfe | Unavailable | None listed |
| 0919e84c0fc1fc73525fdcedefab89ea8460f697 | affected | git | 0658b09cba7fe866c6cd70cd2dcdfdcabe80328f | Unavailable | None listed |
| 0919e84c0fc1fc73525fdcedefab89ea8460f697 | affected | git | 0074b82cdfcb5fd13710a0ac308ade68ac6f6fbe | Unavailable | None listed |
Linux
- Vendor
- Linux
- Product
- Linux
- Platforms
- Unknown
- Default status
affected
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| 4.7 | affected | Unavailable | Unavailable | Unavailable | None listed |
| 0 | unaffected | semver | 4.7 | Unavailable | None listed |
| 5.10.261 | unaffected | semver | Unavailable | 5.10.* | None listed |
| 5.15.212 | unaffected | semver | Unavailable | 5.15.* | None listed |
| 6.1.178 | unaffected | semver | Unavailable | 6.1.* | None listed |
| 6.6.145 | unaffected | semver | Unavailable | 6.6.* | None listed |
| 6.12.97 | unaffected | semver | Unavailable | 6.12.* | None listed |
| 6.18.40 | unaffected | semver | Unavailable | 6.18.* | None listed |
| 7.1.5 | unaffected | semver | Unavailable | 7.1.* | None listed |
| 7.2 | unaffected | original_commit_for_fix | Unavailable | * | None listed |