🇰🇷 한글 설명
Linux 커널의 BPF 메커니즘에서 exclusive map이 map-in-map 구조의 내부 맵으로 사용될 때 발생하는 취약점입니다. 특정 프로그램에만 종속되어야 하는 exclusive map이 외부 맵을 통해 다른 프로그램에 의해 조작될 수 있어, 보안 검증을 우회할 수 있습니다.
💡 쉬운 설명
특정 프로그램만 사용할 수 있도록 잠겨 있어야 하는 데이터 저장소가, 복잡한 구조를 이용해 다른 프로그램에서도 몰래 접근하고 수정할 수 있는 보안 구멍이 발견되었습니다. 이로 인해 데이터의 무결성이 깨질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bpf: Reject exclusive maps as inner maps in map-in-map
An exclusive map (created with excl_prog_hash) is bound to a single
program by hash: check_map_prog_compatibility() refuses to load any
program whose digest does not match map->excl_prog_sha. That check
only runs for maps a program references directly, i.e. its used_maps.
A map reached at runtime through a map-of-maps is never in used_maps,
and bpf_map_meta_equal() does not consider excl_prog_sha, so an
exclusive map can be inserted into a non-exclusive outer map and
then looked up and mutated by an unrelated program, bypassing the
exclusivity guarantee.
For the signed loader this defeats the metadata map exclusivity check
added in the signed loader: the cached map->sha[] is validated against
the signed hash while another program on a hostile host rewrites the
frozen map's contents through the outer map.
📍 영향받는 시스템
Linux Kernel (BPF map-in-map 기능을 사용하는 버전)
⚔️ 공격 벡터
공격자가 외부 맵(outer map)을 통해 잠겨 있어야 할 내부 맵(inner map)의 내용을 직접 수정하여 보안 검증을 우회함
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 최신 패치 버전인지 확인하십시오.