🇰🇷 한글 설명
리눅스 커널의 ppp_sync_tty 구성 요소에서 skb 헤더의 쓰기 가능 여부를 확인하지 않아 발생하는 취약점입니다. PPP 채널 브리징을 통해 전달된 데이터가 skb_cow_head()를 거치지 않을 경우, 주소 및 제어 바이트를 추가하는 과정에서 기존 데이터를 덮어쓸 수 있습니다.
💡 쉬운 설명
네트워크 데이터를 처리하는 과정에서 메모리 공간을 안전하게 확보하지 않아, 다른 데이터가 의도치 않게 수정될 수 있는 문제입니다. 이로 인해 데이터가 오염되거나 보안상 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ppp_synctty: ensure a writeable skb header
ppp_sync_txmunge() checks headroom before prepending the address and
control bytes, but does not ensure that the skb header is writable.
A received skb can reach this function through PPP channel bridging
without passing through ppp_start_xmit(), which calls skb_cow_head().
For example, a PPPoE frame may share its buffer with a clone queued to
an AF_PACKET socket. If it is bridged to a synchronous tty channel, the
address/control bytes can overwrite data still visible to that socket.
Use skb_cow_head() to ensure both sufficient headroom and a writable
header.
📍 영향받는 시스템
PPP 채널 브리징 기능을 사용하는 리눅스 커널 버전
⚔️ 공격 벡터
PPPoE 프레임이 AF_PACKET 소켓과 버퍼를 공유하는 상태에서 동기식 tty 채널로 브리징될 때 발생
🛡️ 대응 방법
skb_cow_head() 함수를 호출하여 충분한 헤드룸 확보와 헤더의 쓰기 가능 상태를 보장하도록 커널 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 최신 보안 패치 버전인지 확인