CVE-2026-102631: authd: Account takeover via username fallback in identity matching after IdP email reassignment
In authd before 0.7.1, the user identity matching in UpdateUser (internal/users/manager.go) resolves an incoming login by the broker-scoped provider ID, but falls back to matching the username when the provider ID does not belong to any known user, and does not reject a conflicting non-empty provider ID. If an identity provider reassigns an email address, which authd uses as the username, to a new account, the new account inherits the previous user's local UID and home directory on its next login. This allows the new user to access and modify files belonging to the previous user, including credentials such as SSH keys and cloud API tokens, and silently rebinds the local account record to the new identity. As a mitigation, administrators should lock or delete the previous user's local authd account when the corresponding IdP account is removed.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
authdto a version that resolves this vulnerability.Fixed in 0.7.1 - Compensating control
Lock or delete the previous user's local authd account when the corresponding identity-provider account is removed.
Event History
Frequently Asked Questions
Which deployments are exposed?
Canonical Authd versions before 0.7.1 are affected. Exploitation requires an identity provider to reassign an email address used by authd as a username from a previous account to a new account.
What does an attacker need to exploit this issue?
The attacker needs to authenticate as the new identity-provider account that received the reassigned email address. On the next login, authd can associate that identity with the previous user’s local UID and home directory.
What can administrators do before updating?
When an IdP account is removed, lock or delete its corresponding local authd account. This prevents a later IdP account assigned the same email address from inheriting that local account.