🇰🇷 한글 설명
Linux 커널의 ti-adc161s626 ADC 드라이버에서 SPI 통신 시 스택 메모리를 DMA 작업에 사용하고 있었는데, DMA 작업에는 반드시 안전한 버퍼(DMA-safe buffer)를 사용해야 합니다. 스택 메모리 사용으로 인한 메모리 손상 및 시스템 불안정성 발생 가능성이 있습니다.
💡 쉬운 설명
Linux 센서 드라이버가 데이터 전송 시 안전하지 않은 메모리를 사용하고 있어 데이터 손상이나 시스템 오류가 발생할 수 있습니다. 안전한 메모리 영역을 사용하도록 수정이 필요합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
iio: adc: ti-adc161s626: use DMA-safe memory for spi_read()
Add a DMA-safe buffer and use it for spi_read() instead of a stack
memory. All SPI buffers must be DMA-safe.
Since we only need up to 3 bytes, we just use a u8[] instead of __be16
and __be32 and change the conversion functions appropriately.
📍 영향받는 시스템
ti-adc161s626 드라이버를 포함한 Linux 커널 (4.14 이상 수정 전 모든 버전)
⚔️ 공격 벡터
로컬 권한을 가진 공격자가 ADC 장치 파일에 반복적으로 접근하여 DMA 버퍼 오버플로우 유발
🛡️ 대응 방법
영향받는 Linux 커널을 패치된 최신 버전으로 업데이트
🔧 검증 코드
현재 커널 버전과 ti_adc161s626 드라이버 로드 상태 확인. 드라이버가 로드되어 있고 커널이 취약 버전이면 즉시 업데이트 필요
uname -r | grep -E 'el[0-9]|ubuntu' && modinfo ti_adc161s626 2>/dev/null | grep filename || echo 'Driver not loaded'