🔍 CVE-2026-23085

5.5
CVSS Score
MEDIUM
2026-02-04
2026-10-19 19:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 irqchip/gic-v3-its 드라이버에서 물리 주소를 저장할 때 32비트 unsigned long 타입을 사용하여 주소 값이 잘리는 취약점이 발견되었습니다. CONFIG_ARM_LPAE가 설정된 32비트 시스템에서 4GB 이상의 물리 주소를 참조할 경우 메모리 주소 절단 현상이 발생하여 시스템 충돌을 유발할 수 있습니다.

💡 쉬운 설명

컴퓨터가 아주 큰 메모리 주소를 기억해야 하는데, 이를 담는 그릇이 너무 작아서 주소 뒷부분이 잘려 나가는 문제입니다. 이로 인해 시스템이 잘못된 위치를 참조하게 되어 컴퓨터가 갑자기 멈추거나 꺼질 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: irqchip/gic-v3-its: Avoid truncating memory addresses On 32-bit machines with CONFIG_ARM_LPAE, it is possible for lowmem allocations to be backed by addresses physical memory above the 32-bit address limit, as found while experimenting with larger VMSPLIT configurations. This caused the qemu virt model to crash in the GICv3 driver, which allocates the 'itt' object using GFP_KERNEL. Since all memory below the 4GB physical address limit is in ZONE_DMA in this configuration, kmalloc() defaults to higher addresses for ZONE_NORMAL, and the ITS driver stores the physical address in a 32-bit 'unsigned long' variable. Change the itt_addr variable to the correct phys_addr_t type instead, along with all other variables in this driver that hold a physical address. The gicv5 driver correctly uses u64 variables, while all other irqchip drivers don't call virt_to_phys or similar interfaces. It's expected that other device drivers have similar issues, but fixing this one is sufficient for booting a virtio based guest.

📍 영향받는 시스템

CONFIG_ARM_LPAE가 활성화된 32비트 ARM 기반 Linux 커널 시스템 (QEMU virt 모델 포함)

⚔️ 공격 벡터

직접적인 공격보다는 특정 메모리 할당 환경에서 시스템을 충돌시키는 Denial of Service(DoS) 유발 가능

🛡️ 대응 방법

물리 주소를 저장하는 변수 타입을 32비트 unsigned long에서 phys_addr_t로 변경한 최신 커널 패치 적용

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.

Shell / Script
uname -r

📊 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