🇰🇷 한글 설명
Linux 커널의 rxrpc 프로토콜에서 소켓 종료와 커널 수락 사전 할당(preallocation) 간의 동기화 부재로 인해 발생하는 취약점입니다. 소켓이 해제되는 동안 커널 작업자가 이미 해제된 메모리 영역에 접근하여 데이터 구조를 업데이트함으로써 Use-After-Free 오류가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터가 통신을 정리하는 도중에 갑자기 다른 작업이 해당 메모리를 사용하려고 시도하여 발생하는 오류입니다. 이로 인해 시스템이 충돌하거나 해커가 시스템 권한을 탈취할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
rxrpc: serialize kernel accept preallocation with socket teardown
rxrpc_kernel_charge_accept() reads rx->backlog without any
socket/backlog synchronization and passes that raw pointer into
rxrpc_service_prealloc_one(). A concurrent rxrpc_discard_prealloc()
sets rx->backlog = NULL and frees the backlog rings, so a kernel
preallocation worker can keep using a freed struct rxrpc_backlog
while updating *_backlog_head/tail and array slots.
Serialize the state check and backlog lookup with the socket lock,
and reject kernel preallocation once teardown has disabled
listening or discarded the service backlog.
📍 영향받는 시스템
Linux kernel (rxrpc 프로토콜을 사용하는 시스템)
⚔️ 공격 벡터
동시성 제어 미흡을 이용한 Race Condition 공격을 통해 해제된 메모리 영역에 접근
🛡️ 대응 방법
rxrpc 관련 커널 패치가 적용된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 보안 패치 버전 이상인지 확인