🔍 CVE-2026-47271

5.1
CVSS Score
MEDIUM
2026-05-27
2026-10-26 11:10
✅ 완료

🇰🇷 한글 설명

pam_usb 0.9.0 이전 버전에서 NDEBUG 정의 시 메모리 할당 함수의 assert() 가드가 제거되어 NULL 반환값을 역참조하는 취약점입니다. 공격자가 인증 시점에 메모리 부족을 유도하면 PAM 모듈이 크래시되어 모든 사용자의 sudo/login 접근을 차단할 수 있는 로컬 거부 서비스 공격이 가능합니다.

💡 쉬운 설명

USB 인증을 담당하는 pam_usb에서 메모리 부족 상황을 제대로 처리하지 못해 프로그램이 종료됩니다. 공격자가 로그인할 때 이를 악용하면 모든 사용자가 시스템에 접근하지 못하게 할 수 있습니다.

🇺🇸 원문 (English)

pam_usb provides hardware authentication for Linux using ordinary removable media. Prior to 0.9.0, src/mem.c implemented out-of-memory guards for xmalloc(), xrealloc(), and xstrdup() using assert(data != NULL). The C standard specifies that all assert() expressions are compiled out when NDEBUG is defined at build time. NDEBUG is commonly defined in release and packaging builds (Debian, Fedora, Arch package flags all define it via -DNDEBUG in CFLAGS). With the guard removed, xmalloc/xrealloc/xstrdup silently return NULL on allocation failure. Every caller in the codebase dereferences the return value without a NULL check -- this is the intended design, as the guard was supposed to abort before the dereference. With the guard gone, any allocation failure causes a NULL pointer dereference, crashing the PAM module. A crash in a PAM module loaded by sudo or login causes authentication to fail for the duration of the crash, creating a local denial-of-service condition. An attacker who can induce memory pressure at authentication time can lock all users out of sudo and login. This vulnerability is fixed in 0.9.0.

📍 영향받는 시스템

pam_usb 0.9.0 이전 버전 (NDEBUG 정의되어 컴파일된 Debian, Fedora, Arch 패키지)

⚔️ 공격 벡터

인증 시점에 메모리 할당 실패를 유도하여 PAM 모듈의 NULL 포인터 역참조 크래시 발생

🛡️ 대응 방법

pam_usb를 0.9.0 이상으로 즉시 업그레이드

🔧 검증 코드

출력된 버전이 0.9.0 이상이면 안전, 그 이전 버전이거나 미설치되면 업그레이드 필요

Shell / Script
dpkg -l | grep -i pam-usb | awk '{print $3}'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

NVIDIA Cloud Gaming Guest Driver for Linux