🔍 CVE-2026-31786

7.8
CVSS Score
HIGH
2026-04-30
2026-10-19 20:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 drivers/xen/sys-hypervisor.c 파일에서 버퍼 오버플로우 취약점이 발견되었습니다. HYPERVISOR_xen_version 함수가 반환하는 빌드 ID가 널(NUL) 문자로 종료되지 않아, sprintf 함수가 메모리 끝을 찾을 때까지 데이터를 읽어 들여 오버플로우를 유발합니다.

💡 쉬운 설명

컴퓨터가 데이터를 읽을 때 '여기까지가 끝이다'라는 표시를 찾지 못해, 정해진 공간보다 더 많은 데이터를 읽어 들여 시스템 오류를 일으키는 문제입니다. 이로 인해 시스템이 불안정해지거나 보안 문제가 생길 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: Buffer overflow in drivers/xen/sys-hypervisor.c The build id returned by HYPERVISOR_xen_version(XENVER_build_id) is neither NUL terminated nor a string. The first causes a buffer overflow as sprintf in buildid_show will read and copy till it finds a NUL. 00000000 f4 91 51 f4 dd 38 9e 9d 65 47 52 eb 10 71 db 50 |..Q..8..eGR..q.P| 00000010 b9 a8 01 42 6f 2e 32 |...Bo.2| 00000017 So use a memcpy instead of sprintf to have the correct value: 00000000 f4 91 51 f4 dd 00 9e 9d 65 47 52 eb 10 71 db 50 |..Q.....eGR..q.P| 00000010 b9 a8 01 42 |...B| 00000014 (the above have a hack to embed a zero inside and check it's returned correctly). This is XSA-485 / CVE-2026-31786

📍 영향받는 시스템

Xen 하이퍼바이저를 사용하는 Linux 커널 시스템

⚔️ 공격 벡터

조작된 빌드 ID 값을 통해 메모리 경계를 넘어서는 데이터를 읽거나 쓰도록 유도하는 방식

🛡️ 대응 방법

sprintf 대신 데이터 길이를 지정할 수 있는 memcpy 함수를 사용하도록 커널 패치 적용

🔧 검증 코드

커널 버전과 해당 소스 파일의 존재 여부를 확인하여 패치 적용 여부를 검토합니다.

Shell / Script
uname -r && grep -r "sys-hypervisor.c" /usr/src/linux-headers-$(uname -r) 2>/dev/null

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel