🇰🇷 한글 설명
리눅스 커널의 n_gsm 모듈에서 연결이 끊긴 상태에서 상태 라인이 변경될 때 발생하는 레이스 컨디션 취약점입니다. 정리 절차 중에 데이터가 추가되거나 타이머가 재시작되면서 이미 제거된 리소스에 접근하게 되어 커널 패닉이 발생할 수 있습니다.
💡 쉬운 설명
통신 연결이 끊어지는 과정에서 시스템이 정리 작업을 수행하던 중, 갑자기 새로운 데이터가 들어오려고 시도하여 시스템이 충돌하는 문제입니다. 이로 인해 컴퓨터가 갑자기 멈추거나 재부팅될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
tty: n_gsm: fix race condition in status line change on dead connections
gsm_cleanup_mux() cleans up the gsm by closing all DLCIs, stopping all
timers, removing the virtual tty devices and clearing the data queues.
This procedure, however, may cause subsequent changes of the virtual modem
status lines of a DLCI. More data is being added the outgoing data queue
and the deleted kick timer is restarted to handle this. At this point many
resources have already been removed by the cleanup procedure. Thus, a
kernel panic occurs.
Fix this by proving in gsm_modem_update() that the cleanup procedure has
not been started and the mux is still alive.
Note that writing to a virtual tty is already protected by checks against
the DLCI specific connection state.
📍 영향받는 시스템
Linux kernel (n_gsm module 사용 환경)
⚔️ 공격 벡터
특수하게 조작된 GSM 통신 패킷을 전송하여 연결 종료 시점에 레이스 컨디션을 유발
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인