CVE-2026-48983
Received Received - Intake
Symlink Race Condition in pam_usb Authentication Bypass

Publication date: 2026-06-18

Last updated on: 2026-06-18

Assigner: GitHub, Inc.

Description
pam_usb provides hardware authentication for Linux using ordinary removable media. In versions prior to 0.9.2, a symlink race condition exists in per-device and per-user pad directory creation. pam_usb uses a check-then-act pattern: it calls lstat() to test for existence and then calls mkdir() separately to create the directory. A local attacker can win the race between these calls by replacing the target path with a symlink to a directory they control. If successful, one-time pad files may be written to an attacker-controlled location, potentially exposing future pad values before use or disrupting authentication. This issue has been fixed in version 0.9.2.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-06-18
Last Modified
2026-06-18
Generated
2026-06-19
AI Q&A
2026-06-18
EPSS Evaluated
N/A
NVD
EUVD
Affected Vendors & Products
Showing 2 associated CPEs
Vendor Product Version / Range
mcdope pam_usb to 0.9.2 (exc)
mcdope pam_usb From 0.9.2 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-367 The product checks the state of a resource before using that resource, but the resource's state can change between the check and the use in a way that invalidates the results of the check.
Attack-Flow Graph
AI Quick Actions
Instant insights powered by AI
Executive Summary

CVE-2026-48983 is a Time-of-Check to Time-of-Use (TOCTOU) race condition vulnerability in the pam_usb software, affecting versions 0.9.1 and earlier.

The vulnerability occurs during the creation of pad directories, where pam_usb uses a check-then-act pattern by first checking if a directory exists with lstat() and then creating it with mkdir().

A local attacker can exploit the race window between these two calls by replacing the target directory path with a symbolic link to a directory they control.

If successful, the attacker can cause one-time pad files to be written to a location they control, potentially exposing future pad values before use or disrupting authentication.

This issue has been fixed in version 0.9.2 by changing the directory creation logic to avoid the race condition.

Compliance Impact

The vulnerability in pam_usb allows a local attacker to potentially expose future one-time pad values by exploiting a symlink race condition. This exposure of sensitive authentication data could lead to unauthorized access or data disclosure.

Such unauthorized disclosure of sensitive authentication information may impact compliance with data protection standards and regulations like GDPR and HIPAA, which require safeguarding of confidential data and ensuring the integrity and confidentiality of authentication mechanisms.

However, the provided information does not explicitly state the direct effects on compliance with these standards.

Impact Analysis

This vulnerability can impact you by allowing a local attacker to gain unauthorized access to sensitive one-time pad files used for authentication.

By exploiting the race condition, the attacker may read future pad values before they are used, compromising confidentiality.

Additionally, the attacker could disrupt the authentication process, affecting the integrity and availability of the system.

The overall severity is moderate with a CVSS score of 5.8, indicating a local attack vector with high complexity and low privileges required.

Detection Guidance

This vulnerability is a race condition in the pam_usb software versions 0.9.1 and earlier, specifically in the creation of pad directories using a check-then-act pattern (lstat() followed by mkdir()). Detection involves verifying the installed version of pam_usb and checking for the presence of the vulnerable code pattern.

You can detect if your system is vulnerable by checking the installed pam_usb version with the following command:

  • pam_usb --version

If the version is earlier than 0.9.2, your system is vulnerable.

Additionally, to detect exploitation attempts or suspicious activity related to this vulnerability, you can monitor for unexpected symbolic links in the pad directories or unusual writes to one-time pad files. For example, you can use:

  • find /path/to/pad/directories -type l -ls
  • ls -l /path/to/pad/directories

Since the vulnerability involves a race condition during directory creation, direct detection of the race itself is difficult, but monitoring for unexpected symlinks or changes in pad file locations may help.

Mitigation Strategies

The primary mitigation step is to upgrade pam_usb to version 0.9.2 or later, where the race condition has been fixed by replacing the vulnerable lstat()+mkdir() pattern with a direct mkdir() call that treats EEXIST as success.

Until the upgrade can be applied, consider restricting local user privileges to prevent untrusted users from exploiting the race condition.

Additionally, monitor pad directories for unexpected symbolic links or unauthorized modifications to one-time pad files to detect potential exploitation attempts.

Chat Assistant
Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-48983. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70
EPSS Chart