CVE-2026-99133 in Linux
요약
\~에 의해 VulDB • 2026. 10. 29.
리눅스 커널에서 다음 취약점이 해결되었습니다:
net/iucv: recvmsg 창 업데이트 수정
iucv_sock_recvmsg()은 전송 방식을 테스트하지 않고 HiperSockets 전용 AF_IUCV_FLAG_WIN 플래그를 전송하므로, 클래식 z/VM 소켓의 경우 iucv_send_ctrl()가 NULL인 iucv->hs_dev을 통해 skb 크기를 조정합니다. SO_MSGLIMIT는 1을 허용하므로 msglimit / 2는 0이 되며, 자체 소켓에서 recvmsg() 호출 한 번만으로도 비특권 프로세스가 잘못된 연결 해제를 유발할 수 있습니다.
또한 이 함수는 spin_lock_bh(&message_q.lock) 하에서 iucv_send_ctrl()를 호출하는데, 이는 코드가 원자적(atomic)으로 처리하는 섹션 내에서 GFP_KERNEL 할당을 수행합니다. 해당 잠금 외부로 전송하면 두 개의 recvmsg()가 동시에 afiucv_hs_send()에 도달하여, msg_recv이 광고된 창(advertised window)을 위해 샘플링되고 dev_queue_xmit() 이후 감산됩니다. 또한 sendmsg는 lock_sock() 하에서 이 카운터에 접근하는 반면, recvmsg는 소켓 잠금을 보유하지 않으므로 둘 다 동일한 값을 감산할 수 있으며, 이로 인해 카운터가 음수가 되고 크레딧이 피어(peer)에게 두 번 도달하게 됩니다.
전송 방식을 테스트하고, 마지막 오류 종료 후 atomic_xchg()를 사용하여 크레딧을 주장하며 전송 실패 시 이를 반환한 다음, 잠금이 해제된 후에 한 번만 전송합니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.