🇰🇷 한글 설명
Linux 커널의 pds_core 모듈에서 보조 장치를 추가하거나 삭제할 때 발생하는 레이스 컨디션 취약점입니다. 장치 추가 시 슬롯 확인 절차가 누락되어 장치 누수가 발생하거나, 삭제 시 동기화 문제로 인해 NULL 포인터 역참조가 발생할 수 있습니다.
💡 쉬운 설명
장치를 추가하거나 삭제하는 과정에서 두 작업이 동시에 일어나 충돌이 발생하는 문제입니다. 이로 인해 시스템 자원이 낭비되거나 시스템이 갑자기 멈추는 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
pds_core: fix auxiliary device add/del races
Two paths add or delete the same slot (pf->vfs[vf_id].padev): a VF's
pdsc_reset_done() and the PF's devlink enable_vnet/disable_vnet handler.
They serialize on config_lock, but neither guards the slot under it
correctly.
add() registers and stores a new auxiliary device without first checking
the slot, so a second add of an already-populated slot leaks the first
device. del() makes that check outside config_lock, so two concurrent
dels can both pass it; the first clears the slot, and the second
dereferences a NULL pointer.
Check and update the slot under config_lock in both paths.
📍 영향받는 시스템
Linux kernel (pds_core 모듈을 사용하는 시스템)
⚔️ 공격 벡터
동시에 장치를 추가하거나 삭제하는 명령을 실행하여 레이스 컨디션 유도
🛡️ 대응 방법
커널 패치를 적용하여 config_lock 범위 내에서 슬롯 확인 및 업데이트가 이루어지도록 수정
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전인지 확인