🔍 CVE-2026-46118

5.5
CVSS Score
MEDIUM
2026-05-28
2026-10-15 11:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 pseries/papr-hvpipe 구성 요소에서 null 포인터 역참조 취약점이 발견되었습니다. papr_hvpipe_dev_create_handle() 함수에서 src_info를 전역 리스트에 추가하는 과정 중, 이미 null로 설정된 포인터를 재사용하여 커널 패닉을 유발할 수 있습니다.

💡 쉬운 설명

리눅스 운영체제의 특정 장치 드라이버에서 데이터 처리 순서가 잘못되어 시스템이 갑자기 멈추거나 꺼질 수 있는 오류입니다. 공격자가 이를 악용하면 시스템을 마비시킬 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: pseries/papr-hvpipe: Fix null ptr deref in papr_hvpipe_dev_create_handle() commit 6d3789d347a7 ("papr-hvpipe: convert papr_hvpipe_dev_create_handle() to FD_PREPARE()"), changed the create handle to FD_PREPARE(), but it caused kernel null-ptr-deref because after call to retain_and_null_ptr(src_info), src_info is re-used for adding it to the global list. Getting the following kernel panic in papr_hvpipe_dev_create_handle() when trying to add src_info to the list. Kernel attempted to write user page (0) - exploit attempt? (uid: 0) BUG: Kernel NULL pointer dereference on write at 0x00000000 Faulting instruction address: 0xc0000000001b44a0 Oops: Kernel access of bad area, sig: 11 [#1] ... Call Trace: papr_hvpipe_dev_ioctl+0x1f4/0x48c (unreliable) sys_ioctl+0x528/0x1064 system_call_exception+0x128/0x360 system_call_vectored_common+0x15c/0x2ec Now, the error handling with FD_PREPARE's file cleanup and __free(kfree) auto cleanup is getting too convoluted. This is mainly because we need to ensure only 1 user get the srcID handle. To simplify this, we allocate prepare the src_info in the beginning and add it to the global list under a spinlock after checking that no duplicates exist. This simplify the error handling where if the FD_ADD fails, we can simply remove the src_info from the list and consume any pending msg in hvpipe to be cleared, after src_info became visible in the global list.

📍 영향받는 시스템

Linux kernel (pseries/papr-hvpipe 관련 모듈 사용 시스템)

⚔️ 공격 벡터

로컬 사용자가 특수하게 조작된 ioctl 시스템 호출을 통해 커널의 null 포인터 역참조를 유도하여 커널 패닉 발생

🛡️ 대응 방법

커널 패치를 적용하여 papr_hvpipe_dev_create_handle()의 로직을 수정하고, src_info 할당 및 리스트 추가 순서를 안전하게 변경해야 합니다.

🔧 검증 코드

출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전이 적용되었는지 확인합니다.

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