🇰🇷 한글 설명
리눅스 커널의 sysctl 구현 중 cad_pid 항목이 잘못된 테이블에 위치하여 권한 검증이 우회되는 취약점입니다. 비루트 사용자가 네임스페이스를 분리하여 해당 값을 수정할 수 있었으나, 이를 커널 재부팅 테이블로 이동하여 글로벌 루트 권한만 접근 가능하도록 수정되었습니다.
💡 쉬운 설명
일반 사용자가 시스템의 중요한 설정값을 몰래 바꿀 수 있었던 보안 구멍이 발견되었습니다. 이제 이 설정은 관리자(root)만 건드릴 수 있도록 안전하게 격리되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
sysctl: move the "cad_pid" entry from pid_table[] to kern_reboot_table[]
cad_pid is global, and kill_cad_pid() is only used in the root namespace.
However, due to pid_table_root_permissions(), a non-root user can unshare
pid/user namespaces and modify it from the child namespace. This makes no
sense and is simply wrong.
Move it to kern_reboot_table[] where it logically belongs; this ensures
that only GLOBAL_ROOT_UID can read/modify this sysctl.
Note that this patch doesn't preserve "#ifdef CONFIG_PROC_SYSCTL" around
the "cad_pid"; CONFIG_PROC_SYSCTL selects CONFIG_SYSCTL, so it is always
set when kern_reboot_table[] is compiled.
📍 영향받는 시스템
Linux Kernel (cad_pid가 pid_table에 포함된 버전)
⚔️ 공격 벡터
비루트 사용자가 PID/User 네임스페이스를 unshare하여 cad_pid 값을 수정하는 방식
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.