Apache POI XXE Vulnerability in libapache-poi-java: Arbitrary File Read Risk

libapache-poi-java Updated 02 Oct 2025

Summary

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

CVE-2014-3529: The OPC SAX setup in Apache POI before 3.10.1 allows remote attackers to read arbitrary files via an OpenXML file containing an XML external entity declaration in conjunction with an entity reference, related to an XML E... 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 MarkAI Find prospects already talking about the problem you solve AI watches the communities your customers use to find qualified prospects, then alerts you when a conversation is worth joining. See MarkAI

Background

Apache POI is a popular open-source library used for reading and writing Microsoft Office file formats in Java applications. It provides support for various formats, including Excel, Word, and PowerPoint. The library is widely utilized in enterprise applications for document manipulation and generation. However, prior to version 3.10.1, it was vulnerable to an XML External Entity (XXE) attack, which could allow attackers to read arbitrary files on the server where the application is hosted.

Vulnerability Detail

The vulnerability, identified as CVE-2014-3529, arises from the OPC SAX setup in Apache POI versions before 3.10.1. It allows remote attackers to exploit an OpenXML file that contains an XML external entity declaration along with an entity reference. This can lead to unauthorized access to sensitive files on the server, potentially exposing confidential information and compromising the integrity of the application. The issue is categorized as an XXE vulnerability, which is a common security flaw in XML parsers that can be exploited if not properly mitigated.

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 an immediate upgrade is not possible, consider disabling XML external entity processing in your application. This can often be done by configuring the XML parser settings to prevent the processing of external entities. For example, if using a SAX parser, you can set the following property:

System.setProperty("javax.xml.XMLParser", "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactory");

This will help mitigate the risk until the library can be updated.

Conclusion

The CVE-2014-3529 vulnerability in Apache POI poses a significant risk by allowing unauthorized file access through XXE attacks. It is crucial for users of libapache-poi-java to upgrade to version 3.10.1-1 or later to mitigate this risk. Additionally, temporary workarounds can be employed to enhance security until the upgrade is completed.

See every vulnerability recorded for libapache-poi-java →

Share this vulnerability

FAQ

CVE-2014-3529 is a vulnerability in Apache POI that allows remote attackers to read arbitrary files through an XML external entity declaration in OpenXML files.

You can check if your application is affected by using the Vulert playground at Vulert Scanner, which analyzes your manifest file for vulnerabilities.

The main risk is unauthorized access to sensitive files on the server, which can lead to data breaches and compromise the security of the application.

Yes, you can disable XML external entity processing in your application as a temporary workaround until an upgrade can be performed.

All versions of libapache-poi-java prior to 3.10.1 are affected by this vulnerability.

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