🇰🇷 한글 설명
Linux 커널의 ntb_hw_switchtec 드라이버에서 레이스 컨디션으로 인한 Use-After-Free(UAF) 취약점이 발견되었습니다. 모듈 제거 시 정리 작업이 완료되기 전에 메모리가 해제되어, 실행 중인 작업이 해제된 메모리에 접근할 수 있는 문제가 있습니다.
💡 쉬운 설명
컴퓨터 부품을 제거하는 과정에서, 아직 사용 중인 데이터를 먼저 지워버려 발생하는 오류입니다. 이로 인해 시스템이 갑자기 멈추거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ntb: ntb_hw_switchtec: Fix use after free vulnerability in switchtec_ntb_remove due to race condition
In the switchtec_ntb_add function, it can call switchtec_ntb_init_sndev
function, then &sndev->check_link_status_work is bound with
check_link_status_work. switchtec_ntb_link_notification may be called
to start the work.
If we remove the module which will call switchtec_ntb_remove to make
cleanup, it will free sndev through kfree(sndev), while the work
mentioned above will be used. The sequence of operations that may lead
to a UAF bug is as follows:
CPU0 CPU1
| check_link_status_work
switchtec_ntb_remove |
kfree(sndev); |
| if (sndev->link_force_down)
| // use sndev
Fix it by ensuring that the work is canceled before proceeding with
the cleanup in switchtec_ntb_remove.
📍 영향받는 시스템
Linux kernel (ntb_hw_switchtec 드라이버 포함 버전)
⚔️ 공격 벡터
로컬 공격자가 특정 조건에서 모듈을 제거하거나 로드하여 레이스 컨디션을 유도함으로써 발생 가능
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 switchtec_ntb_remove 시 작업 취소 로직을 적용해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인