🇰🇷 한글 설명
리눅스 커널의 Landlock 보안 모듈에서 cred_transfer LSM 훅이 누락되어 발생하는 취약점입니다. KEYCTL_SESSION_TO_PARENT를 통해 프로세스의 자격 증명이 업데이트될 때 Landlock 제한 사항이 유실될 수 있습니다. 이로 인해 fork()와 keyctl() 시스템 호출을 사용할 수 있는 프로세스가 자신의 Landlock 제한을 제거할 수 있습니다.
💡 쉬운 설명
특정 명령어를 사용하면 프로세스에 걸려 있는 보안 제한(Landlock)을 스스로 풀어버릴 수 있는 결함입니다. 공격자가 보안 감시망을 피해 시스템 권한을 탈취하는 데 악용될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
landlock: Don't lose track of restrictions on cred_transfer
When a process' cred struct is replaced, this _almost_ always invokes
the cred_prepare LSM hook; but in one special case (when
KEYCTL_SESSION_TO_PARENT updates the parent's credentials), the
cred_transfer LSM hook is used instead. Landlock only implements the
cred_prepare hook, not cred_transfer, so KEYCTL_SESSION_TO_PARENT causes
all information on Landlock restrictions to be lost.
This basically means that a process with the ability to use the fork()
and keyctl() syscalls can get rid of all Landlock restrictions on
itself.
Fix it by adding a cred_transfer hook that does the same thing as the
existing cred_prepare hook. (Implemented by having hook_cred_prepare()
call hook_cred_transfer() so that the two functions are less likely to
accidentally diverge in the future.)
📍 영향받는 시스템
Landlock LSM이 활성화된 Linux Kernel (패치 전 버전)
⚔️ 공격 벡터
fork() 및 keyctl() 시스템 호출을 사용하여 프로세스의 자격 증명을 업데이트함으로써 보안 제한을 우회
🛡️ 대응 방법
Landlock의 cred_transfer 훅을 구현하여 cred_prepare와 동일한 동작을 수행하도록 커널 업데이트 적용
🔧 검증 코드
출력된 커널 버전이 Landlock 취약점이 수정된 최신 보안 패치 버전인지 확인