Moderate severityNVD Advisory· Published May 8, 2014· Updated May 6, 2026
CVE-2014-0109
CVE-2014-0109
Description
Apache CXF before 2.6.14 and 2.7.x before 2.7.11 allows remote attackers to cause a denial of service (memory consumption) via a large request with the Content-Type set to text/html to a SOAP endpoint, which triggers an error.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
org.apache.cxf:cxf-coreMaven | < 2.6.14 | 2.6.14 |
org.apache.cxf:cxf-coreMaven | >= 2.7.0, < 2.7.11 | 2.7.11 |
Affected products
43cpe:2.3:a:apache:cxf:*:*:*:*:*:*:*:*+ 42 more
- cpe:2.3:a:apache:cxf:*:*:*:*:*:*:*:*range: <=2.6.13
- cpe:2.3:a:apache:cxf:2.4.0:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.4.1:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.4.2:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.4.3:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.4.4:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.4.5:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.4.6:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.4.7:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.5.0:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.5.1:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.5.2:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.5.3:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.5.4:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.5.5:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.5.6:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.5.7:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.5.8:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.5.9:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.6.0:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.6.1:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.6.10:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.6.11:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.6.12:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.6.2:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.6.3:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.6.4:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.6.5:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.6.6:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.6.7:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.6.8:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.6.9:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.7.0:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.7.1:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.7.10:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.7.2:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.7.3:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.7.4:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.7.5:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.7.6:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.7.7:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.7.8:*:*:*:*:*:*:*
- cpe:2.3:a:apache:cxf:2.7.9:*:*:*:*:*:*:*
Patches
2a5f907b1da89Update StaxInInterceptor to just create a html error message on the client side as the normal error handling works best on server side.
1 file changed · +15 −4
api/src/main/java/org/apache/cxf/interceptor/StaxInInterceptor.java+15 −4 modified@@ -21,6 +21,7 @@ import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import java.io.Reader; import java.util.HashMap; import java.util.List; @@ -36,8 +37,8 @@ import org.apache.cxf.common.util.StringUtils; import org.apache.cxf.helpers.CastUtils; import org.apache.cxf.helpers.HttpHeaderHelper; -import org.apache.cxf.helpers.IOUtils; import org.apache.cxf.message.Message; +import org.apache.cxf.message.MessageUtils; import org.apache.cxf.phase.AbstractPhaseInterceptor; import org.apache.cxf.phase.Phase; import org.apache.cxf.staxutils.StaxUtils; @@ -73,10 +74,20 @@ public void handleMessage(Message message) { } String contentType = (String)message.get(Message.CONTENT_TYPE); - if (contentType != null && contentType.contains("text/html")) { - String htmlMessage = null; + if (contentType != null + && contentType.contains("text/html") + && MessageUtils.isRequestor(message)) { + StringBuilder htmlMessage = new StringBuilder(1024); try { - htmlMessage = IOUtils.toString(is, 500); + if (reader == null) { + reader = new InputStreamReader(is, (String)message.get(Message.ENCODING)); + } + char s[] = new char[1024]; + int i = reader.read(s); + while (htmlMessage.length() < 64536 && i > 0) { + htmlMessage.append(s, 0, i); + i = reader.read(s); + } } catch (IOException e) { throw new Fault(new org.apache.cxf.common.i18n.Message("INVALID_HTML_RESPONSETYPE", LOG, "(none)"));
6dd839afbb4dUpdate StaxInInterceptor to just create a html error message on the client side as the normal error handling works best on server side.
1 file changed · +15 −4
api/src/main/java/org/apache/cxf/interceptor/StaxInInterceptor.java+15 −4 modified@@ -21,6 +21,7 @@ import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import java.io.Reader; import java.util.HashMap; import java.util.List; @@ -36,8 +37,8 @@ import org.apache.cxf.common.util.StringUtils; import org.apache.cxf.helpers.CastUtils; import org.apache.cxf.helpers.HttpHeaderHelper; -import org.apache.cxf.helpers.IOUtils; import org.apache.cxf.message.Message; +import org.apache.cxf.message.MessageUtils; import org.apache.cxf.phase.AbstractPhaseInterceptor; import org.apache.cxf.phase.Phase; import org.apache.cxf.staxutils.StaxUtils; @@ -73,10 +74,20 @@ public void handleMessage(Message message) { } String contentType = (String)message.get(Message.CONTENT_TYPE); - if (contentType != null && contentType.contains("text/html")) { - String htmlMessage = null; + if (contentType != null + && contentType.contains("text/html") + && MessageUtils.isRequestor(message)) { + StringBuilder htmlMessage = new StringBuilder(1024); try { - htmlMessage = IOUtils.toString(is, 500); + if (reader == null) { + reader = new InputStreamReader(is, (String)message.get(Message.ENCODING)); + } + char s[] = new char[1024]; + int i = reader.read(s); + while (htmlMessage.length() < 64536 && i > 0) { + htmlMessage.append(s, 0, i); + i = reader.read(s); + } } catch (IOException e) { throw new Fault(new org.apache.cxf.common.i18n.Message("INVALID_HTML_RESPONSETYPE", LOG, "(none)"));
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
22- cxf.apache.org/security-advisories.data/CVE-2014-0109.txt.ascnvdVendor Advisory
- github.com/advisories/GHSA-5wqf-h3r3-gxvhghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2014-0109ghsaADVISORY
- rhn.redhat.com/errata/RHSA-2014-1351.htmlnvdWEB
- rhn.redhat.com/errata/RHSA-2015-0850.htmlnvdWEB
- rhn.redhat.com/errata/RHSA-2015-0851.htmlnvdWEB
- cxf.apache.org/security-advisories.data/CVE-2014-0109.txt.ascghsaWEB
- github.com/apache/cxf/commit/6dd839afbb4d834ed668738bd89e7775c1cf2f9dghsaWEB
- github.com/apache/cxf/commit/a5f907b1da89453919218ba0bf70be0d8b6810c5ghsaWEB
- lists.apache.org/thread.html/r36e44ffc1a9b365327df62cdfaabe85b9a5637de102cea07d79b2dbf@%3Ccommits.cxf.apache.org%3EghsaWEB
- lists.apache.org/thread.html/rc774278135816e7afc943dc9fc78eb0764f2c84a2b96470a0187315c@%3Ccommits.cxf.apache.org%3EghsaWEB
- lists.apache.org/thread.html/rd49aabd984ed540c8ff7916d4d79405f3fa311d2fdbcf9ed307839a6@%3Ccommits.cxf.apache.org%3EghsaWEB
- lists.apache.org/thread.html/rec7160382badd3ef4ad017a22f64a266c7188b9ba71394f0d321e2d4@%3Ccommits.cxf.apache.org%3EghsaWEB
- lists.apache.org/thread.html/rfb87e0bf3995e7d560afeed750fac9329ff5f1ad49da365129b7f89e@%3Ccommits.cxf.apache.org%3EghsaWEB
- lists.apache.org/thread.html/rff42cfa5e7d75b7c1af0e37589140a8f1999e578a75738740b244bd4@%3Ccommits.cxf.apache.org%3EghsaWEB
- www.securitytracker.com/id/1030201nvd
- lists.apache.org/thread.html/r36e44ffc1a9b365327df62cdfaabe85b9a5637de102cea07d79b2dbf%40%3Ccommits.cxf.apache.org%3Envd
- lists.apache.org/thread.html/rc774278135816e7afc943dc9fc78eb0764f2c84a2b96470a0187315c%40%3Ccommits.cxf.apache.org%3Envd
- lists.apache.org/thread.html/rd49aabd984ed540c8ff7916d4d79405f3fa311d2fdbcf9ed307839a6%40%3Ccommits.cxf.apache.org%3Envd
- lists.apache.org/thread.html/rec7160382badd3ef4ad017a22f64a266c7188b9ba71394f0d321e2d4%40%3Ccommits.cxf.apache.org%3Envd
- lists.apache.org/thread.html/rfb87e0bf3995e7d560afeed750fac9329ff5f1ad49da365129b7f89e%40%3Ccommits.cxf.apache.org%3Envd
- lists.apache.org/thread.html/rff42cfa5e7d75b7c1af0e37589140a8f1999e578a75738740b244bd4%40%3Ccommits.cxf.apache.org%3Envd
News mentions
0No linked articles in our index yet.