🇰🇷 한글 설명
Linux-PAM의 pam_namespace 모듈에서 namespace.init 스크립트 실행 시 호출 애플리케이션의 환경 변수를 그대로 사용하는 취약점입니다. sudo와 같은 setuid 프로그램에서 이를 악용하면 로컬 사용자가 권한을 상승시킬 수 있습니다.
💡 쉬운 설명
PAM(리눅스 인증 시스템)의 pam_namespace 기능이 sudo 같은 관리자 프로그램 실행 시 환경 변수를 안전하게 처리하지 않습니다. 공격자가 특별히 조작된 환경 변수로 setuid 프로그램을 실행하면 관리자 권한을 탈취할 수 있습니다.
🇺🇸 원문 (English)
pam_namespace.c in the pam_namespace module in Linux-PAM (aka pam) before 1.1.3 uses the environment of the invoking application or service during execution of the namespace.init script, which might allow local users to gain privileges by running a setuid program that relies on the pam_namespace PAM check, as demonstrated by the sudo program.
📍 영향받는 시스템
Linux-PAM < 1.1.3 (Fedora, RHEL, Debian, Ubuntu 등 대부분의 리눅스 배포판)
⚔️ 공격 벡터
setuid 프로그램(sudo 등) 실행 시 조작된 환경 변수 전달을 통한 로컬 권한 상승
🛡️ 대응 방법
Linux-PAM을 1.1.3 이상으로 업그레이드하거나 pam_namespace 모듈 비활성화
🔧 검증 코드
출력된 버전이 1.1.3 이상이면 안전함. 1.1.2 이하이거나 pam_namespace를 사용 중이면 위험함.
dpkg -l libpam-modules 2>/dev/null | grep -oP 'libpam-modules\s+\K[^ ]+' || rpm -q pam 2>/dev/null | grep -oP 'pam-\K[^-]+'