VRT 391,192 CVEs tracked · 15,442 in RASP scope · data as of 19 hours ago

CVE-2016-5546

7.5 High Protected by RASP

Description

Vulnerability in the Java SE, Java SE Embedded, JRockit component of Oracle Java SE (subcomponent: Libraries). Supported versions that are affected are Java SE: 6u131, 7u121 and 8u112; Java SE Embedded: 8u111; JRockit: R28.3.12. Easily exploitable vulnerability allows unauthenticated attacker with network access via multiple protocols to compromise Java SE, Java SE Embedded, JRockit. Successful attacks of this vulnerability can result in unauthorized creation, deletion or modification access to critical data or all Java SE, Java SE Embedded, JRockit accessible data. Note: Applies to client and server deployment of Java. This vulnerability can be exploited through sandboxed Java Web Start applications and sandboxed Java applets. It can also be exploited by supplying data to APIs in the specified Component without using sandboxed Java Web Start applications or sandboxed Java applets, such as through a web service. CVSS v3.0 Base Score 7.5 (Integrity impacts).

Exploitation Status

No public exploit

Nothing published shows this CVE being exploited, which is not the same as ruling it out. nothing published in 9 years.

CVSS E:U

  • CISA KEV not listed
  • CISA Vulnrichment exploitation: none
  • Indexed PoC none indexed
  • EPSS 3.2% chance in 30 days

Waratek Defense Posture

Protected by RASP

A Waratek agent blocks this today.

Applicable rule: CVE has an ARMR patch rule that provides mitigation

  • Protection full a patch rule written for this CVE
  • Action available patch rule
  • Review human armr-file
  • Record active
Decided by armr-patch-file : An ARMR patch file on disk for this CVE
Finding CVE has an ARMR patch rule that provides mitigation

ARMR rule files

