🔍 CVE-2024-58017

5.5
CVSS Score
MEDIUM
2025-02-27
2026-11-05 21:17
✅ 완료

🇰🇷 한글 설명

Linux 커널 printk 함수의 LOG_BUF_LEN_MAX 정의에서 1 << 31 시프트 연산 시 32비트 signed integer overflow 발생. 1을 u32로 캐스팅하여 unsigned 정수에서 연산을 수행하면 undefined behavior를 방지할 수 있습니다.

💡 쉬운 설명

Linux 커널의 메시지 버퍼 크기 계산에서 매우 큰 숫자를 다룰 때 계산 오류가 발생하는 문제입니다. 커널 패치로 쉽게 해결됩니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: printk: Fix signed integer overflow when defining LOG_BUF_LEN_MAX Shifting 1 << 31 on a 32-bit int causes signed integer overflow, which leads to undefined behavior. To prevent this, cast 1 to u32 before performing the shift, ensuring well-defined behavior. This change explicitly avoids any potential overflow by ensuring that the shift occurs on an unsigned 32-bit integer.

📍 영향받는 시스템

Linux kernel (printk 로깅 시스템을 포함한 모든 버전)

⚔️ 공격 벡터

직접적 공격 벡터 없음 - 커널 내부 연산 오류로 인한 잠재적 crash 또는 unpredictable behavior

🛡️ 대응 방법

Linux 커널 업데이트로 printk.c의 LOG_BUF_LEN_MAX 정의에서 u32 캐스팅 적용된 버전으로 패치

🔧 검증 코드

커널 버전 확인 후 dmesg 로그에서 printk 관련 undefined behavior 오류 없음을 확인

Shell / Script
uname -r | grep -E 'kernel|linux' && dmesg | tail -5 | grep -i printk

📊 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