🔍 CVE-2025-38312

5.5
CVSS Score
MEDIUM
2025-07-10
2026-11-05 21:18
✅ 완료

🇰🇷 한글 설명

Linux 커널 fbdev 모듈의 fb_cvt_hperiod() 함수에서 mode->refresh 값이 0x80000000일 때 정수 오버플로우로 인해 cvt.f_refresh가 0이 되고, 이를 나눗셈 연산의 피제수로 사용하면서 division by 0 오류가 발생합니다. 이로 인해 커널 oops(시스템 크래시)가 유발될 수 있습니다.

💡 쉬운 설명

리눅스 커널의 화면 드라이버에서 특정 설정값을 입력하면 0으로 나누기 오류가 발생해 시스템이 강제로 멈춥니다. 로컬 사용자가 악의적인 값으로 커널을 크래시시킬 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: fbdev: core: fbcvt: avoid division by 0 in fb_cvt_hperiod() In fb_find_mode_cvt(), iff mode->refresh somehow happens to be 0x80000000, cvt.f_refresh will become 0 when multiplying it by 2 due to overflow. It's then passed to fb_cvt_hperiod(), where it's used as a divider -- division by 0 will result in kernel oops. Add a sanity check for cvt.f_refresh to avoid such overflow... Found by Linux Verification Center (linuxtesting.org) with the Svace static analysis tool.

📍 영향받는 시스템

Linux kernel fbdev 드라이버 (모든 버전, 특히 frambuffer 모드 설정 가능한 시스템)

⚔️ 공격 벡터

로컬 사용자가 fbdev ioctl 인터페이스를 통해 조작된 refresh 값을 전달하여 Denial of Service 유발

🛡️ 대응 방법

Linux 커널을 cvt.f_refresh 오버플로우 체크 패치가 포함된 최신 버전으로 업데이트

🔧 검증 코드

커널 버전과 fbdev 활성화 상태를 확인하여 패치 적용 여부를 판단하고 필요시 커널 업데이트 수행

Shell / Script
uname -r | grep -oP '[0-9]+\.[0-9]+\.[0-9]+' && grep -i 'fbdev\|framebuffer' /boot/config-$(uname -r) 2>/dev/null | head -3

📊 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