🔍 CVE-2020-36787

7.8
CVSS Score
HIGH
2024-02-28
2026-08-04 10:16
✅ 완료

🇰🇷 한글 설명

Linux 커널의 Aspeed 미디어 드라이버에서 클록(clock) 처리 로직 오류로 인해 비디오 엔진의 리셋이 부적절하게 수행되는 취약점입니다. 이로 인해 하드웨어가 예기치 않은 DMA 메모리 전송을 생성하여 메모리 영역을 무작위로 손상시키고 커널 패닉을 유발할 수 있습니다.

💡 쉬운 설명

컴퓨터 부품의 전원 공급 순서가 잘못되어 하드웨어가 메모리에 잘못된 데이터를 쓰고 시스템을 멈추게 만드는 문제입니다. 이 문제는 비디오 기능을 사용하지 않더라도 부팅 과정에서 자동으로 발생할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: media: aspeed: fix clock handling logic Video engine uses eclk and vclk for its clock sources and its reset control is coupled with eclk so the current clock enabling sequence works like below. Enable eclk De-assert Video Engine reset 10ms delay Enable vclk It introduces improper reset on the Video Engine hardware and eventually the hardware generates unexpected DMA memory transfers that can corrupt memory region in random and sporadic patterns. This issue is observed very rarely on some specific AST2500 SoCs but it causes a critical kernel panic with making a various shape of signature so it's extremely hard to debug. Moreover, the issue is observed even when the video engine is not actively used because udevd turns on the video engine hardware for a short time to make a query in every boot. To fix this issue, this commit changes the clock handling logic to make the reset de-assertion triggered after enabling both eclk and vclk. Also, it adds clk_unprepare call for a case when probe fails. clk: ast2600: fix reset settings for eclk and vclk Video engine reset setting should be coupled with eclk to match it with the setting for previous Aspeed SoCs which is defined in clk-aspeed.c since all Aspeed SoCs are sharing a single video engine driver. Also, reset bit 6 is defined as 'Video Engine' reset in datasheet so it should be de-asserted when eclk is enabled. This commit fixes the setting.

📍 영향받는 시스템

Aspeed AST2500 SoC를 사용하는 Linux 커널 시스템

⚔️ 공격 벡터

하드웨어 설계 결함에 의한 로컬/물리적 메모리 오염 (직접적인 원격 공격은 어려움)

🛡️ 대응 방법

eclk와 vclk가 모두 활성화된 후 리셋이 해제되도록 수정된 최신 Linux 커널로 업데이트

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 패치된 이후의 버전인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel