🇰🇷 한글 설명
Linux 커널의 ASoC sma1307 코덱 드라이버에서 메모리 손상 취약점이 발견되었습니다. 헤더 크기를 계산할 때 정수 개수만큼의 공간을 할당해야 하나, 정수 개수만큼의 바이트만 할당하여 데이터 복사 시 메모리 오염이 발생합니다.
💡 쉬운 설명
컴퓨터가 데이터를 저장할 공간을 만들 때, 필요한 크기보다 훨씬 작은 공간을 만드는 실수입니다. 이로 인해 넘쳐흐른 데이터가 다른 중요한 정보를 덮어써서 시스템 오류나 보안 문제를 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ASoC: codec: sma1307: Fix memory corruption in sma1307_setting_loaded()
The sma1307->set.header_size is how many integers are in the header
(there are 8 of them) but instead of allocating space of 8 integers
we allocate 8 bytes. This leads to memory corruption when we copy data
it on the next line:
memcpy(sma1307->set.header, data,
sma1307->set.header_size * sizeof(int));
Also since we're immediately copying over the memory in ->set.header,
there is no need to zero it in the allocator. Use devm_kmalloc_array()
to allocate the memory instead.
📍 영향받는 시스템
Linux kernel (ASoC sma1307 codec driver 포함 버전)
⚔️ 공격 벡터
로컬 공격자가 조작된 코덱 설정 데이터를 통해 커널 메모리 오염 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하거나 sma1307 드라이버 수정 사항 반영
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인