🔍 CVE-2026-98149

7.8
CVSS Score
HIGH
2026-09-25
2026-10-21 20:36
✅ 완료

🇰🇷 한글 설명

Linux 커널의 BPF per-CPU 맵 업데이트 과정에서 CPU ID 인덱싱 오류가 발견되었습니다. 특정 CPU 마스크를 사용하는 환경에서 논리적 CPU ID를 사용하여 버퍼 오프셋을 계산할 경우, 잘못된 메모리 위치를 참조하거나 경계 외 읽기(Out-of-bounds read)가 발생할 수 있습니다.

💡 쉬운 설명

컴퓨터의 여러 뇌(CPU) 중 일부만 사용할 때, 데이터를 저장하는 칸의 번호를 잘못 계산하는 버그입니다. 이로 인해 엉뚱한 데이터를 읽거나 시스템 오류가 발생할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: bpf: Fix percpu map update indexing with sparse CPU IDs Per-CPU array, hash, and cgroup storage map updates without BPF_F_CPU or BPF_F_ALL_CPUS use a value buffer whose per-CPU slots are packed in possible-CPU order. The buffer is sized as: round_up(value_size, 8) * num_possible_cpus() The update paths iterate over possible CPUs, but use the logical CPU ID to calculate the source offset: value + size * cpu This only works when possible CPU IDs are contiguous starting at zero. For example, with a possible CPU mask of 0,2-3, the buffer contains three slots corresponding to CPUs 0, 2, and 3. CPU2 is therefore expected to use slot 1 and CPU3 slot 2. Instead, the current code uses slots 2 and 3 respectively, causing incorrect per-CPU values and an out-of-bounds read from the update buffer for CPU3. The corresponding lookup paths already use a dense offset while iterating over possible CPUs. Do the same for the array, hash, and cgroup storage update paths, advancing the source offset once for each possible CPU. BPF_F_ALL_CPUS continues to use the same value for every CPU.

📍 영향받는 시스템

Linux kernel (BPF per-CPU map 기능을 사용하는 시스템)

⚔️ 공격 벡터

특정 CPU 마스크를 설정한 상태에서 BPF 맵 업데이트를 수행하여 메모리 경계 외 데이터를 읽는 방식

🛡️ 대응 방법

해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트하십시오.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 패치된 배포판의 보안 업데이트 버전인지 확인하십시오.

Shell / Script
uname -r

📊 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