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.