🔍 CVE-2026-99086

0.0
CVSS Score
UNKNOWN
2026-10-23
2026-10-23 13:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 dm-integrity 드라이버에서 resume 시 슈퍼블록을 검증하지 않아 발생하는 취약점입니다. 서스펜드 중 사용자가 기반 장치의 슈퍼블록을 변경하면 log2_sectors_per_block 값이 불일치하여 저널 인덱스가 범위를 벗어나고, lowmem_page_address(NULL)을 통한 512바이트 쓰기가 발생할 수 있습니다.

💡 쉬운 설명

디스크 무결성 보호 기능이 일시 중지된 동안 디스크의 관리 정보가 바뀌면 시스템이 잘못된 위치에 데이터를 쓸 수 있습니다. 이로 인해 시스템이 비정상 종료되거나 메모리 오류가 발생할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: dm-integrity: validate the superblock on resume dm_integrity_resume() re-reads the superblock from the device so that it picks up the flags and the recalculate position. It performs no validation on the result, while the constructor validates the superblock it reads and sizes all the in-memory structures according to it. The user may modify the superblock on the underlying device while the dm-integrity device is suspended, so that the two no longer agree. In particular, access_journal_data() shifts the journal entry index by ic->sb->log2_sectors_per_block, while ic->journal_section_sectors and the journal page list were computed with the value that was present at constructor time. Increasing log2_sectors_per_block makes the index run past the end of the journal, and dm-integrity then writes 512 bytes through lowmem_page_address(NULL). Snapshot the validated superblock in the constructor and refuse to resume if any of the fields that describe the on-disk geometry changed.

📍 영향받는 시스템

dm-integrity 기능을 사용하는 Linux 커널 (수정 커밋 적용 전 버전)

⚔️ 공격 벡터

권한을 가진 사용자가 dm-integrity 장치가 suspend된 상태에서 기반 장치의 슈퍼블록 필드를 변경한 후 resume을 유도

🛡️ 대응 방법

커널을 제조사/배포판이 제공하는 CVE 수정이 포함된 최신 버전으로 업데이트

🔧 검증 코드

커널 버전이 수정 패치가 포함된 최신 배포판 버전인지 확인하고, dm_integrity 모듈이 로드되지 않았다면 해당 취약점의 영향을 받지 않습니다.

Shell / Script
uname -r && (lsmod | grep dm_integrity || echo 'dm_integrity module not loaded')

💻 영향받는 소프트웨어

Linux Kernel