🔍 CVE-2026-98376

7.8
CVSS Score
HIGH
2026-10-09
2026-10-24 14:16
✅ 완료

🇰🇷 한글 설명

Linux 커널의 BPF 서브시스템에서 percpu 배열 맵을 내부 맵(inner map)으로 교체할 때, 기본 메타 비교 함수가 max_entries를 검사하지 않아 크기가 다른 맵으로의 교체가 허용됩니다. 이로 인해 JIT로 인라인된 인덱스 마스크를 기반으로 한 조회가 pptrs[] 배열 범위를 벗어나 메모리 접근이 발생할 수 있습니다. 수정은 array_map_meta_equal()을 사용하도록 변경하여 max_entries 동일성 검사를 강제하는 것입니다.

💡 쉬운 설명

BPF라는 커널 기능에서 배열 크기를 검사하지 않고 맵을 바꿔 치기할 수 있는 결함입니다. 공격자가 이를 악용하면 할당되지 않은 메모리를 읽거나 쓸 수 있어 권한 상승으로 이어질 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: bpf: Use array_map_meta_equal for percpu array inner map replacement percpu_array_map_ops.map_meta_equal points to the generic bpf_map_meta_equal(), which does not compare max_entries. When a percpu array serves as an inner map, replacing it with one that has fewer max_entries bypasses the check. Since percpu_array_map_gen_lookup() inlines the original template's index_mask as a JIT immediate, a lookup on the replacement map can access pptrs[] out of bounds. Point percpu_array_map_ops.map_meta_equal to array_map_meta_equal(), which already enforces the max_entries equality check. Add a selftest to verify that replacing a percpu array inner map with a differently-sized one is rejected.

📍 영향받는 시스템

패치가 적용되지 않은 BPF percpu 배열 맵을 사용하는 Linux 커널 버전 (정확한 영향 범위는 해당 배포판 보안 공지 확인 필요)

⚔️ 공격 벡터

로컬 사용자가 BPF 시스콜로 내부 맵을 크기가 다른 percpu 배열 맵으로 교체하여 범위를 벗어난 메모리 접근을 유발

🛡️ 대응 방법

배포판 제공 최신 커널 업데이트 적용 또는 해당 수정 커밋이 포함된 커널로 재부팅

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지의 패치 버전과 비교하여 수정 포함 여부를 확인하고, 낮은 버전이면 업데이트가 필요합니다.

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

💻 영향받는 소프트웨어

IBM Security Verify Access