🔍 CVE-2026-53170

8.8
CVSS Score
HIGH
2026-06-25
2026-07-06 18:24
✅ 완료

🇰🇷 한글 설명

Linux 커널의 accel/ethosu 드라이버에서 DMA 명령의 길이를 초기화하지 않았을 때 발생하는 취약점입니다. 초기화되지 않은 DMA 길이가 산술 연산 과정에서 오버플로를 일으켜 경계 검사를 우회하며, 이로 인해 하드웨어가 잘못된 물리 주소로 DMA를 실행할 수 있습니다.

💡 쉬운 설명

컴퓨터 부품에 데이터를 옮기라고 명령할 때, 데이터의 크기를 제대로 설정하지 않으면 시스템이 엉뚱한 메모리 영역을 건드릴 수 있는 문제입니다. 이로 인해 보안이 중요한 데이터가 유출되거나 시스템이 오작동할 위험이 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: accel/ethosu: reject DMA commands with uninitialized length cmd_state_init() initializes the command state with memset(0xff), leaving dma->len at U64_MAX to signal missing setup. The only setter is NPU_SET_DMA0_LEN; if userspace omits this command and issues NPU_OP_DMA_START, dma->len remains U64_MAX. In dma_length(), a positive stride added to U64_MAX wraps to a small value. With size0 == 1, check_mul_overflow() does not trigger and dma_length() returns 0 instead of U64_MAX. The caller's U64_MAX check then passes, region_size[] stays 0, and the bounds check in ethosu_job.c is bypassed, allowing hardware to execute DMA with stale physical addresses. Fix by checking for U64_MAX at the start of dma_length() before any arithmetic, consistent with the sentinel value used throughout the driver to detect uninitialized fields.

📍 영향받는 시스템

Linux kernel (accel/ethosu driver 포함 버전)

⚔️ 공격 벡터

사용자 공간(userspace)에서 DMA 길이를 설정하지 않은 채 DMA 시작 명령을 내려 경계 검사를 우회함

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 dma_length() 함수 내의 초기값 검증 로직을 적용해야 함

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel