Kestrel
대시보드로 돌아가기
CVE-2026-89956UNKNOWNMITRENVD대응게시일: 2026. 09. 16.수정일: 2026. 09. 16.CNA: 416baaa9-dc9f-4396-8d5f-8c081fb06d67Received

In the Linux kernel, the following vulnerability has been resolved: s390/vfio-ap: Fix missing lock required to access list of ap_matrix_mde

위협 신호 · CVSS · EPSS · KEV

정기 패치· 높은 악용 신호 없음
CVSS
unknown

이론적 심각도 점수

EPSS

예측 데이터 없음

KEV
미등재

실측 악용 기록 없음

권장 대응 기한60일 이내CISA SSVC 기준

계획된 패치 주기 내 조치(60일 이내)

외부 노출· KEV 미등재 · 자동화 어려움 · 부분 영향 · 외부 노출

CVSS 벡터 · 메트릭

CVSS 벡터 정보 없음

상세 설명

In the Linux kernel, the following vulnerability has been resolved:

s390/vfio-ap: Fix missing lock required to access list of ap_matrix_mdev objects

In order to traverse or add/remove ap_matrix_mdev objects in the
matrix_dev->mdev_list, the matrix_dev->guests_lock mutex must be held.
There are two functions that access the list without holding the mutex:

vfio_ap_mdev_probe function

text
1The vfio_ap_mdev_probe function uses the matrix_dev->mdevs_lock
2mutex to guard the add of a newly created ap_matrix_mdev object to the
3matrix_dev->mdev_list. This mutex does not protect list access; its purpose
4is to guard against concurrent access to fields contained in an
5ap_matrix_mdev object. This could lead to kernel memory corruption or
6use-after-free if another mdev is created or removed concurrently.
7
8The adding of an ap_matrix_mdev object to matrix_dev->mdev_list
9is now guarded by the matrix_dev->guests_lock which is the correct
10way to protect against concurrent mdev_list access.
11
12Also removed the following two lines of code because the matrix_mdev is
13allocated via vfio_alloc_device macro which uses kzalloc, so req_trigger
14and cfg_chg_trigger are already zero-initialised when the struct is
15allocated before the call to vfio_register_emulated_iommu_dev. This
16prevents a window whereby these triggers are set to NULL after
17the device is exposed to userspace.
18
19matrix_mdev->req_trigger = NULL;
20matrix_mdev->cfg_chg_trigger = NULL;
21
22vfio_ap_mdev_for_queue function

The status_show function that supports display of the status attribute of
the devices in /sys/bus/ap/devices calls the vfio_ap_mdev_for_queue
function which iterates the matrix_dev->mdev_list to find the object
representing the queue device whose status is to be displayed. In order to
traverse this list, the matrix_dev->guests_lock mutex must be held.

To fix this, the guests_lock mutex is taken prior to taking the
matrix_dev->mdevs_lock mutex in the status_show function. It is taken
there rather than the vfio_ap_mdev_for_queue function - where it is
needed - because it must be taken prior to the mdevs_lock mutex in order to
adhere to the proper locking order and prevent a lockdep splat; also
because the mdevs_lock is needed there to access fields within
the matrix_mdev object in that function.

See the vfio-ap-locking.rst in the linux kernel tree.

AI 심층 분석

공격 시나리오 · 재현 가능한 PoC 페이로드 · 즉시 적용 가능한 차단 패치를 한 번에 받아 보세요. 보안 운영팀이 그대로 점검·티켓팅에 쓸 수 있는 형태로 정리해 드립니다.