1 file

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/2017/Q1-January/CVE-2016-5546/patch/2.6/CVE-2016-5546.armr patch rule added 2020-06-26 updated 2026-03-04
app("2017 JANUARY CPU"):
    requires(version: "ARMR/2.6")

    /***************************************************************************
        CVE-2016-5546 (2017 JANUARY CPU)

        CVSS 3.0 Summary:
            Base Score              | 7.5 HIGH
            Attack Vector           | Network
            Attack Complexity       | Low
            Privileges Required     | None
            User Interaction        | None
            Scope                   | Unchanged
            Confidentiality Impact  | None
            Integrity Impact        | High
            Availability Impact     | None

        Description:
            It was discovered that the Libraries component of OpenJDK accepted
            ECDSA signatures using non-canonical DER encoding. This could cause
            a Java application to accept signature in an incorrect format not
            accepted by other cryptographic tools.

            Note:   No patching is done for Elliptic Curve Cryptography
                    algorithms for Java 6 as they were only released in Java 7.

        Resources:
            https://bugzilla.redhat.com/show_bug.cgi?id=1413911

        Affected Versions:
            6u131, 7u121, 8u112, JRockit: R28.3.12

        Tested Versions:
            6u0 - 6u131
            7u0 - 7u121
            8u0 - 8u112

        Protection Provided:
            Functional

        Patch Version:
            1.1
    ***************************************************************************/

    patch("CVE-2016-5546 :01"):
        function("sun/security/ec/ECDSASignature.decodeSignature([B)[B",
            checksums: ["ceba128e5b",   // 7u0 - 7u121
                        "2278d072a5"])  // 8u0 - 8u112
        callsite("sun/security/util/DerInputStream.<init>([B)V")

        code(language: java,   import: ["java.io.IOException"]):
            private static final int LEN_LONG = 0x80;
            private static final int LEN_MASK = 0x7f;

            public void patch(JavaFrame frame) {
                byte[] data = (byte[]) frame.loadObjectOperand(1);
                int offset = 0;
                int len = data.length;

                if ((offset+2 > data.length) || (offset+len > data.length)) {
                    frame.raiseException(new IOException("Encoding bytes too short"));
                    return;
                }

                if (isIndefinite(data[offset+1])) {
                    frame.raiseException(new IOException("Indefinite length BER encoding found"));
                }
            }

            private boolean isIndefinite(int lengthByte) {
                return (isLongForm(lengthByte) && ((lengthByte & LEN_MASK) == 0));
            }

            private boolean isLongForm(int lengthByte) {
                return ((lengthByte & LEN_LONG) == LEN_LONG);
            }
        endcode
    endpatch

    patch("CVE-2016-5546 :02"):
        function("sun/security/ec/ECDSASignature.decodeSignature([B)[B",
            checksums: ["ceba128e5b",   // 7u0 - 7u121
                        "2278d072a5"])  // 8u0 - 8u112
        callreturn("sun/security/util/DerInputStream.getSequence(I)[Lsun/security/util/DerValue;")

        code(language: java,   import: ["java.io.IOException"]):
            private static JavaMethod availableMethod;

            public void load() {
                availableMethod =
                    JavaMethod.load("sun/security/util/DerInputStream.available()I");
            }

            public void patch(JavaFrame frame) {
                Object in = frame.loadObjectVariable(2);
                Object[] values = (Object[]) frame.loadObjectOperand(0);

                int available = (int) availableMethod.call(in, new Object[0]);
                if ((values.length != 2) || (available != 0)) {
                    frame.raiseException(new IOException("Invalid encoding for signature"));
                }
            }
        endcode
    endpatch

    patch("CVE-2016-5546 :03"):
        function("sun/security/pkcs11/P11Signature.asn1ToDSA([B)[B",
            checksums: ["341866074e",   // 6u0   - 6u17
                        "7e070622ec",   // 6u18  - 6u20
                        "a488d81b5c",   // 6u21  - 6u35,  7u0  - 7u3
                        "461b0ecc29",   // 6u37  - 6u113, 7u4  - 7u45
                        "d804fc1de2",   // 6u115 - 6u131, 7u51 - 7u111
                        "62f37302c9",   //                7u121
                        "7ad324b7f9",   // 8u0   - 8u31
                        "4b246564ed"])  // 8u40  - 8u112
        entry()

        code(language: java,   import: ["java.io.IOException"]):
            private static final int LEN_LONG = 0x80;
            private static final int LEN_MASK = 0x7f;

            public void patch(JavaFrame frame) {
                byte[] data = (byte[]) frame.loadObjectVariable(0);
                int offset = 0;
                int len = data.length;

                if ((offset+2 > data.length) || (offset+len > data.length)) {
                    frame.raiseException(new IOException("Encoding bytes too short"));
                    return;
                }

                if (isIndefinite(data[offset+1])) {
                    frame.raiseException(new IOException("Indefinite length BER encoding found"));
                }
            }

            private boolean isIndefinite(int lengthByte) {
                return (isLongForm(lengthByte) && ((lengthByte & LEN_MASK) == 0));
            }

            private boolean isLongForm(int lengthByte) {
                return ((lengthByte & LEN_LONG) == LEN_LONG);
            }
        endcode
    endpatch

    patch("CVE-2016-5546 :04"):
        function("sun/security/pkcs11/P11Signature.asn1ToDSA([B)[B",
            checksums: ["341866074e",   // 6u0   - 6u17
                        "7e070622ec",   // 6u18  - 6u20
                        "a488d81b5c",   // 6u21  - 6u35,  7u0  - 7u3
                        "461b0ecc29",   // 6u37  - 6u113, 7u4  - 7u45
                        "d804fc1de2",   // 6u115 - 6u131, 7u51 - 7u111
                        "62f37302c9",   //                7u121
                        "7ad324b7f9",   // 8u0   - 8u31
                        "4b246564ed"])  // 8u40  - 8u112
        callreturn("sun/security/util/DerInputStream.getSequence(I)[Lsun/security/util/DerValue;")

        code(language: java,   import: ["java.io.IOException"]):
            private static JavaMethod availableMethod;

            public void load() {
                availableMethod =
                    JavaMethod.load("sun/security/util/DerInputStream.available()I");
            }

            public void patch(JavaFrame frame) {
                Object in = frame.loadObjectVariable(1);
                Object[] values = (Object[]) frame.loadObjectOperand(0);

                int available = (Integer) availableMethod.call(in);
                if ((values.length != 2) || (available != 0)) {
                    frame.raiseException(new IOException("Invalid encoding for signature"));
                }
            }
        endcode
    endpatch

    patch("CVE-2016-5546 :05"):
        function("sun/security/pkcs11/P11Signature.asn1ToECDSA([B)[B",
            checksums: ["341866074e",   // 6u0   - 6u17
                        "7e070622ec",   // 6u18  - 6u20
                        "a488d81b5c",   // 6u21  - 6u35,  7u0  - 7u3
                        "461b0ecc29",   // 6u37  - 6u113, 7u4  - 7u45
                        "d804fc1de2",   // 6u115 - 6u131, 7u51 - 7u111
                        "62f37302c9",   //                7u121
                        "7ad324b7f9",   // 8u0   - 8u31
                        "4b246564ed"])  // 8u40  - 8u112
        entry()

        code(language: java,   import: ["java.io.IOException"]):
            private static final int LEN_LONG = 0x80;
            private static final int LEN_MASK = 0x7f;

            public void patch(JavaFrame frame) {
                byte[] data = (byte[]) frame.loadObjectVariable(1);
                int offset = 0;
                int len = data.length;

                if ((offset+2 > data.length) || (offset+len > data.length)) {
                    frame.raiseException(new IOException("Encoding bytes too short"));
                    return;
                }

                if (isIndefinite(data[offset+1])) {
                    frame.raiseException(new IOException("Indefinite length BER encoding found"));
                }
            }

            private boolean isIndefinite(int lengthByte) {
                return (isLongForm(lengthByte) && ((lengthByte & LEN_MASK) == 0));
            }

            private boolean isLongForm(int lengthByte) {
                return ((lengthByte & LEN_LONG) == LEN_LONG);
            }
        endcode
    endpatch

    patch("CVE-2016-5546 :06"):
        function("sun/security/pkcs11/P11Signature.asn1ToECDSA([B)[B",
            checksums: ["341866074e",   // 6u0   - 6u17
                        "7e070622ec",   // 6u18  - 6u20
                        "a488d81b5c",   // 6u21  - 6u35,  7u0  - 7u3
                        "461b0ecc29",   // 6u37  - 6u113, 7u4  - 7u45
                        "d804fc1de2",   // 6u115 - 6u131, 7u51 - 7u111
                        "62f37302c9",   //                7u121
                        "7ad324b7f9",   // 8u0   - 8u31
                        "4b246564ed"])  // 8u40  - 8u112
        callreturn("sun/security/util/DerInputStream.getSequence(I)[Lsun/security/util/DerValue;")

        code(language: java,   import: ["java.io.IOException"]):
            private static JavaMethod availableMethod;

            public void load() {
                availableMethod =
                    JavaMethod.load("sun/security/util/DerInputStream.available()I");
            }

            public void patch(JavaFrame frame) {
                Object in = frame.loadObjectVariable(2);
                Object[] values = (Object[]) frame.loadObjectOperand(0);

                int available = (Integer) availableMethod.call(in);
                if ((values.length != 2) || (available != 0)) {
                    frame.raiseException(new IOException("Invalid encoding for signature"));
                }
            }
        endcode
    endpatch

    patch("CVE-2016-5546 :07"):
        function("sun/security/provider/DSA.engineVerify([BII)Z",
            checksums: ["106afc82b9",   // 6u0   - 6u113, 7u0   - 7u99
                        "2fcbfba98e",   // 6u115 - 6u121, 7u101 - 7u111
                        "8a35922acc",   // 6u131          7u121
                        "819a07c1c3",   // 8u0   - 8u31
                        "37a6ff4fda",   // 8u40  - 8u77
                        "87f7b692e3"])  // 8u91  - 8u112
        callsite("sun/security/util/DerInputStream.<init>([BII)V")

        code(language: java,   import: ["java.io.IOException"]):
            private static final int LEN_LONG = 0x80;
            private static final int LEN_MASK = 0x7f;

            public void patch(JavaFrame frame) {
                byte[] data = (byte[]) frame.loadObjectVariable(1);
                int offset = frame.loadIntVariable(2);
                int len = frame.loadIntVariable(3);

                if ((offset+2 > data.length) || (offset+len > data.length)) {
                    frame.raiseException(new IOException("Encoding bytes too short"));
                    return;
                }

                if (isIndefinite(data[offset+1])) {
                    frame.raiseException(new IOException("Indefinite length BER encoding found"));
                }
            }

            private boolean isIndefinite(int lengthByte) {
                return (isLongForm(lengthByte) && ((lengthByte & LEN_MASK) == 0));
            }

            private boolean isLongForm(int lengthByte) {
                return ((lengthByte & LEN_LONG) == LEN_LONG);
            }
        endcode
    endpatch

    patch("CVE-2016-5546 :08"):
        function("sun/security/provider/DSA.engineVerify([BII)Z",
            checksums: ["106afc82b9",   // 6u0   - 6u113, 7u0   - 7u99
                        "2fcbfba98e",   // 6u115 - 6u121, 7u101 - 7u111
                        "8a35922acc",   // 6u131          7u121
                        "819a07c1c3",   // 8u0   - 8u31
                        "37a6ff4fda",   // 8u40  - 8u77
                        "87f7b692e3"])  // 8u91  - 8u112
        callreturn("sun/security/util/DerInputStream.getSequence(I)[Lsun/security/util/DerValue;")

        code(language: java,   import: ["java.io.IOException"]):
            private static JavaMethod availableMethod;

            public void load() {
                availableMethod =
                    JavaMethod.load("sun/security/util/DerInputStream.available()I");
            }

            public void patch(JavaFrame frame) {
                Object in = frame.loadObjectVariable(6);
                Object[] values = (Object[]) frame.loadObjectOperand(0);

                int available = (Integer) availableMethod.call(in);
                if ((values.length != 2) || (available != 0)) {
                    frame.raiseException(new IOException("Invalid encoding for signature"));
                }
            }
        endcode
    endpatch

    patch("CVE-2016-5546 :09"):
        function("sun/security/provider/DSA.engineVerify([BII)Z",
            checksums: ["106afc82b9",   // 6u0   - 6u113, 7u0   - 7u99
                        "2fcbfba98e",   // 6u115 - 6u121, 7u101 - 7u111
                        "8a35922acc",   // 6u131          7u121
                        "819a07c1c3",   // 8u0   - 8u31
                        "37a6ff4fda",   // 8u40  - 8u77
                        "87f7b692e3"])  // 8u91  - 8u112
        callsite("java/security/SignatureException.<init>(Ljava/lang/String;)V",
            occurrences: [1])

        code(language: java,   import: ["java.io.IOException",
                                        "java.security.SignatureException"]):
            public void patch(JavaFrame frame) {
                IOException e = (IOException) frame.loadObjectVariable(6);
                frame.raiseException(new SignatureException("Invalid encoding for signature", e));
            }
        endcode
    endpatch

    patch("CVE-2016-5546 :10"):
        function("sun/security/rsa/RSASignature.decodeSignature(Lsun/security/util/ObjectIdentifier;[B)[B",
            checksums: ["c36e56c4cc",   // 6u0  - 6u91
                        "49533557bc",   // 6u95 - 6u131
                        "1d36e2e7c2",   // 7u0  - 7u76
                        "209697efb0",   // 7u79 - 7u80
                        "cf27a50ab1",   // 7u85 - 7u121
                        "b4c33a1fc9",   // 8u0  - 8u40
                        "1278e8f204",   // 8u45
                        "7fbbd893b9"])  // 8u51 - 8u112
        callsite("sun/security/util/DerInputStream.<init>([B)V")

        code(language: java,   import: ["java.io.IOException"]):
            private static final int LEN_LONG = 0x80;
            private static final int LEN_MASK = 0x7f;

            public void patch(JavaFrame frame) {
                byte[] data = (byte[]) frame.loadObjectOperand(1);
                if (data == null) {
                    return;
                }
                int offset = 0;
                int len = data.length;

                if ((offset+2 > data.length) || (offset+len > data.length)) {
                    frame.raiseException(new IOException("Encoding bytes too short"));
                    return;
                }

                if (isIndefinite(data[offset+1])) {
                    frame.raiseException(new IOException("Indefinite length BER encoding found"));
                }
            }

            private boolean isIndefinite(int lengthByte) {
                return (isLongForm(lengthByte) && ((lengthByte & LEN_MASK) == 0));
            }

            private boolean isLongForm(int lengthByte) {
                return ((lengthByte & LEN_LONG) == LEN_LONG);
            }
        endcode
    endpatch

    patch("CVE-2016-5546 :11"):
        function("sun/security/util/DerInputBuffer.getBigInteger(IZ)Ljava/math/BigInteger;",
            checksums: ["d155e14997"])  // 6u0 - 6u131, 7u0 - 7u121, 8u0 - 8u112
        callreturn("sun/security/util/DerInputBuffer.skip(J)J")

        code(language: java,   import: ["java.io.IOException"]):
            public void patch(JavaFrame frame) {
                int len = frame.loadIntVariable(1);
                byte[] bytes = (byte[]) frame.loadObjectVariable(3);

                if (len >= 2 && (bytes[0] == 0) && (bytes[1] >= 0)) {
                    frame.raiseException(new IOException("Invalid encoding: redundant leading 0s"));
                }
            }
        endcode
    endpatch

    patch("CVE-2016-5546 :12"):
        function("sun/security/util/DerInputStream.getUnalignedBitString()Lsun/security/util/BitArray;",
            checksums: ["8ece17fd87",   // 6u0  - 6u85,  7u0  - 7u72,  8u0  - 8u25
                        "33a8e55c13"])  // 6u91 - 6u131, 7u75 - 7u121, 8u31 - 8u112
        entry()

        code(language: java,   import: ["java.io.IOException",
                                        "sun.security.util.BitArray"]):
            private final static byte tag_BitString = 0x03;

            private static JavaField bufferField;
            private static JavaMethod readMethodNoArg;
            private static JavaMethod readMethodArg;
            private static JavaMethod getLengthMethod;

            public void load() {
                bufferField =
                    JavaField.load("sun/security/util/DerInputStream.buffer");
                readMethodNoArg =
                    JavaMethod.load("java/io/ByteArrayInputStream.read()I");
                readMethodArg =
                    JavaMethod.load("java/io/InputStream.read([B)I");
                getLengthMethod =
                    JavaMethod.load("sun/security/util/DerInputStream.getLength(Ljava/io/InputStream;)I");
            }

            public void patch(JavaFrame frame) {
                Object self = frame.loadThisVariable();
                Object buffer = bufferField.readObject(self);

                try {
                    int read = (Integer) readMethodNoArg.call(buffer);
                    if (read != tag_BitString) {
                        throw new IOException("DER input not a bit string");
                    }

                    int length = (Integer) getLengthMethod.call(self, new Object[]{buffer}) - 1;
                    int excessBits = (Integer) readMethodNoArg.call(buffer);
                    if (excessBits < 0) {
                        throw new IOException("Unused bits of bit string invalid");
                    }

                    int validBits = length*8 - excessBits;
                    if (validBits < 0) {
                        throw new IOException("Valid bits of bit string invalid");
                    }

                    byte[] repn = new byte[length];
                    int readRepn = (Integer) readMethodArg.call(buffer, new Object[]{repn});
                    if ((length != 0) && (readRepn != length)) {
                        throw new IOException("Short read of DER bit string");
                    }

                    frame.returnObject(new BitArray(validBits, repn));
                } catch (IOException t) {
                    frame.raiseException(t);
                }
            }
        endcode
    endpatch

    patch("CVE-2016-5546 :13"):
        function("sun/security/util/DerInputStream.readVector(I)[Lsun/security/util/DerValue;",
            checksums: ["8ece17fd87",   // 6u0  - 6u85,  7u0  - 7u72,  8u0  - 8u25
                        "33a8e55c13"])  // 6u91 - 6u131, 7u75 - 7u121, 8u31 - 8u112
        callsite("sun/security/util/DerInputStream.getLength(ILjava/io/InputStream;)I")

        code(language: java):
            public void patch(JavaFrame frame) {
                byte lenByte = frame.loadByteVariable(3);
                frame.storeIntOperand(0, lenByte);
            }
        endcode
    endpatch

    patch("CVE-2016-5546 :14"):
        function("sun/security/util/DerInputStream.getLength(ILjava/io/InputStream;)I",
            checksums: ["8ece17fd87",   // 6u0  - 6u85,  7u0  - 7u72,  8u0  - 8u25
                        "33a8e55c13"])  // 6u91 - 6u131, 7u75 - 7u121, 8u31 - 8u112
        entry()

        code(language: java,   import: ["java.io.IOException",
                                        "java.io.InputStream"]):
            public void patch(JavaFrame frame) {
                int lenByte = frame.loadIntVariable(0);
                InputStream in = (InputStream) frame.loadObjectVariable(1);

                try {
                    int value, tmp;
                    if (lenByte == -1) {
                        throw new IOException("Short read of DER length");
                    }

                    String mdName = "DerInputStream.getLength(): ";
                    tmp = lenByte;
                    if ((tmp & 0x080) == 0x00) {
                        value = tmp;
                    } else {
                        tmp &= 0x07f;
                        if (tmp == 0) {
                            frame.returnInt(-1);
                            return;
                        }
                        if (tmp < 0 || tmp > 4) {
                            throw new IOException(
                                mdName + "lengthTag=" + tmp + ", " +
                                ((tmp < 0) ? "incorrect DER encoding." : "too big."));
                        }
                        value = 0x0ff & in.read();
                        tmp--;
                        if (value == 0) {
                            throw new IOException(mdName + "Redundant length bytes found");
                        }
                        while (tmp-- > 0) {
                            value <<= 8;
                            value += 0x0ff & in.read();
                        }
                        if (value < 0) {
                            throw new IOException(mdName + "Invalid length bytes");
                        } else if (value <= 127) {
                            throw new IOException(mdName + "Should use short form for length");
                        }
                    }
                    frame.returnInt(value);
                } catch (IOException t) {
                    frame.raiseException(t);
                }
            }
        endcode
    endpatch

    patch("CVE-2016-5546 :15"):
        function("sun/security/util/DerValue.<init>(Lsun/security/util/DerInputBuffer;)V",
            checksums: ["eca61e8971",   // 6u0  - 6u16
                        "b2ed4068a0",   // 6u17 - 6u131
                        "08ac43a390"])  // 7u0  - 7u121, 8u0 - 8u112
        callsite("sun/security/util/DerInputStream.getLength(ILjava/io/InputStream;)I")

        code(language: java):
            public void patch(JavaFrame frame) {
                byte lenByte = frame.loadByteVariable(2);
                frame.storeIntOperand(0, lenByte);
            }
        endcode
    endpatch

    patch("CVE-2016-5546 :16"):
        function("sun/security/util/DerValue.init(ZLjava/io/InputStream;)V",
            checksums: ["eca61e8971",   // 6u0  - 6u16
                        "b2ed4068a0"])  // 6u17 - 6u131
        callsite("sun/security/util/DerInputStream.getLength(ILjava/io/InputStream;)I")

        code(language: java):

            public void patch(JavaFrame frame) {
                byte lenByte = frame.loadByteVariable(3);
                frame.storeIntOperand(0, lenByte);
            }
        endcode
    endpatch

    patch("CVE-2016-5546 :17"):
        function("sun/security/util/DerValue.init(ZLjava/io/InputStream;)Lsun/security/util/DerInputStream;",
            checksums: ["08ac43a390"]) // 7u0  - 7u121, 8u0 - 8u112
        callsite("sun/security/util/DerInputStream.getLength(ILjava/io/InputStream;)I")

        code(language: java):
            public void patch(JavaFrame frame) {
                byte lenByte = frame.loadByteVariable(3);
                frame.storeIntOperand(0, lenByte);
            }
        endcode
    endpatch

