🇰🇷 한글 설명
Linux 커널의 BPF 구현 중 중첩된 구조체에서 고유 필드 상태를 보존하지 못하는 취약점이 발견되었습니다. btf_find_struct_field() 함수가 재귀 호출 시마다 새로운 마스크를 초기화하여 중복 필드를 제대로 감지하지 못하며, 이로 인해 조작된 BTF를 통해 커널 경고(WARN_ON_ONCE)를 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터의 핵심 운영체제인 리눅스에서 데이터 구조를 읽는 방식에 오류가 있어, 특수하게 만들어진 데이터를 입력하면 시스템에 경고 메시지를 띄울 수 있습니다. 이는 시스템의 안정성을 해칠 수 있는 잠재적인 결함입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bpf: Preserve unique-field state across nested structs
btf_find_struct_field() initializes a fresh seen mask for every recursive
descent. Unique special fields in different levels of the same aggregate
therefore do not see one another. The duplicate fields can reach
btf_parse_fields(), where they trigger an invariant WARN_ON_ONCE(). A
crafted user BTF can consequently trigger the warning before map creation
checks capabilities.
Initialize the seen mask once in btf_find_field() and pass the same pointer
through struct, datasec, and nested-struct walks. This gives the entire field
traversal one shared uniqueness state.
📍 영향받는 시스템
Linux kernel (BPF/BTF 관련 기능이 활성화된 버전)
⚔️ 공격 벡터
조작된 BTF(BPF Type Format) 데이터를 사용하여 커널의 필드 탐색 로직을 트리거함
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 배포판의 보안 업데이트 버전인지 확인