🇰🇷 한글 설명
Linux 커널의 parisc 아키텍처에서 DMA 정렬 값이 너무 작게 설정되어 데이터 오염이 발생할 수 있는 취약점입니다. ARCH_DMA_MINALIGN 값을 캐시 라인 크기에 맞춰 상향 조정하여 DMA 작업 시 다른 메모리 영역의 데이터가 손상되는 문제를 해결했습니다.
💡 쉬운 설명
컴퓨터가 데이터를 주고받을 때 메모리 공간을 나누는 기준이 너무 좁아서, 서로 다른 데이터가 같은 공간을 공유하며 섞이는 문제가 있었습니다. 이로 인해 데이터가 깨지거나 잘못된 값이 저장될 위험이 있었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
parisc: fix a possible DMA corruption
ARCH_DMA_MINALIGN was defined as 16 - this is too small - it may be
possible that two unrelated 16-byte allocations share a cache line. If
one of these allocations is written using DMA and the other is written
using cached write, the value that was written with DMA may be
corrupted.
This commit changes ARCH_DMA_MINALIGN to be 128 on PA20 and 32 on PA1.1 -
that's the largest possible cache line size.
As different parisc microarchitectures have different cache line size, we
define arch_slab_minalign(), cache_line_size() and
dma_get_cache_alignment() so that the kernel may tune slab cache
parameters dynamically, based on the detected cache line size.
📍 영향받는 시스템
Linux kernel (parisc architecture: PA20, PA1.1)
⚔️ 공격 벡터
특정 하드웨어 아키텍처에서 DMA를 사용하는 프로세스가 메모리 정렬 오류를 이용해 인접한 데이터를 오염시킴
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 ARCH_DMA_MINALIGN 설정이 수정된 커널을 사용하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.