CVE-2026-27855 Overview
CVE-2026-27855 is a replay attack vulnerability affecting Dovecot OTP (One-Time Password) authentication. When the auth cache is enabled and the username is altered in passdb, OTP credentials can be cached in a way that allows the same OTP reply to remain valid for subsequent authentication attempts. An attacker who is able to observe an OTP exchange can exploit this condition to authenticate as the legitimate user.
This vulnerability falls under CWE-294 (Authentication Bypass by Capture-replay), a class of vulnerabilities where authentication mechanisms fail to properly invalidate credentials after use, enabling replay attacks.
Critical Impact
Attackers who can observe OTP exchanges may gain unauthorized access to user accounts by replaying captured authentication credentials.
Affected Products
- Dovecot mail server (versions with auth cache enabled)
- Systems using OTP authentication with passdb username alteration
- Environments with unsecured authentication connections
Discovery Timeline
- 2026-03-27 - CVE CVE-2026-27855 published to NVD
- 2026-03-30 - Last updated in NVD database
Technical Details for CVE-2026-27855
Vulnerability Analysis
The vulnerability stems from an improper interaction between Dovecot's authentication cache mechanism and username alterations performed by the passdb lookup. Under normal OTP operation, each one-time password should only be valid for a single authentication attempt. However, when auth cache is enabled and the passdb modifies the username during authentication, the caching mechanism can store the OTP credentials in a manner that allows them to be reused.
This creates a window of opportunity where an attacker who has captured an OTP exchange—either through network interception on an unsecured connection or other means—can replay the captured credentials to successfully authenticate as the victim user. The attack requires the attacker to observe the authentication exchange, making unsecured connections particularly vulnerable.
Root Cause
The root cause lies in the authentication cache's handling of OTP credentials when username transformation occurs in passdb. The cache key generation or validation logic does not properly account for the one-time nature of OTP tokens when username alterations are involved, leading to credential caching that violates OTP security principles.
When passdb alters the username during authentication, the cached authentication result may be stored and retrieved in a way that bypasses the OTP replay protection mechanisms, allowing the same OTP value to authenticate successfully multiple times.
Attack Vector
The attack requires network access and the ability to observe an OTP authentication exchange. In environments using unsecured connections for authentication, an attacker positioned on the network path can capture the OTP credentials during transmission. The attacker can then replay these captured credentials to gain unauthorized access to the victim's account.
The attack complexity is considered high due to the specific conditions required: auth cache must be enabled, passdb must alter the username, and the attacker must be able to observe the authentication exchange. User interaction is required as the legitimate user must perform an authentication that the attacker can observe.
The vulnerability enables an attacker to gain unauthorized access to user accounts, potentially leading to unauthorized email access, data exposure, and the ability to impersonate the compromised user. No publicly available exploits are currently known.
Detection Methods for CVE-2026-27855
Indicators of Compromise
- Multiple successful authentications using identical OTP tokens for the same user account
- Successful authentication attempts from different IP addresses or geographic locations in rapid succession for the same user
- Authentication log entries showing OTP reuse patterns that violate normal one-time password behavior
Detection Strategies
- Monitor authentication logs for repeated successful OTP authentications with the same token value
- Implement alerting on authentication attempts from multiple distinct IP addresses within the OTP validity window
- Review auth cache hit patterns for anomalies indicating credential replay
- Analyze network traffic for signs of credential interception on unsecured authentication channels
Monitoring Recommendations
- Enable detailed logging for OTP authentication events including cache hits and misses
- Implement real-time monitoring of authentication patterns to detect replay attempts
- Deploy network monitoring to identify unsecured authentication traffic
- Establish baseline authentication behavior to detect anomalous replay patterns
How to Mitigate CVE-2026-27855
Immediate Actions Required
- Switch from OTP to SCRAM (Salted Challenge Response Authentication Mechanism) protocol, especially if authentication occurs over unsecure connections
- Ensure all authentication communications are secured using TLS/SSL encryption
- Consider migrating to OAUTH2 authentication which provides stronger replay protection
- Review and audit passdb configurations for username alterations that may trigger the vulnerability
Patch Information
Consult the Open-Xchange Security Advisory for detailed patch information and affected version specifics. Apply vendor-provided patches as they become available.
Workarounds
- Disable auth cache if OTP authentication must continue to be used until patches are applied
- Migrate to SCRAM or OAUTH2 authentication protocols which are not affected by this vulnerability
- Enforce TLS encryption for all authentication connections to prevent credential observation
- Review passdb configurations to minimize or eliminate username alterations during authentication
- Implement additional monitoring and alerting for authentication anomalies
# Configuration example - Disable auth cache as temporary mitigation
# In dovecot.conf or auth configuration:
auth_cache_size = 0
# Alternative: Force TLS for all authentication
ssl = required
disable_plaintext_auth = yes
# Consider switching to SCRAM authentication
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
mechanisms = scram-sha-256
}
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


