Red Hat Enterprise Linux: New kmod-i40e, kmod-i40evf packages are now available for Red Hat Enterprise
Linux 7.
Category Archives: Redhat
Redhat
RHBA-2016:1393-1: kernel bug fix update
Red Hat Enterprise Linux: Updated kernel packages that fix one bug are now available for Red Hat
Enterprise Linux 5.
RHSA-2016:1392-1: Important: thunderbird security update
Red Hat Enterprise Linux: An update for thunderbird is now available for Red Hat Enterprise Linux 5, Red
Hat Enterprise Linux 6, and Red Hat Enterprise Linux 7.
Red Hat Product Security has rated this update as having a security impact of
Important. A Common Vulnerability Scoring System (CVSS) base score, which gives
a detailed severity rating, is available for each vulnerability from the CVE
link(s) in the References section.
CVE-2016-2818
RHEA-2016:1391-1: java-1.6.0-sun enhancement update
Red Hat Enterprise Linux: An update for java-1.6.0-sun is now available for Oracle Java for Red Hat
Enterprise Linux 5.
RHEA-2016:1390-1: new packages: kmod-rtsx_usb, kmod-rtsx_usb_sdmmc
Red Hat Enterprise Linux: New kmod-rtsx_usb and kmod-rtsx_usb_sdmmc packages are now available for Red Hat
Enterprise Linux 7.
RHEA-2016:1388-1: tzdata enhancement update
Red Hat Enterprise Linux: Updated tzdata packages that add various enhancements are now available for Red
Hat Enterprise Linux 4 Extended Life Cycle Support, Red Hat Enterprise Linux 5.6
Long Life, Red Hat Enterprise Linux 5.9 Advanced Update Support, Red Hat
Enterprise Linux 5.11, Red Hat Enterprise Linux 6.2 Advanced Update Support, Red
Hat Enterprise Linux 6.4 Advanced Update Support, Red Hat Enterprise Linux 6.5
Advanced Update Support, Red Hat Enterprise Linux 6.6 Extended Update Support,
Red Hat Enterprise Linux 6.7, Red Hat Enterprise Linux 7.1 Extended Update
Support, Red Hat Enterprise Linux 7.1 Little Endian Extended Update Support, and
Red Hat Enterprise Linux 7.2.
Java Deserialization attacks on JBoss Middleware
Recent research by Chris Frohoff and Gabriel Lawrence has exposed gadget chains in various libraries that allow code to be executed during object deserialization in Java. They’ve done some excellent research, including publishing some code that allows anyone to serialize a malicious payload that when deserialized runs the operating system command of their choice, as the user which started the Java Virtual Machine (JVM). The vulnerabilities are not with the gadget chains themselves but with the code that deserializes them.
What is a gadget chain?
Perhaps the simplest example is a list. With some types of lists, it’s necessary to compare objects in order to determine their order in the list. For example a PriorityQueue orders objects by comparing them with each other during it’s construction. It takes a Comparator object which will call any method you choose on the objects in the list. Now if that method contains a call to Runtime.exec(), then you can execute that code during construction of the PriorityQueue object.
Mitigation
There are couple of ways in which this type of attack on the JVM can be mitigated:
- not deserializing untrusted objects;
- not having the classes used in the ‘gadget chain’ in the classpath;
- running the JVM as a non-root operating system user, with reduced privileges;
- egress filtering not allowing any outbound traffic other than that matching a connection for which the firewall already has an existing state table entry.
The first is the best approach, as it prevents every kind of gadget chain a malicious attacker can create, even one devised from classes in the JVM itself. The second is OK, but has it’s limits as there are new gadget chains made public often, and it’s hard to keep up with the growing tide of them. Fortunately Enterprise Application Platform (EAP) 6 introduced module classloader that restricts which classes are available in the classpath of each module. It’s much harder to find a classloader that has access to all the classes used by the gadget chain.
The 3rd and 4th option are just good general security practices. If you want to serve content on port 80 of your host, you should use a firewall, or load balancer to redirect requests from port 80 to the JVM on another port above 1024, where your unprivileged JVM process is listening. You should not run a JVM as root in order to bind to a port less than 1024, as doing so will allow a compromised JVM to run commands as root.
Egress filtering is particularly useful as a mitigation against deserialization attacks because output from the remote code execution is not returned to an attacker. The technique used by Java deserialization attacks results in the normal flow of Java execution being interrupted and an exception being thrown. So while an attacker has write and execute permissions of the user running the JVM, they don’t have access to read files or shell command output, unless they can open a new connection which “phones home”.
EAP 5
EAP 5 is still widely used, and does allow deserialization of untrusted objects via the Legacy Invoker Servlet. On top of that, its classloading structure is flat, with most libraries, including the classes from the gadget chains, available in the classpath. For anyone still running EAP 5 it is highly recommended to only bind the Legacy Invoker Servlet to a network interface card (NIC) which is not publicly accessible. This also applies to products layered on EAP 5, such as SOA-Platform (SOA-P) 5.
EAP 6 and EAP 7
While EAP 6, and EAP 7 are more robust because of the module classloader system, they can still be vulnerable. Users of these versions who are utilizing the clustering features should ensure that they are running their clustering on a dedicated Virtual Local Area Network (VLAN) and not over the Internet. That includes users of JBoss Data Grid (JDG) which uses the clustering features in the default configuration. If you don’t have a dedicated VLAN make sure you encrypt your clustering traffic. This issue is addressed in the JBoss Middleware product suite by the fix for CVE-2016-2141.
Summary
While deserialization attacks are a serious threat to JBoss Middleware, with the correct planning, and deployment configuration, the risk can be greatly reduced. Anyone running EAP 5, or layered products, should disable or restrict access to the Legacy Invoker Servlet, while anyone using the clustering feature in EAP should apply the fix for CVE-2016-2141, or make sure their clustering traffic is sent only over a dedicated VLAN.
Product
Red Hat JBoss Enterprise Application Platform Red Hat JBoss Data Grid
RHBA-2016:1382-1: kernel enhancement update
Red Hat Enterprise Linux: Updated kernel packages that add one enhancement are now available for Red Hat
Enterprise Linux 6.6 Extended Update Support.
RHBA-2016:1381-1: kernel bug fix update
Red Hat Enterprise Linux: Updated kernel packages that fix one bug are now available for Red Hat
Enterprise Linux 6.2 Advanced Update Support.
RHSA-2016:1380-1: Moderate: nodejs010-node-gyp and nodejs010-nodejs-qs security and bug fix update
Red Hat Enterprise Linux: An update for nodejs010-node-gyp and nodejs010-nodejs-qs is now available for
Red Hat Software Collections.
Red Hat Product Security has rated this update as having a security impact of
Moderate. A Common Vulnerability Scoring System (CVSS) base score, which gives a
detailed severity rating, is available for each vulnerability from the CVE
link(s) in the References section.
CVE-2014-7191