🇰🇷 한글 설명
Linux 커널의 genl_bind() 함수에서 권한 확인(capability check)이 실패하여 -EPERM 오류가 발생하더라도 bind() 콜백이 호출되는 취약점이 발견되었습니다. 이로 인해 권한이 없는 사용자의 요청에 대해서도 특정 콜백 함수가 실행될 수 있는 문제가 있었습니다. 수정 패치를 통해 권한 확인이 성공한 경우에만 콜백이 호출되도록 개선되었습니다.
💡 쉬운 설명
권한이 없는 사용자가 시스템에 특정 요청을 보냈을 때, 시스템이 거절은 하지만 내부적으로는 그 요청을 처리하는 동작을 수행해버리는 보안 허점이 있었습니다. 이제는 권한이 확실히 확인된 경우에만 내부 동작이 실행되도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
genetlink: fix genl_bind() invoking bind() after -EPERM
Per family bind/unbind callbacks were introduced to allow families
to track multicast group consumer presence, e.g. to start or stop
producing events depending on listeners.
However, in genl_bind() the bind() callback was invoked even if
capability checks failed and ret was set to -EPERM. This means that
callbacks could run on behalf of unauthorized callers while the
syscall still returned failure to user space.
Fix this by only invoking bind() after "if (ret) break;" check
i.e. after permission checks have succeeded.
📍 영향받는 시스템
Linux Kernel (genetlink 관련 모듈 사용 시스템)
⚔️ 공격 벡터
권한이 없는 로컬 사용자가 Generic Netlink를 통해 특정 bind/unbind 콜백을 트리거하는 방식
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인