CVE-2026-74573
NieznaneStreszczenie
W jądrze Linuxa w podsystemie iommu/arm-smmu-v3-iommufd występuje podatność polegająca na tym, że funkcja arm_vsmmu_vsid_to_sid() mapuje vSID gościa do pojedynczego fizycznego Stream ID, zakładając, że urządzenie ma dokładnie jeden strumień. Urządzenia z wieloma strumieniami mają mapowany tylko pierwszy, co powoduje, że unieważnienia vSID nie docierają do pozostałych wpisów ATC i IOTLB; urządzenia bez strumieni powodują odczyt poza zakresem. Poprawka dodaje operację arm_vsmmu_vdevice_init() odrzucającą vDEVICE z -EOPNOTSUPP, gdy master->num_streams nie jest równe jeden.
Ocena ryzyka
Ryzyko obejmuje potencjalny wyciek informacji lub awarię systemu z powodu odczytu poza zakresem, a także nieskuteczne unieważnianie wpisów TLB, co może prowadzić do nieautoryzowanego dostępu do pamięci. Wymaga to jednak uprawnień do konfigurowania urządzeń vDEVICE w środowisku virtualizacji.
Rekomendacja
Zaleca się aktualizację jądra Linuxa do wersji zawierającej poprawkę dla tego problemu. Należy również upewnić się, że konfiguracja vDEVICE w środowiskach wirtualizowanych jest zgodna z wymaganiami sterownika.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: iommu/arm-smmu-v3-iommufd: Require exactly one Stream ID for a vDEVICE arm_vsmmu_vsid_to_sid() maps a guest's vSID to a single physical Stream ID taken from master->streams[0], assuming a device has exactly one stream. A device with several streams gets only its first one mapped, so a guest vSID invalidation cannot reach the others' ATC and IOTLB entries; a device with none makes master->streams a ZERO_SIZE_PTR, read out of bounds. Add an arm_vsmmu_vdevice_init() op to reject the vDEVICE with -EOPNOTSUPP when master->num_streams is not one, rather than mapping it silently.

