CVE-2026-47270: CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition') in mcdope pam_usb
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.
AI Analysis
Technical Summary
pam_usb is a PAM module for hardware authentication on Linux using removable media. Prior to version 0.9.0, pam_usb's deny_remote feature used strtok(), a non-reentrant function, in multiple concurrent authentication threads managed by display managers such as GDM. This caused race conditions where strtok() calls from different threads interfere, corrupting the tokenization state and the TMUX environment variable in the process memory. The corruption leads to incorrect remote session detection decisions, potentially allowing or denying access improperly. The vulnerability is resolved in pam_usb version 0.9.0.
Potential Impact
The vulnerability can cause deny_remote=true to incorrectly identify remote or local sessions due to corrupted environment data and tokenization state in concurrent authentication threads. This can lead to improper authentication decisions, potentially allowing unauthorized access or denying legitimate access. The impact affects confidentiality and integrity of the authentication process but does not affect availability. The CVSS score is 6.3, indicating medium severity.
Mitigation Recommendations
A fix is available in pam_usb version 0.9.0. Users should upgrade to version 0.9.0 or later to remediate this vulnerability. Since no official patch link or advisory is provided, verify the upgrade availability from the vendor or trusted repositories. No other mitigation is specified.
CVE-2026-47270: CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition') in mcdope pam_usb
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.
CVSS v3.1
Score 6.3medium
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
pam_usb is a PAM module for hardware authentication on Linux using removable media. Prior to version 0.9.0, pam_usb's deny_remote feature used strtok(), a non-reentrant function, in multiple concurrent authentication threads managed by display managers such as GDM. This caused race conditions where strtok() calls from different threads interfere, corrupting the tokenization state and the TMUX environment variable in the process memory. The corruption leads to incorrect remote session detection decisions, potentially allowing or denying access improperly. The vulnerability is resolved in pam_usb version 0.9.0.
Potential Impact
The vulnerability can cause deny_remote=true to incorrectly identify remote or local sessions due to corrupted environment data and tokenization state in concurrent authentication threads. This can lead to improper authentication decisions, potentially allowing unauthorized access or denying legitimate access. The impact affects confidentiality and integrity of the authentication process but does not affect availability. The CVSS score is 6.3, indicating medium severity.
Mitigation Recommendations
A fix is available in pam_usb version 0.9.0. Users should upgrade to version 0.9.0 or later to remediate this vulnerability. Since no official patch link or advisory is provided, verify the upgrade availability from the vendor or trusted repositories. No other mitigation is specified.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-05-18T23:03:37.229Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a175c27e29bf47b50eb60a1
Added to database: 05/27/2026, 21:03:35 UTC
Last enriched: 05/27/2026, 21:34:06 UTC
Last updated: 07/31/2026, 19:22:59 UTC
Views: 70
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.