CVE-2026-64666: pam_usb: getenv() in pusb_local_login bypasses XRDP deny via env-var unset
pamusb provides hardware authentication for Linux using removable media. Prior to version 0.9.3, src/local.c reads XRDPSESSION with plain getenv(3) at the head of pusblocallogin while every other env consumer in the same function uses securegetenv(3). When pamusb.so loads into a setuid PAM host, the calling user controls the environment passed in. Clearing XRDPSESSION before invoking the host bypasses the explicit XRDP-deny rule. Other remote-detection signals (rmsvc, evdev, loginctl, utmp) may still catch the session, but the env-based detection alone is defeated. This issue has been patched in version 0.9.3.
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
pam_usbto a version that resolves this vulnerability.Fixed in 0.9.3