🔍 CVE-2025-21810

7.8
CVSS Score
HIGH
2025-02-27
2026-10-15 22:18
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 driver core 클래스 API인 class_dev_iter_next()에서 와일드 포인터 역참조 취약점이 발견되었습니다. class_dev_iter_init() 함수가 오류 발생 시 출력 매개변수인 iter를 초기화하지 않아, 초기화되지 않은 포인터를 사용하는 과정에서 시스템 오류가 발생할 수 있습니다.

💡 쉬운 설명

컴퓨터가 장치 목록을 읽어오는 과정에서 잘못된 메모리 주소를 참조하여 시스템이 멈추거나 오류가 발생할 수 있는 문제입니다. 준비되지 않은 상태에서 잘못된 정보를 읽으려다 발생하는 실수라고 이해하면 됩니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: driver core: class: Fix wild pointer dereferences in API class_dev_iter_next() There are a potential wild pointer dereferences issue regarding APIs class_dev_iter_(init|next|exit)(), as explained by below typical usage: // All members of @iter are wild pointers. struct class_dev_iter iter; // class_dev_iter_init(@iter, @class, ...) checks parameter @class for // potential class_to_subsys() error, and it returns void type and does // not initialize its output parameter @iter, so caller can not detect // the error and continues to invoke class_dev_iter_next(@iter) even if // @iter still contains wild pointers. class_dev_iter_init(&iter, ...); // Dereference these wild pointers in @iter here once suffer the error. while (dev = class_dev_iter_next(&iter)) { ... }; // Also dereference these wild pointers here. class_dev_iter_exit(&iter); Actually, all callers of these APIs have such usage pattern in kernel tree. Fix by: - Initialize output parameter @iter by memset() in class_dev_iter_init() and give callers prompt by pr_crit() for the error. - Check if @iter is valid in class_dev_iter_next().

📍 영향받는 시스템

Linux Kernel (class_dev_iter API를 사용하는 모든 드라이버 코어 관련 시스템)

⚔️ 공격 벡터

로컬 공격자가 특정 클래스 장치 반복자 API를 호출하여 잘못된 메모리 주소에 접근하도록 유도

🛡️ 대응 방법

리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 class_dev_iter_init()의 초기화 로직을 적용해야 함

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 최신 패치 버전인지 확인

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