🇰🇷 한글 설명
Linux 커널 6.2의 drivers/mtd/ubi/cdev.c 파일에서 0으로 나누기 오류가 발견되었습니다. mtd->erasesize 값이 0일 때 ctrl_cdev_ioctl를 통해 간접적으로 호출되는 do_div 함수에서 발생합니다.
💡 쉬운 설명
컴퓨터 프로그램이 숫자를 계산할 때 0으로 나누는 실수를 하여 시스템이 멈추거나 오류가 발생하는 문제입니다. 특정 장치 설정값이 0으로 되어 있을 때 발생할 수 있습니다.
🇺🇸 원문 (English)
An issue was discovered in drivers/mtd/ubi/cdev.c in the Linux kernel 6.2. There is a divide-by-zero error in do_div(sz,mtd->erasesize), used indirectly by ctrl_cdev_ioctl, when mtd->erasesize is 0.
📍 영향받는 시스템
Linux kernel 6.2 및 해당 코드가 포함된 MTD/UBI 드라이버 사용 버전
⚔️ 공격 벡터
로컬 공격자가 특수하게 조작된 ioctl 시스템 호출을 통해 발생 가능
🛡️ 대응 방법
커널 패치를 적용하거나 mtd->erasesize가 0이 되지 않도록 드라이버 설정을 수정
🔧 검증 코드
출력된 커널 버전이 6.2 버전인지 확인하여 취약한 버전 여부를 판단합니다.