endapp

CVSS

7.5 HIGH v3.0 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N 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.

VersionScoreBandVectorAssignerType
CVSS 3.0 7.5 HIGH CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N NVD Primary published
CVSS 2.0 5.0 no band published AV:N/AC:L/Au:N/C:N/I:P/A:N NVD Primary

Affected Software & Releases

🏛️ Oracle CPU Advisories & Products

AdvisoryTypeQuarterProducts Oracle named in risk matrix
Oracle Critical Patch Update January 2017 CPU 2017-Q1 Oracle Java SE / Java SE, Java SE Embedded, JRockit (Java SE: 6u131, 7u121, 8u112; Java SE Embedded: 8u111; JRockit: R28.3.12)

Indexed Oracle Components & Versions

FamilyComponentOracle's version cell (verbatim)Indexed as
Oracle Java SE Java SE, Java SE Embedded, JRockit Java SE: 6u131, 7u121, 8u112; Java SE Embedded: 8u111; JRockit: R28.3.12 6.0.131.0 · 7.0.121.0 · 8.0.111.0 · 8.0.112.0

🖥️ Product CPEs & Version Ranges

3 product(s) over 9 version claims (uncapped)
SourceVendorProductSchemeAffected Versions
nvd oracle jdk javase 1.6:update_131 · 1.7:update_121 · 1.8:update_111 · 1.8:update_112
nvd oracle jre javase 1.6:update_131 · 1.7:update_121 · 1.8:update_111 · 1.8:update_112
nvd oracle jrockit generic r28.3.12

