CVE-2025-3891 Overview
A denial of service vulnerability has been identified in the mod_auth_openidc module for Apache httpd. This flaw allows a remote, unauthenticated attacker to trigger a denial of service by sending an empty POST request when the OIDCPreservePost directive is enabled. The server crashes consistently, affecting availability and disrupting authentication services for all users relying on OpenID Connect integration.
Critical Impact
Remote unauthenticated attackers can crash Apache httpd servers with a single malformed request, causing complete service disruption for organizations using OpenID Connect authentication.
Affected Products
- Apache HTTP Server with mod_auth_openidc module
- Red Hat Enterprise Linux 7.0, 8.0, and 9.0
- Debian Linux 11.0
Discovery Timeline
- April 29, 2025 - CVE-2025-3891 published to NVD
- July 28, 2025 - Last updated in NVD database
Technical Details for CVE-2025-3891
Vulnerability Analysis
This vulnerability resides in the mod_auth_openidc module, which provides OpenID Connect authentication capability for Apache httpd servers. The flaw is triggered when the OIDCPreservePost directive is enabled, a configuration option commonly used to preserve POST data across authentication redirects during the OpenID Connect flow.
When a remote attacker sends an empty POST request to an endpoint protected by mod_auth_openidc with OIDCPreservePost enabled, the module fails to properly handle the edge case of zero-length POST body data. This improper handling results in an uncaught exception (CWE-248) that propagates up the call stack and causes the Apache worker process to crash. The vulnerability is particularly dangerous because it requires no authentication and can be exploited with minimal network resources—a single crafted HTTP request is sufficient to crash the server.
The attack is network-accessible and requires low complexity to execute. No user interaction is needed, making this vulnerability easily exploitable by automated scripts or tools. While the vulnerability does not impact confidentiality or integrity, the availability impact is substantial as organizations relying on OpenID Connect for authentication will experience complete service disruption.
Root Cause
The root cause is improper input validation in the POST data preservation logic within mod_auth_openidc. The module does not adequately validate that the POST body contains data before attempting to process it. When an empty POST request is received, the code path that handles POST data preservation encounters an uncaught exception condition (CWE-248), leading to process termination rather than graceful error handling.
Attack Vector
The attack vector is network-based and requires no special privileges or user interaction. An attacker can exploit this vulnerability by:
- Identifying an Apache httpd server with mod_auth_openidc installed and OIDCPreservePost enabled
- Sending an HTTP POST request with an empty body to any protected endpoint
- The server crashes immediately upon processing the malformed request
The attack can be repeated to maintain a persistent denial of service condition. Since the vulnerability can be triggered without authentication, any publicly accessible endpoint using OpenID Connect authentication is potentially vulnerable.
Detection Methods for CVE-2025-3891
Indicators of Compromise
- Repeated Apache httpd child process crashes in system logs
- Error messages in Apache error logs indicating uncaught exceptions in mod_auth_openidc
- Abnormal patterns of empty POST requests in access logs targeting protected endpoints
- Service availability issues coinciding with specific POST request patterns
Detection Strategies
- Monitor Apache error logs for segmentation faults or uncaught exception errors associated with mod_auth_openidc
- Implement web application firewall (WAF) rules to detect and block empty POST requests to OpenID Connect protected endpoints
- Configure network intrusion detection systems (IDS) to alert on patterns of empty POST requests followed by connection resets
- Deploy application performance monitoring to detect sudden drops in Apache worker process counts
Monitoring Recommendations
- Set up automated alerting for Apache httpd service restarts and child process crashes
- Monitor the OIDCPreservePost directive usage across your Apache configurations to identify potentially vulnerable deployments
- Implement log correlation to identify source IPs sending multiple empty POST requests
- Track HTTP 500 error rates on authentication endpoints as an early warning indicator
How to Mitigate CVE-2025-3891
Immediate Actions Required
- Update mod_auth_openidc to the patched version immediately on all affected systems
- If patching is not immediately possible, consider temporarily disabling the OIDCPreservePost directive
- Implement WAF rules to reject empty POST requests to protected endpoints as an interim measure
- Review and apply Red Hat security advisories for Enterprise Linux systems
Patch Information
Multiple vendors have released patches addressing this vulnerability. Red Hat has published several security advisories including RHSA-2025:4597, RHSA-2025:9396, RHSA-2025:10002, RHSA-2025:10003, and RHSA-2025:10004 covering Enterprise Linux 7, 8, and 9. Debian has released updates documented in the Debian LTS Announcement for May 2025. The upstream fix is available via the GitHub commit 6a0b5f66c87184dfe0e4400f6bdd46a82dc0ec2b. Additional details are available in the GitHub Security Advisory GHSA-x7cf-8wgv-5j86.
Workarounds
- Disable the OIDCPreservePost directive in Apache configuration if POST data preservation is not required for your authentication flow
- Implement a reverse proxy or WAF rule to validate POST request body length before forwarding to Apache
- Consider using mod_security rules to filter empty POST requests to OpenID Connect endpoints
- Deploy load balancer health checks to automatically remove crashed instances from rotation
# Configuration example - Disable OIDCPreservePost as a temporary workaround
# In your Apache configuration file (e.g., /etc/httpd/conf.d/auth_openidc.conf)
# Comment out or set OIDCPreservePost to Off
# OIDCPreservePost On
OIDCPreservePost Off
# Restart Apache to apply changes
sudo systemctl restart httpd
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


