🔍 CVE-2024-58100

7.8
CVSS Score
HIGH
2025-05-05
2026-10-15 22:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 BPF 검증기(Verifier)에서 확장 프로그램이 기존의 글로벌 서브 프로그램을 대체할 때, 패킷 데이터 변경 속성(changes_pkt_data)의 호환성을 제대로 확인하지 않는 취약점입니다. 이로 인해 프로그램 간의 속성 불일치가 발생하여 커널의 안정성이나 보안 검증 로직에 문제가 생길 수 있습니다.

💡 쉬운 설명

리눅스 커널이 프로그램을 교체할 때, 새 프로그램이 기존 프로그램의 규칙을 잘 따르는지 확인하는 과정에 허점이 있었습니다. 이 허점을 이용하면 시스템의 보안 규칙을 우회하거나 예상치 못한 동작을 유발할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: bpf: check changes_pkt_data property for extension programs When processing calls to global sub-programs, verifier decides whether to invalidate all packet pointers in current state depending on the changes_pkt_data property of the global sub-program. Because of this, an extension program replacing a global sub-program must be compatible with changes_pkt_data property of the sub-program being replaced. This commit: - adds changes_pkt_data flag to struct bpf_prog_aux: - this flag is set in check_cfg() for main sub-program; - in jit_subprogs() for other sub-programs; - modifies bpf_check_attach_btf_id() to check changes_pkt_data flag; - moves call to check_attach_btf_id() after the call to check_cfg(), because it needs changes_pkt_data flag to be set: bpf_check: ... ... - check_attach_btf_id resolve_pseudo_ldimm64 resolve_pseudo_ldimm64 --> bpf_prog_is_offloaded bpf_prog_is_offloaded check_cfg check_cfg + check_attach_btf_id ... ... The following fields are set by check_attach_btf_id(): - env->ops - prog->aux->attach_btf_trace - prog->aux->attach_func_name - prog->aux->attach_func_proto - prog->aux->dst_trampoline - prog->aux->mod - prog->aux->saved_dst_attach_type - prog->aux->saved_dst_prog_type - prog->expected_attach_type Neither of these fields are used by resolve_pseudo_ldimm64() or bpf_prog_offload_verifier_prep() (for netronome and netdevsim drivers), so the reordering is safe.

📍 영향받는 시스템

Linux Kernel (BPF 기능이 활성화된 버전)

⚔️ 공격 벡터

권한이 있는 사용자가 호환되지 않는 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