🇰🇷 한글 설명
Linux 커널 mana 네트워크 드라이버의 mana_gd_setup() 함수에서 에러 발생 시 서비스 워크큐 포인터를 NULL로 설정하지 않아 발생하는 use-after-free 취약점입니다. 실패한 설정 후 워크큐 포인터가 재사용될 때 이중 해제 또는 메모리 손상을 유발할 수 있습니다.
💡 쉬운 설명
Linux 커널의 네트워크 드라이버에서 초기화 실패 시 메모리 정리가 제대로 되지 않아, 삭제된 메모리에 접근하려고 할 때 시스템이 충돌하거나 악용될 수 있습니다. 로컬 공격자가 특정 조건을 만족할 경우 커널 수준의 코드 실행이 가능합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net/mana: Null service_wq on setup error to prevent double destroy
In mana_gd_setup() error path, set gc->service_wq to NULL after
destroy_workqueue() to match the cleanup in mana_gd_cleanup().
This prevents a use-after-free if the workqueue pointer is checked
after a failed setup.
📍 영향받는 시스템
Linux kernel 5.15+ (Azure Mana Network Interface Card 드라이버 포함 시스템)
⚔️ 공격 벡터
로컬 권한 상승 또는 메모리 손상을 통한 커널 코드 실행
🛡️ 대응 방법
Linux 커널을 최신 패치 버전으로 업데이트하여 mana_gd_setup() 함수의 에러 처리 로직 수정
🔧 검증 코드
시스템에 Mana 네트워크 드라이버가 설치되어 있는지 확인합니다. 'MANA driver present'가 출력되면 커널 버전 확인 후 보안 업데이트 필요 여부를 판단하세요.
grep -q 'mana_gd_setup' /usr/src/linux-headers-$(uname -r)/drivers/net/ethernet/microsoft/mana/gdma_main.c && echo 'MANA driver present' || echo 'MANA driver not found'