CVE-2026-47270 pam_usb: strtok() race condition in multi-threaded PAM hosts can corrupt deny_remote result

Medium 6.3 Published Updated

A race condition in pam_usb's remote session detection can allow attackers to bypass hardware authentication restrictions on Linux systems.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Local or same network only
Victim action needed
Not needed
Fix
None listed

What is CVE-2026-47270?

CVE-2026-47270 is a medium-severity vulnerability in mcdope pam_usb, published on 27 May 2026. It can only be exploited from the same machine or local network, with no action from the victim.

Official description

pam_usb provides hardware authentication for Linux using ordinary removable media. Prior to 0.9.0, pam_usb is a PAM module loaded into the host process (sudo, login, GDM, GNOME Shell). Display managers such as GDM run multiple concurrent authentication threads. Three functions used by the deny_remote feature called the non-reentrant strtok(), which stores state in a single global pointer. If two authentications race, one thread's strtok() call can overwrite the other's in-progress tokenisation pointer, causing incorrect parsing of the tmux session data or the /proc environ scan that backs the remote-session detection logic. Additionally, pusb_tmux_get_client_tty() passed the raw pointer returned by getenv(TMUX) directly to strtok(). getenv() returns a pointer into the live process environment block; strtok() inserts NUL bytes into that block, permanently corrupting the TMUX variable for subsequent code running in the same process. In long-lived display managers this affects all future authentications in that process. The combined effect can cause deny_remote=true to return an incorrect decision for a remote session, or an incorrect decision for a local session, depending on thread interleaving. This vulnerability is fixed in 0.9.0.

Weakness: CWE-362

Which versions are affected by CVE-2026-47270?

How do I fix CVE-2026-47270?

No fix has been published for CVE-2026-47270 yet. Limit exposure of the affected software until one is available.

Is CVE-2026-47270 being exploited?

There is no known exploitation of CVE-2026-47270 in the wild and no public exploit code.

Sources

Also known as GHSA-j3xw-vc43-x7jg.

Is CVE-2026-47270 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free