🇰🇷 한글 설명
Linux 커널의 byd 드라이버에서 타이머 삭제와 프라이빗 데이터 해제 간의 동기화 문제가 발견되었습니다. byd_disconnect() 함수가 실행 중인 콜백이 완료될 때까지 기다리지 않고 데이터를 해제하여, 레이스 컨디션 상황에서 해제된 메모리에 접근하는 Use-After-Free 취약점이 발생할 수 있습니다.
💡 쉬운 설명
장치를 연결 해제할 때 컴퓨터가 데이터를 지우는 속도가 너무 빨라, 아직 사용 중인 데이터를 먼저 지워버리는 문제입니다. 이로 인해 시스템이 혼란을 겪거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Input: byd - synchronize timer deletion before freeing private data
byd_disconnect() uses timer_delete() before freeing the driver's private
data. This does not wait for a running byd_clear_touch() callback, which
dereferences the private data and its psmouse pointer. A callback racing
with disconnect can therefore access the private data after it has been
freed. The timer can also still be re-armed by byd_process_byte() while
the disconnect is in progress.
Use timer_shutdown_sync() before freeing the private data: it waits for
a running callback and turns any later re-arm attempt into a no-op.
📍 영향받는 시스템
Linux kernel (byd driver 포함 버전)
⚔️ 공격 벡터
장치 연결 해제 시 발생하는 레이스 컨디션을 이용한 Use-After-Free 공격
🛡️ 대응 방법
timer_delete() 대신 timer_shutdown_sync()를 사용하여 콜백 완료를 보장하도록 커널 패치 적용
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인합니다.