🔍 CVE-2026-99062

0.0
CVSS Score
UNKNOWN
2026-10-23
2026-10-23 13:17
✅ 완료

🇰🇷 한글 설명

Linux 커널 VSOCK/virtio 모듈의 virtio_transport_read_skb() 함수에서 부분 수신 후 rx_bytes 카운터가 잘못 계산되어 언더플로가 발생합니다. 이로 인해 SIOCINQ 값이 음수가 되고, 큐에 남은 데이터가 숨겨지거나 소켓이 잘못 readable로 보고될 수 있습니다. 수정은 읽지 않은 바이트만 rx_bytes에서 차감하도록 변경하는 것입니다.

💡 쉬운 설명

가상 머신과 호스트 간 통신 기능에서 데이터 개수를 세는 계산이 잘못되어 일부 데이터가 보이지 않거나 잘못된 상태로 표시될 수 있습니다. 이는 서비스 장애나 데이터 처리 오류로 이어질 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: vsock/virtio: account only unread bytes in read_skb() After a partial stream receive, rx_bytes tracks the unread suffix while buf_used and peer credit still cover the whole packet. virtio_transport_read_skb() dequeues that packet but passes pkt_len for both counters, underflowing rx_bytes. On a connected CID_LOCAL stream with an SK_SKB verdict, a 40-byte read from a 100-byte packet made SIOCINQ report -40, an empty recv return ELOOP, and poll report the empty socket readable. After verdict detach, receiving 40 bytes wrapped the counter to zero and hid those queued bytes until one more byte arrived. The fixed run kept the counter balanced and exposed all queued data immediately. This was found during an LLM-assisted manual source audit of VSOCK receive accounting while re-evaluating virtio_transport_read_skb() after CVE-2024-50169. Subtract only skb->len minus the VSOCK offset from rx_bytes. Retain the full packet length for buf_used and peer credit.

📍 영향받는 시스템

VSOCK(virtio) 기능을 사용하는 Linux 커널 (수정 커밋 이전 버전, 구체적 버전 범위는 확인 필요)

⚔️ 공격 벡터

로컬에서 VSOCK 연결을 사용하는 권한 있는 프로세스가 부분 읽기와 SK_SKB 판정 조합을 유발해 카운터 불일치를 만드는 방식으로 추정되며, 공개된 정보상 원격 공격 경로는 확인되지 않음

🛡️ 대응 방법

사용 중인 배포판의 최신 커널 업데이트를 적용하여 수정된 virtio_transport_read_skb() 로직을 포함하도록 합니다.

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지 또는 upstream 수정 커밋과 대조하여, 해당 수정이 포함된 버전인지 확인합니다. 수정 이전 버전이면 커널 업데이트가 필요합니다.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel