🇰🇷 한글 설명
Linux 커널의 slip 네트워크 드라이버에서 MTU 변경 시 버퍼 재할당과 데이터 수신 프로세스 간의 동기화 문제로 인해 발생합니다. MTU 크기가 줄어들 때 기존의 큰 크기 경계값을 사용하여 작은 버퍼에 데이터를 쓰게 되어 경계 외 쓰기(Out-of-bounds write)가 발생할 수 있습니다.
💡 쉬운 설명
네트워크 설정이 바뀌는 순간에 데이터가 들어오면, 컴퓨터가 데이터가 들어갈 공간을 잘못 계산하여 허용된 범위를 넘어 데이터를 저장하는 오류입니다. 이로 인해 시스템이 불안정해지거나 해킹의 위험이 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: slip: serialize receive against buffer reallocation
sl_realloc_bufs() replaces rbuff and updates buffsize while holding
sl->lock. slip_receive_buf() reads those fields and writes through rbuff
without holding the lock.
An MTU change can therefore race with receive processing. An MTU shrink
can expose the new smaller rbuff with the old larger bound, causing an
out-of-bounds write. A receive callback which already loaded the old
rbuff can instead continue writing after that buffer has been freed.
Serialize receive processing with sl_realloc_bufs() by holding sl->lock
while consuming each receive batch.
📍 영향받는 시스템
Linux kernel (slip network driver module)
⚔️ 공격 벡터
MTU 크기 변경과 데이터 수신을 동시에 유도하는 레이스 컨디션(Race Condition) 공격
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 sl_realloc_bufs()와 slip_receive_buf() 간의 잠금(lock) 동기화를 적용해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 이후의 버전인지 확인합니다.