References

URLTags
https://access.redhat.com/errata/RHSA-2017:0175 ADVISORY, RHSA-2017:0175
https://access.redhat.com/security/cve/CVE-2016-5546 REPORT, RHSA-2017:0175
https://access.redhat.com/errata/RHSA-2017:0180 ADVISORY, RHSA-2017:0180
https://access.redhat.com/errata/RHSA-2017:0263 ADVISORY, RHSA-2017:0263
https://access.redhat.com/errata/RHSA-2017:0269 ADVISORY, RHSA-2017:0269
http://rhn.redhat.com/errata/RHSA-2017-0175.html
http://rhn.redhat.com/errata/RHSA-2017-0176.html
http://rhn.redhat.com/errata/RHSA-2017-0177.html
http://rhn.redhat.com/errata/RHSA-2017-0180.html
http://rhn.redhat.com/errata/RHSA-2017-0263.html

Timeline

Published 2017-01-27 Last modified 2026-06-17
Published2017-01-27By the CVE Program.
ARMR remediation created2020-06-26Earliest commit adding this CVE's ARMR patch or security rule.
ARMR remediation last updated2026-03-04Most recent commit touching this CVE's ARMR patch or security rule.
Last VRT activity2026-03-04Most recent commit touching this CVE's classification, patch or rule file.
NVD record modified2026-06-17NVD's own last-modified date for this record.