🇰🇷 한글 설명
Linux 커널의 ether3 드라이버에서 레이스 컨디션으로 인한 Use-After-Free(UAF) 취약점이 발견되었습니다. 장치 제거 시 타이머가 적절히 취소되지 않아, 이미 해제된 메모리 영역에 접근하여 시스템 불안정이나 권한 상승을 유발할 수 있습니다.
💡 쉬운 설명
장치를 제거하는 과정에서 컴퓨터가 아직 사용 중인 메모리를 실수로 지워버리는 문제가 있습니다. 이로 인해 프로그램이 갑자기 종료되거나 해커가 시스템을 제어할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: seeq: Fix use after free vulnerability in ether3 Driver Due to Race Condition
In the ether3_probe function, a timer is initialized with a callback
function ether3_ledoff, bound to &prev(dev)->timer. Once the timer is
started, there is a risk of a race condition if the module or device
is removed, triggering the ether3_remove function to perform cleanup.
The sequence of operations that may lead to a UAF bug is as follows:
CPU0 CPU1
| ether3_ledoff
ether3_remove |
free_netdev(dev); |
put_devic |
kfree(dev); |
| ether3_outw(priv(dev)->regs.config2 |= CFG2_CTRLO, REG_CONFIG2);
| // use dev
Fix it by ensuring that the timer is canceled before proceeding with
the cleanup in ether3_remove.
📍 영향받는 시스템
Linux kernel (ether3 driver 포함 버전)
⚔️ 공격 벡터
장치 제거 및 모듈 언로드 시 발생하는 레이스 컨디션을 이용한 메모리 접근
🛡️ 대응 방법
ether3_remove 함수 내에서 메모리 해제 전 타이머를 먼저 취소하도록 커널 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 최신 보안 패치 버전인지 확인