Skip to content
OpenAdvisories
High · 7.1 CVE-2026-64666 EUVD-2026-123131

pam_usb: getenv() in pusb_local_login bypasses XRDP deny via env-var unset

Published Nov 11, 2026 · Assigned by GitHub_M

Description

pam_usb provides hardware authentication for Linux using removable media. Prior to version 0.9.3, src/local.c reads XRDP_SESSION with plain getenv(3) at the head of pusb_local_login while every other env consumer in the same function uses secure_getenv(3). When pam_usb.so loads into a setuid PAM host, the calling user controls the environment passed in. Clearing XRDP_SESSION 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.

Affected products

VendorProductAffectedFixed
mcdope pam_usb < 0.9.3 —

References