CVE-2026-54411

Linux-PAM pam_userdb Observable Timing Discrepancy in Plaintext Password Comparison

Published Jun 14, 2026 CVSS 4.0 · 6.9 Medium EPSS < 1% KEV · Not listed
Description
Linux-PAM through 1.7.2 contains an observable timing discrepancy (CWE-208) in the pam_userdb module's plaintext-password comparison path in modules/pam_userdb/pam_userdb.c that allows a local or network-adjacent attacker able to repeatedly drive authentication through a calling service to recover the plaintext password of a target account by measuring response-timing differences.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Ubuntu USN Ubuntu USN USN-8601-1 PAM vulnerability
History
Type Values Removed Values Added
Description Linux-PAM through 1.7.2 contains an observable timing discrepancy (CWE-208) in the pam_userdb module's plaintext-password comparison path in modules/pam_userdb/pam_userdb.c that allows a local or network-adjacent attacker able to repeatedly drive authentication through a calling service to recover the plaintext password of a target account by measuring response-timing differences. The comparison uses strncmp() (or strncasecmp() when PAM_ICASE_ARG is set) preceded by a length-equality check, so the time to reject a candidate depends on the index of the first differing byte and on whether the candidate's length matches the stored password, leaking the password length and individual prefix bytes. The vulnerable path is reached when the administrator configures pam_userdb with crypt=none, with an unrecognized crypt method, or without a crypt= argument, causing the module to store and compare credentials in plaintext. Linux-PAM through 1.7.2 contains an observable timing discrepancy (CWE-208) in the pam_userdb module's plaintext-password comparison path in modules/pam_userdb/pam_userdb.c that allows a local or network-adjacent attacker able to repeatedly drive authentication through a calling service to recover the plaintext password of a target account by measuring response-timing differences.
Title Linux-PAM pam_userdb - Observable Timing Discrepancy in Plaintext Password Comparison Linux-PAM pam_userdb Observable Timing Discrepancy in Plaintext Password Comparison
Type Values Removed Values Added
Title Linux-PAM pam_userdb Observable Timing Discrepancy in Plaintext Password Comparison Linux-PAM pam_userdb - Observable Timing Discrepancy in Plaintext Password Comparison
Type Values Removed Values Added
Title linux-pam: From CVEorg collector Linux-PAM pam_userdb Observable Timing Discrepancy in Plaintext Password Comparison
Type Values Removed Values Added
Title Timing Attack Enables Password Reconstruction in Linux-PAM pam_userdb linux-pam: From CVEorg collector
References
Metrics threat_severity

None

threat_severity

Moderate

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Title Timing Attack Enables Password Reconstruction in Linux-PAM pam_userdb
Type Values Removed Values Added
First Time appeared Linux-pam
Linux-pam linux-pam
Vendors & Products Linux-pam
Linux-pam linux-pam
Type Values Removed Values Added
Description Linux-PAM through 1.7.2 contains an observable timing discrepancy (CWE-208) in the pam_userdb module's plaintext-password comparison path in modules/pam_userdb/pam_userdb.c that allows a local or network-adjacent attacker able to repeatedly drive authentication through a calling service to recover the plaintext password of a target account by measuring response-timing differences. The comparison uses strncmp() (or strncasecmp() when PAM_ICASE_ARG is set) preceded by a length-equality check, so the time to reject a candidate depends on the index of the first differing byte and on whether the candidate's length matches the stored password, leaking the password length and individual prefix bytes. The vulnerable path is reached when the administrator configures pam_userdb with crypt=none, with an unrecognized crypt method, or without a crypt= argument, causing the module to store and compare credentials in plaintext.
Weaknesses CWE-208
References
Metrics cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N'}

cvssV4_0

{'score': 6.9, 'vector': 'CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:P/AU:N/V:D'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
TuranSec
Published
Updated
Aug 10, 2026, 11:43 AM
Reserved
Jun 13, 2026, 4:39 PM
Status
Deferred
Published
Jun 14, 2026, 6:17 PM
Modified
Aug 10, 2026, 12:17 PM
Severity
Moderate
Public date
Jun 14, 2026, 5:21 PM