Denial of Service Vulnerability in Apache POI (CVE-2014-3574)

libapache-poi-java Updated 02 Oct 2025

Summary

04/09/2014
N/A
Yes i
Unrated
Not published

CVE-2014-3574: Apache POI before 3.10.1 and 3.11.x before 3.11-beta2 allows remote attackers to cause a denial of service (CPU consumption and crash) via a crafted OOXML file, aka an XML Entity Expansion (XEE) attack. Affects libapache-poi-java versions < 3.10.1-1. Fixed in 3.10.1-1. How to fix ↓

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Upload your dependency manifest or SBOM

Drag & drop your file here or

Java Javascript PHP Python Go Rust Ruby Dart C/C++ Elixir CycloneDX SPDX

Upload a supported dependency manifest or SBOM. No installation or source-code access required.

See supported files and SBOM formats
SBOM sbom.json · bom.json · bom.xml · *.spdx.json · *.cdx.json · *.cdx.xml
Java pom.xml · gradle.lockfile · buildscript-gradle.lockfile
Javascript package-lock.json · yarn.lock · pnpm-lock.yaml
PHP composer.lock
Python poetry.lock · requirements.txt · Pipfile.lock
Go go.mod
Rust Cargo.lock
Ruby Gemfile.lock
Dart pubspec.lock
C/C++ conan.lock
Elixir mix.lock
Enter your work email to receive your report link.

Verify your email to view the full report and start 30 days of continuous monitoring. No credit card required.

Sponsored Devnack Penetration testing for web, API and mobile Manual testing by engineers who build software, not an auditor's checklist. Trusted by teams at Swift and Google Talk to Devnack

Background

Apache POI is a popular open-source library used for reading and writing Microsoft Office file formats, including OOXML (Office Open XML) and OLE2 (Object Linking and Embedding). It provides a robust API for developers to manipulate spreadsheet, document, and presentation files in Java applications. However, certain versions of Apache POI are vulnerable to a denial of service attack due to improper handling of crafted OOXML files, which can lead to excessive CPU consumption and application crashes.

Vulnerability Detail

The vulnerability identified as CVE-2014-3574 affects Apache POI versions prior to 3.10.1 and 3.11.x before 3.11-beta2. It allows remote attackers to exploit the library by sending specially crafted OOXML files that trigger an XML Entity Expansion (XEE) attack. This type of attack can cause the application to consume excessive CPU resources, potentially leading to a denial of service condition where the application becomes unresponsive or crashes. The root cause lies in the library's failure to properly handle nested XML entities, which can be exploited by attackers to create deeply nested structures that overwhelm the parser.

How To Fix

Minimum fixed version

3.10.1-1

This is the first release that contains the fix.

sudo apt-get install --only-upgrade libapache-poi-java

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Workaround

If upgrading is not immediately possible, consider implementing input validation to reject any OOXML files that contain suspicious or overly complex XML structures. Additionally, monitor application performance and CPU usage closely when processing OOXML files to detect potential denial of service attempts early.

Conclusion

CVE-2014-3574 is a significant vulnerability in Apache POI that can lead to denial of service through crafted OOXML files. Users are strongly advised to upgrade to the latest versions of the library to mitigate this risk. In the meantime, implementing workarounds can help protect applications from potential exploitation.

See every vulnerability recorded for libapache-poi-java →

Share this vulnerability

FAQ

CVE-2014-3574 is a vulnerability in Apache POI that allows remote attackers to cause denial of service through crafted OOXML files.

Apache POI versions before 3.10.1 and 3.11.x before 3.11-beta2 are affected by this vulnerability.

Exploitation of this vulnerability can lead to high CPU consumption and application crashes, resulting in denial of service.

You can use the Vulert playground at Vulert Scanner to check if your application is affected by this vulnerability without needing to sign up.

Implement input validation to reject suspicious OOXML files and monitor application performance closely.

Related vulnerabilities

Recent vulnerabilities recorded for libapache-poi-java.

How To Fix

Minimum fixed version

3.10.1-1

This is the first release that contains the fix.

sudo apt-get install --only-upgrade libapache-poi-java

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback