CVE-2022-0084 Overview
A flaw was found in XNIO, specifically in the notifyReadClosed method. The issue revealed this method was logging a message to another expected end. This flaw allows an attacker to send flawed requests to a server, possibly causing log contention-related performance concerns or an unwanted disk fill-up.
This vulnerability is classified as Resource Exhaustion (CWE-770), which occurs when an application does not properly control the allocation and maintenance of a limited resource, allowing an actor to influence the amount of resources consumed, eventually leading to the exhaustion of available resources.
Critical Impact
Attackers can exploit this logging flaw to cause denial of service through disk exhaustion or severe performance degradation via log contention on systems running XNIO-based applications.
Affected Products
- Red Hat XNIO
- Red Hat Integration Camel K
- Red Hat Integration Camel Quarkus
- Red Hat Single Sign-On 7.0
Discovery Timeline
- 2022-08-26 - CVE-2022-0084 published to NVD
- 2024-11-21 - Last updated in NVD database
Technical Details for CVE-2022-0084
Vulnerability Analysis
The vulnerability exists within the XNIO library's notifyReadClosed method in the StreamConnection.java class. XNIO is a low-level I/O layer used by Red Hat's WildFly application server and other Java-based middleware products. The core issue stems from improper logging behavior where the method logs messages to an unintended destination.
When processing connection closure events, the notifyReadClosed method generates log entries that can be triggered by specially crafted network requests. An attacker can exploit this by sending malformed or rapid sequences of requests designed to trigger excessive logging. Since the logging operation lacks proper rate limiting or resource controls, this creates a resource exhaustion condition.
Root Cause
The root cause is classified under CWE-770: Allocation of Resources Without Limits or Throttling. The notifyReadClosed method in StreamConnection.java performs logging operations without adequate controls on:
- The volume of log messages that can be generated
- The rate at which logging can occur
- The total disk space that can be consumed by log files
The fix introduced proper logging controls through the org.jboss.logging.Logger class, as evidenced by the patch that adds the Logger import to handle logging operations more appropriately.
Attack Vector
The vulnerability is exploitable over the network without requiring authentication or user interaction. An attacker can target this flaw through the following approach:
- Identify a server running vulnerable XNIO-based applications (WildFly, JBoss, Camel, or Single Sign-On)
- Send crafted network requests designed to trigger connection closures that invoke the notifyReadClosed method
- Sustain the attack to continuously generate log entries
- The server's disk space becomes exhausted or logging contention degrades performance
The security patch addressed this issue by implementing proper logging controls in the StreamConnection.java file:
import java.io.IOException;
import java.util.concurrent.atomic.AtomicReference;
+import org.jboss.logging.Logger;
import org.xnio.channels.CloseListenerSettable;
import org.xnio.conduits.ConduitStreamSinkChannel;
import org.xnio.conduits.ConduitStreamSourceChannel;
Source: GitHub XNIO Commit fdefb3b
Detection Methods for CVE-2022-0084
Indicators of Compromise
- Rapid growth in application log file sizes without corresponding increase in legitimate traffic
- Unusual disk I/O patterns related to logging operations on XNIO-based application servers
- Performance degradation in WildFly, JBoss, or other XNIO-dependent services coinciding with network activity
- High volume of connection closure events in server logs from external sources
Detection Strategies
- Monitor disk space utilization on servers running XNIO-based applications for anomalous consumption patterns
- Implement log file size monitoring and alerting thresholds for Java middleware applications
- Deploy network traffic analysis to detect patterns consistent with log-flooding attacks targeting application servers
- Review application logs for unusual connection termination patterns that may indicate exploitation attempts
Monitoring Recommendations
- Configure disk space alerts at multiple thresholds (70%, 85%, 95%) for volumes containing application logs
- Implement centralized log management to correlate logging anomalies across XNIO-based deployments
- Monitor Java process CPU and I/O metrics for contention patterns indicative of logging bottlenecks
- Establish baseline logging volumes to facilitate anomaly detection
How to Mitigate CVE-2022-0084
Immediate Actions Required
- Update XNIO library to the patched version that includes commit fdefb3b8b715d33387cadc4d48991fb1989b0c12
- Review and update all affected Red Hat products including Integration Camel K, Integration Camel Quarkus, and Single Sign-On 7.0
- Implement log rotation policies to prevent complete disk exhaustion during potential attacks
- Configure rate limiting on network endpoints to reduce attack surface
Patch Information
Red Hat has addressed this vulnerability through updates to the XNIO library. Organizations should apply the security patches available through Red Hat's official channels. The fix has been merged via GitHub XNIO Pull Request #291 and is available in the official commit.
For detailed patch information and affected versions, consult the Red Hat CVE-2022-0084 Advisory and Red Hat Bug Report #2064226.
Workarounds
- Implement disk quotas for log directories to prevent complete disk exhaustion scenarios
- Configure log rotation with size-based limits (e.g., maximum 100MB per log file, retain only 5 files)
- Deploy network-level rate limiting to reduce the volume of potential malicious requests
- Consider implementing a separate logging partition to isolate log storage from critical system functions
# Example log rotation configuration for XNIO-based applications
# Add to /etc/logrotate.d/xnio-apps
/var/log/xnio/*.log {
daily
rotate 5
size 100M
compress
delaycompress
missingok
notifempty
create 0640 jboss jboss
}
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


