🔍 CVE-2025-38665

5.5
CVSS Score
MEDIUM
2025-08-22
2026-11-05 22:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 CAN 네트워크 드라이버에서 Bus Off 상태 후 재시작 시, 드라이버가 do_set_mode 콜백을 구현하지 않은 경우 NULL 포인터 역참조가 발생하는 취약점입니다. 수정으로 해당 경우 수동 재시작을 거부하거나 자동 재시작 지연을 설정하도록 하며, can_restart()에서도 콜백 존재 여부를 검사합니다.

💡 쉬운 설명

CAN 통신 장치가 오류 후 다시 시작될 때, 일부 드라이버에서 필요한 기능이 없어 시스템이 잘못된 메모리를 참조해 비정상 종료될 수 있습니다. 이번 패치는 이런 경우 재시작을 막거나 안전하게 처리하도록 바꿉니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: can: netlink: can_changelink(): fix NULL pointer deref of struct can_priv::do_set_mode Andrei Lalaev reported a NULL pointer deref when a CAN device is restarted from Bus Off and the driver does not implement the struct can_priv::do_set_mode callback. There are 2 code path that call struct can_priv::do_set_mode: - directly by a manual restart from the user space, via can_changelink() - delayed automatic restart after bus off (deactivated by default) To prevent the NULL pointer deference, refuse a manual restart or configure the automatic restart delay in can_changelink() and report the error via extack to user space. As an additional safety measure let can_restart() return an error if can_priv::do_set_mode is not set instead of dereferencing it unchecked.

📍 영향받는 시스템

CAN 드라이버를 사용하는 수정 이전 Linux 커널 버전 (CAN 버스 장치 사용 시스템)

⚔️ 공격 벡터

로컬 사용자가 CAN 장치를 수동으로 재시작하도록 설정을 변경하여 커널 NULL 포인터 역참조를 유발, 서비스 거부(커널 패닉)를 일으킬 수 있음

🛡️ 대응 방법

커널을 CVE-2025-38665 수정이 포함된 최신 안정 버전으로 업데이트하고 재부팅

🔧 검증 코드

커널 버전이 수정 패치가 배포된 버전 이상인지 확인하고, CAN 모듈이 로드되지 않았다면 이 취약점의 영향을 받지 않는 것으로 판단합니다.

Shell / Script
uname -r && (lsmod | grep -E '^can' || echo 'CAN 모듈 미로드')

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel