CVE-2026-59680: yast2-users: OS command injection via LDAP-supplied shadowLastChange/shadowExpire attribute
An OS command injection vulnerability was found in yast2-users. When displaying the "Password Settings" tab of a user, getpasswordterm() in src/include/users/dialogs.rb read the shadowLastChange and shadowExpire fields with GetString(), which performs no numeric validation, and passed the resulting string to formatdaysafterepoch(). That helper interpolated the value into a shell command executed via Ruby backticks without quoting or escaping.
Impact: an administrator who manages users against an external/federated LDAP directory via yast2 users triggers root command execution the moment they view or edit that particular user's "Password Settings" tab. No "join domain" or trust setup is required, just browsing/editing one user entry.
This issue affects yast2-users through 5.0.8.
Affected Software
Event History
Frequently Asked Questions
Which deployments are exposed to this issue?
Deployments where an administrator manages user accounts against an external or federated LDAP directory using yast2 users are exposed. No domain-join or trust configuration is required.
What is required for exploitation to occur?
An attacker needs to control the LDAP-supplied shadowLastChange or shadowExpire value for a user entry. Root command execution is triggered when an administrator views or edits that user's Password Settings tab.
Which versions are affected?
The issue affects yast2-users through version 5.0.8.