CVE-2016-3425Unspecified vulnerability in Oracle Java SE 6u113, 7u99, and 8u77; Java SE Embedded 8u77; and JRockit R28.3.9 allows remote attackers to affect availability via vectors related to JAXP.
No public exploit
Nothing published shows this CVE being exploited, which is not the same as ruling it out. nothing published in 10 years.
CVSS E:U
A Waratek agent blocks this today.
Applicable rule: CVE has an ARMR patch rule that provides mitigation
| Decided by | armr-patch-file : An ARMR patch file on disk for this CVE |
|---|---|
| Finding | CVE has an ARMR patch rule that provides mitigation |
Shipped files covering this CVE. A CVE genuinely takes more than one: separate Maven artifacts hooking different parser classes, the same patch built for two ARMR versions, or a fix at both the framework and the container.
vcpu/2016/Q2-April/CVE-2016-3425/patch/2.6/CVE-2016-3425.armr patch rule added 2020-06-26 updated 2026-03-04app("2016 APRIL CPU"):
requires(version: "ARMR/2.6")
/***************************************************************************
CVE-2016-3425 (2016 APRIL CPU)
CVSS 2.0 Summary:
Base Score | 5.0 MEDIUM
Attack Vector | Network
Attack Complexity | Low
Authentication | None
Confidentiality | None
Integrity | None
Availability | Partial
Description:
It was discovered that the JAXP (Java API for XML Processing)
component of OpenJDK failed to properly handle Unicode surrogate
pairs used as part of the XML attribute values. A specially-crafted
XML input could cause a Java application to use an excessive amount
of memory when parsed.
Resources:
https://bugzilla.redhat.com/show_bug.cgi?id=1328040
Affected Versions:
6u113, 7u99, 8u77, JRockit R28.3.9
Tested Versions:
6u0 - 6u113
7u0 - 7u99
8u0 - 8u77
Protection Provided:
Functional
Patch Version:
1.1
***************************************************************************/
patch("CVE-2016-3425 :01"):
function("com/sun/org/apache/xerces/internal/impl/XMLScanner.scanAttributeValue(Lcom/sun/org/apache/xerces/internal/xni/XMLString;Lcom/sun/org/apache/xerces/internal/xni/XMLString;Ljava/lang/String;Lcom/sun/org/apache/xerces/internal/xni/XMLAttributes;IZ)V",
checksums: ["50db31616f", // 6u0 - 6u13
"b50b38f3b4", // 6u14
"aede41fe5a", // 6u15 - 6u17
"e7bca8149d", // 6u18 - 6u32
"bea0640262", // 6u33 - 6u60
"1185b63b21", // 6u65 - 6u95
"22a84f9127", // 7u0 - 7u4
"6b88b31531", // 7u5 - 7u40
"2a27bfc0e0"]) // 7u45 - 7u80, 8u0 - 8u45 (method doesn't exist after 7u80 and 8u45)
callsite("com/sun/org/apache/xerces/internal/impl/XMLScanner.scanSurrogates(Lcom/sun/org/apache/xerces/internal/util/XMLStringBuffer;)Z")
code(language: java, import: ["com.sun.org.apache.xerces.internal.util.XMLStringBuffer"]):
private static JavaField fStringBuffer3Field;
public void load() {
fStringBuffer3Field =
JavaField.load("com/sun/org/apache/xerces/internal/impl/XMLScanner.fStringBuffer3");
}
public void patch(JavaFrame frame) {
Object self = frame.loadThisVariable();
XMLStringBuffer fStringBuffer3 =
(XMLStringBuffer) fStringBuffer3Field.readObject(self);
fStringBuffer3.clear();
}
endcode
endpatch
patch("CVE-2016-3425 :02"):
function("com/sun/org/apache/xerces/internal/impl/XMLScanner.scanAttributeValue(Lcom/sun/org/apache/xerces/internal/xni/XMLString;Lcom/sun/org/apache/xerces/internal/xni/XMLString;Ljava/lang/String;Lcom/sun/org/apache/xerces/internal/xni/XMLAttributes;IZLjava/lang/String;)V",
checksums: ["bce4819389", // 6u101
"a478a49f1f", // 6u105
"5035374146", // 6u111 - 6u113
"62c9e78bb5", // 7u85, 8u51 - 8u60
"1023bc6b97", // 7u91, 8u65 - 8u66
"4408a2e24d"]) // 7u95 - 7u99, 8u71 - 8u77
callsite("com/sun/org/apache/xerces/internal/impl/XMLScanner.scanSurrogates(Lcom/sun/org/apache/xerces/internal/util/XMLStringBuffer;)Z")
code(language: java, import: ["com.sun.org.apache.xerces.internal.util.XMLStringBuffer"]):
private static JavaField fStringBuffer3Field;
public void load() {
fStringBuffer3Field =
JavaField.load("com/sun/org/apache/xerces/internal/impl/XMLScanner.fStringBuffer3");
}
public void patch(JavaFrame frame) {
Object self = frame.loadThisVariable();
XMLStringBuffer fStringBuffer3 =
(XMLStringBuffer) fStringBuffer3Field.readObject(self);
fStringBuffer3.clear();
}
endcode
endpatch
endapp
CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
2 metrics
VRT selects the newest version's highest entry and
publishes it as cvssScore, newest rather than largest because scores are not comparable
across versions, and highest rather than first because the first entry is frequently a CNA placeholder
scoring 0.0 over NVD's own analysis.
| Version | Score | Band | Vector | Assigner | Type | |
|---|---|---|---|---|---|---|
| CVSS 3.0 | 4.3 | MEDIUM | CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L |
NVD | Primary | published |
| CVSS 2.0 | 5.0 | no band published | AV:N/AC:L/Au:N/C:N/I:N/A:P |
NVD | Primary |
| Advisory | Type | Quarter | Products Oracle named in risk matrix |
|---|---|---|---|
| Oracle Critical Patch Update April 2016 ↗ | CPU | 2016-Q2 | Oracle Java SE / JAXP (Java SE: 6u113, 7u99, 8u77; Java SE Embedded: 8u77; JRockit: R28.3.9) |
| Family | Component | Oracle's version cell (verbatim) | Indexed as |
|---|---|---|---|
| Oracle Java SE | JAXP | Java SE: 6u113, 7u99, 8u77; Java SE Embedded: 8u77; JRockit: R28.3.9 | 6.0.113.0 · 7.0.99.0 · 8.0.77.0 |
| Source | Vendor | Product | Scheme | Affected Versions |
|---|---|---|---|---|
| nvd | oracle | jdk | javase | 1.6.0:update113 · 1.7.0:update99 · 1.8.0:update77 |
| nvd | oracle | jre | javase | 1.6.0:update113 · 1.7.0:update99 · 1.8.0:update77 |
| nvd | oracle | jrockit | generic | r28.3.9 |
| URL | Tags |
|---|---|
| https://access.redhat.com/errata/RHSA-2016:0650 | ADVISORY, RHSA-2016:0650 |
| https://access.redhat.com/security/cve/CVE-2016-3425 | REPORT, RHSA-2016:0650 |
| https://access.redhat.com/errata/RHSA-2016:0651 | ADVISORY, RHSA-2016:0651 |
| https://access.redhat.com/errata/RHSA-2016:0675 | ADVISORY, RHSA-2016:0675 |
| https://access.redhat.com/errata/RHSA-2016:0676 | ADVISORY, RHSA-2016:0676 |
| https://access.redhat.com/errata/RHSA-2016:0677 | ADVISORY, RHSA-2016:0677 |
| https://access.redhat.com/errata/RHSA-2016:0723 | ADVISORY, RHSA-2016:0723 |
| http://lists.opensuse.org/opensuse-security-announce/2016-05/msg00006.html | |
| http://lists.opensuse.org/opensuse-security-announce/2016-05/msg00009.html | |
| http://lists.opensuse.org/opensuse-security-announce/2016-05/msg00012.html |
| Published | 2016-04-21 | By the CVE Program. |
|---|---|---|
| ARMR remediation created | 2020-06-26 | Earliest commit adding this CVE's ARMR patch or security rule. |
| ARMR remediation last updated | 2026-03-04 | Most recent commit touching this CVE's ARMR patch or security rule. |
| Last VRT activity | 2026-03-04 | Most recent commit touching this CVE's classification, patch or rule file. |
| NVD record modified | 2026-06-17 | NVD's own last-modified date for this record. |