🇰🇷 한글 설명
Linux 커널의 AppArmor 모듈에서 aa_change_profile() 함수가 no_new_privs 테스트를 수행하기 전에 레이블을 생성하는 과정에서 발생하는 취약점입니다. 레이블 생성 실패 시 NULL 또는 에러 포인터가 반환될 수 있음에도 불구하고 이를 검증 없이 하위 집합 확인 함수에 전달하여 잘못된 메모리 참조가 발생할 수 있습니다.
💡 쉬운 설명
보안 프로그램인 AppArmor가 새로운 보안 규칙을 적용할 때, 잘못된 정보를 처리하다가 시스템 오류를 일으킬 수 있는 문제입니다. 이로 인해 보안 설정이 제대로 작동하지 않거나 시스템이 불안정해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
apparmor: check label build before no_new_privs test
aa_change_profile() builds a replacement label with
fn_label_build_in_scope() before the no_new_privs subset check. The build
helper can fail and return NULL or an ERR_PTR, but the result was passed
to aa_label_is_unconfined_subset() before the existing IS_ERR_OR_NULL()
check.
Reuse the existing target-label build failure handling immediately after
the build. This preserves the current audit handling while preventing the
subset helper from dereferencing an invalid label.
📍 영향받는 시스템
AppArmor가 활성화된 Linux 커널 버전
⚔️ 공격 벡터
잘못된 레이블 생성을 유도하여 커널 내에서 잘못된 메모리 참조(Dereference)를 발생시키는 방식
🛡️ 대응 방법
AppArmor 레이블 생성 실패 처리가 포함된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인합니다.