🇰🇷 한글 설명
Linux 커널의 fsl_ucc_hdlc 드라이버에서 DMA 메모리 할당/해제 불일치 문제. uhdlc_init()에서 연속 메모리로 할당한 rx_buffer와 tx_buffer를 uhdlc_memclean()에서 별도로 해제하여 메모리 손상 및 커널 패닉 유발.
💡 쉬운 설명
메모리를 한 덩어리로 할당했는데 두 조각으로 나누어 해제하려고 해서 발생하는 메모리 관리 오류입니다. 시스템 불안정이나 커널 크래시를 초래할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: wan/fsl_ucc_hdlc: Fix dma_free_coherent() in uhdlc_memclean()
The priv->rx_buffer and priv->tx_buffer are alloc'd together as
contiguous buffers in uhdlc_init() but freed as two buffers in
uhdlc_memclean().
Change the cleanup to only call dma_free_coherent() once on the whole
buffer.
📍 영향받는 시스템
Linux kernel의 net/wan/fsl_ucc_hdlc 드라이버 (PowerPC 기반 임베디드/통신 시스템)
⚔️ 공격 벡터
로컬 드라이버 로드/언로드 시 또는 네트워크 인터페이스 활성화/비활성화 시 메모리 손상으로 인한 시스템 오류 유발
🛡️ 대응 방법
Linux kernel 공식 패치 적용 또는 최신 kernel 버전으로 업데이트 (fix commit 반영 버전)
🔧 검증 코드
첫 번째 명령으로 fsl_ucc_hdlc 드라이버 포함 여부 확인, 두 번째로 최근 커널 로그에서 해당 드라이버 오류 기록 확인 (오류 없으면 안전)
grep -i 'fsl_ucc_hdlc' /boot/config-$(uname -r) && dmesg | grep -i 'uhdlc\|fsl_ucc' | tail -5