🇰🇷 한글 설명
리눅스 커널의 AMD 디스플레이 드라이버(drm/amd/display)에서 mpc_combine 배열 크기가 잘못 설정되어 발생하는 취약점입니다. 스트림당 할당되는 MAX_SURFACES 대신 ASIC당 할당되는 MAX_PLANES를 사용해야 하는데, 이를 잘못 사용하여 배열 오버플로우가 발생할 수 있습니다.
💡 쉬운 설명
그래픽 카드가 화면을 처리할 때 사용하는 메모리 공간을 실제 필요한 크기보다 작게 설정하여 발생하는 오류입니다. 이로 인해 데이터가 정해진 범위를 넘어서면서 시스템 오류나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/amd/display: fix incorrect mpc_combine array size
[why]
MAX_SURFACES is per stream, while MAX_PLANES is per asic. The
mpc_combine is an array that records all the planes per asic. Therefore
MAX_PLANES should be used as the array size. Using MAX_SURFACES causes
array overflow when there are more than 3 planes.
[how]
Use the MAX_PLANES for the mpc_combine array size.
📍 영향받는 시스템
AMD GPU를 사용하는 리눅스 커널 기반 시스템 (drm/amd/display 모듈 포함 버전)
⚔️ 공격 벡터
특정 조건에서 다수의 디스플레이 평면(Plane)을 생성하여 메모리 배열 오버플로우를 유도하는 방식
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 mpc_combine 배열 크기를 MAX_PLANES로 수정해야 합니다.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 수정된 최신 패치 버전인지 확인합니다.