Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2021-30468

CVE-2021-30468: Apache CXF DOS Vulnerability

CVE-2021-30468 is a denial of service flaw in Apache CXF that allows attackers to cause infinite loops through malformed JSON. This article covers the technical details, affected versions, impact, and mitigation.

Published:

CVE-2021-30468 Overview

A vulnerability in the JsonMapObjectReaderWriter component of Apache CXF allows an attacker to submit malformed JSON to a web service, which results in the thread getting stuck in an infinite loop, consuming CPU indefinitely. This denial of service vulnerability affects Apache CXF versions prior to 3.4.4 and versions prior to 3.3.11, as well as downstream products that incorporate the vulnerable library including Apache TomEE and multiple Oracle enterprise products.

Critical Impact

Unauthenticated remote attackers can cause complete service unavailability by sending crafted JSON payloads, leading to CPU exhaustion and denial of service conditions affecting all users of the targeted web service.

Affected Products

  • Apache CXF versions prior to 3.4.4
  • Apache CXF versions prior to 3.3.11
  • Apache TomEE 8.0.6
  • Oracle Business Intelligence 5.5.0.0.0, 5.9.0.0.0, 12.2.1.3.0, 12.2.1.4.0 (Enterprise Edition)
  • Oracle Communications Element Manager 8.2.2
  • Oracle Communications Messaging Server 8.1

Discovery Timeline

  • 2021-06-16 - CVE-2021-30468 published to NVD
  • 2024-11-21 - Last updated in NVD database

Technical Details for CVE-2021-30468

Vulnerability Analysis

This vulnerability is classified under CWE-835 (Loop with Unreachable Exit Condition - Infinite Loop) and CWE-400 (Uncontrolled Resource Consumption). The flaw exists in the JSON parsing logic within Apache CXF's JsonMapObjectReaderWriter class, which is responsible for reading and writing JSON map objects in web service communications.

When processing specially crafted malformed JSON input, the parser enters a loop condition that cannot terminate normally. The parser fails to properly handle certain malformed structures, causing it to continue processing indefinitely. This behavior allows unauthenticated attackers to exhaust server resources by sending malicious JSON payloads to any endpoint that uses the affected JSON processing component.

The attack requires no authentication or special privileges, and can be executed remotely over the network. Since the vulnerability affects the availability of the service without impacting confidentiality or integrity, it represents a significant operational risk for organizations running affected Apache CXF deployments.

Root Cause

The root cause is improper input validation in the JSON parsing logic of the JsonMapObjectReaderWriter class. The parser does not properly validate JSON structure boundaries during parsing, allowing certain malformed input patterns to create loop conditions with unreachable exit states. This is a classic example of insufficient defensive programming in input handling routines, where edge cases in malformed data are not properly anticipated and handled.

Attack Vector

The attack vector is network-based and requires no authentication. An attacker can exploit this vulnerability by sending HTTP requests containing malformed JSON payloads to any web service endpoint that processes JSON using Apache CXF's affected components.

The malformed JSON payload triggers an infinite loop in the JsonMapObjectReaderWriter class. Each malicious request causes a thread to become permanently occupied, consuming CPU resources. By sending multiple requests, an attacker can exhaust the thread pool and CPU capacity, rendering the service unavailable to legitimate users.

For technical details on the vulnerability mechanism, refer to the Apache CXF Security Advisory and the Openwall OSS-Security Post.

Detection Methods for CVE-2021-30468

Indicators of Compromise

  • Sustained high CPU utilization on application servers running Apache CXF-based web services
  • Thread pool exhaustion indicated by blocked or stuck threads in Java thread dumps
  • Increasing response times or timeout errors from web service endpoints
  • Presence of malformed JSON requests in web server access logs with unusually long processing times

Detection Strategies

  • Monitor application thread states for threads stuck in JsonMapObjectReaderWriter parsing methods
  • Implement request timeout mechanisms to detect and terminate long-running JSON parsing operations
  • Deploy web application firewalls (WAF) with JSON validation rules to identify malformed payloads
  • Use Java profiling tools to identify infinite loop conditions in CXF JSON processing components

Monitoring Recommendations

  • Configure alerting on CPU utilization thresholds exceeding normal baselines for application servers
  • Implement thread monitoring to detect threads blocked for extended periods in JSON parsing operations
  • Set up log analysis for HTTP 5xx errors and timeout patterns that may indicate DoS conditions
  • Monitor thread pool metrics to detect gradual exhaustion patterns indicative of ongoing attacks

How to Mitigate CVE-2021-30468

Immediate Actions Required

  • Upgrade Apache CXF to version 3.4.4 or later (for 3.4.x branch) or version 3.3.11 or later (for 3.3.x branch)
  • Review and update any dependent products including Apache TomEE and Oracle products to their patched versions
  • Implement request timeout configurations at the application server and web server levels
  • Deploy WAF rules to validate JSON structure and reject malformed payloads before they reach the application

Patch Information

Apache has released patched versions to address this vulnerability. Users should upgrade to Apache CXF 3.4.4 or later, or 3.3.11 or later, depending on their deployment branch. The security fix addresses the infinite loop condition in the JsonMapObjectReaderWriter class by implementing proper input validation and loop termination logic.

For Oracle products, patches are available through the Oracle October 2021 Critical Patch Update and the Oracle April 2022 Critical Patch Update. Additional vendor-specific guidance is available in the NetApp Security Advisory.

Workarounds

  • Implement request timeout settings at the servlet container level to automatically terminate long-running requests
  • Configure reverse proxy or load balancer timeouts to prevent stuck threads from consuming resources indefinitely
  • Deploy rate limiting on JSON-accepting endpoints to reduce the impact of potential DoS attempts
  • Consider implementing JSON schema validation middleware to reject malformed payloads before CXF processing
bash
# Example: Configure request timeout in Apache Tomcat server.xml
# Add connectionTimeout attribute to prevent indefinite request processing
# <Connector port="8080" protocol="HTTP/1.1"
#            connectionTimeout="30000"
#            maxThreads="200" />

# For Apache CXF, configure receive timeout in cxf.xml or programmatically
# <http:conduit name="*.http-conduit">
#   <http:client ReceiveTimeout="30000" ConnectionTimeout="30000"/>
# </http:conduit>

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.