You'll notice that no one took you up on your bet...

There's a reason for that. :)





*ASB
**http://XeeMe.com/AndrewBaker* <http://xeeme.com/AndrewBaker>*
**Providing Virtual CIO Services (IT Operations & Information Security) for
the SMB market…***





On Tue, Feb 5, 2013 at 9:05 AM, Ziots, Edward <ezi...@lifespan.org> wrote:

> Did I not say like 1-2 days after Java updated to version 7.0 update 13
> that the Security explorations folks would post what is still broken in
> java security wise, expect a update 14 or even 15 soon enough.
>
> Cross post from Bugtraq
>
> Hello All,
>
> Below, we are providing you with technical details regarding security
> issues reported by us to Oracle and addressed by the company in a recent
> Feb 2013 Java SE CPU [1].
>
> [Issue 29]
> This issue allows for the creation of arbitrary Proxy objects for
> interfaces defined in restricted packages. Proxy objects defined in a NULL
> class loader namespaces are of a particular interest here. Such objects can
> be used to manipulate instances of certain restricted classes.
>
> In our Proof of Concept code we create such a proxy object for the
> com.sun.xml.internal.bind.v2.model.nav.Navigator interface.
> In order to use the aforementioned proxy object, we need an instance of
> that interface too. We obtain it with the help of Issue 28, which allows to
> access arbitrary field objects from restricted classes and interfaces. As a
> result, by combining Issue 27-29, one can use Navigator interface and make
> use of its sensitive Reflection API functionality such as obtaining access
> to methods of arbitrary classes. That condition can be further leveraged to
> obtain a complete JVM security bypass.
>
> Please, note that our Proof of Concept code for Issues 27-29 was reported
> to Oracle in Apr 2012 and depending Issues 27-28 were addressed by the
> company sooner than Issue 29. Testing of the PoC will thus give best
> results on older versions of Java SE 7.
>
> [Issue 50]
> Issue 50 allows to violate a fundamental security constraint of Java VM,
> which is type safety. This vulnerability is another instance of the problem
> related to the unsafe deserialization implemented by
> com.sun.corba.se.impl.io.ObjectStreamClass class.
> Its first instance was fixed by Oracle in Oct 2011 [2] and it stemmed from
> the fact that during deserialization insufficient type checks were done
> with respect to object references that were written to target object
> instance created by the means of deserialization. Such a reference writing
> was accomplished with the use of a native functionality of sun.corba.Bridge
> class.
>
> The problem that we found back in Sep 2012 was very similar to the first
> one. It was located in the same code (class) and was also exploiting direct
> writing of object references to memory with the use of putObject method.
> While the first type confusion issue allowed to write object references of
> incompatible types to correct field offsets, Issue 50 relied on the
> possibility to write object references of incompatible types to...invalid
> field offsets.
>
> It might be also worth to mention that Issue 50 was found to be present in
> Java SE Embedded [3]. That is Java version that is based on desktop Java SE
> and is used in today's most powerful embedded systems such as aircraft and
> medical systems [4]. We verified that Oracle Java SE Embedded ver. 7 Update
> 6 from 10 Aug 2012 for ARM / Linux contained vulnerable implementation of
> ObjectStreamClass class.
>
> Unfortunately, we don't know any details regarding the impact of Issue 50
> in the embedded space (which embedded systems are vulnerable to it, whether
> any feasible attack vectors exist, etc.). So, it's up to Oracle to clarify
> any potential concerns in that area.
>
> [Issue 52]
> Issue 52 relies on the possibility to call no-argument methods on
> arbitrary objects or classes. The vulnerability has its origin in
> com.sun.jmx.mbeanserver.Introspector class which is located in the same
> package as the infamous MBeanInstantiator bug found in the wild in early
> Jan 2013. The flaw stems from insecure call to invoke method of
> java.lang.reflect.Method class:
>
>          if (method != null)
>                return method.invoke(obj, new Object[0]);
>
> In our Proof of Concept code we exploit the above implementation by making
> a call to getDeclaredMethods method of java.lang.Class class to gain access
> to methods of restricted classes. This is accomplished with the use of the
> following code sequence:
>
> Introspector.elementFromComplex((Object)clazz,"declaredMethods")
>
> Access to public method objects of arbitrary restricted classes is
> sufficient to achieve a complete Java VM security sandbox compromise. We
> make use of DefiningClassLoader exploit vector for that purpose.
>
> [Issue 53]
> Issue 53 stems from the fact that Oracle's implementation of new security
> levels introduced by the company in Java SE 7 Update 10 did not take into
> account the fact that Applets can be instantiated with the use of
> serialization. Such a possibility is indicated both in HTML 4 Specification
> [5] as well as in Oracle's code.
>
> HTML 4 Specification contains the following description for the "object"
> attribute of APPLET element:
>
> object = cdata [CS]
>         This attribute names a resource containing a serialized
>         representation of an applet's state. It is interpreted
>         relative to the applet's codebase. The serialized data
>         contains the applet's class name but not the implementation.
>         The class name is used to retrieve the implementation from
>         a class file or archive.
>
> Additionally, Java 7 Update 10 (and 11) reveal the following code logic
> when it comes to the implementation of new security features (Java Control
> Panel security levels).
>
> [excerpt from sun.plugin2.applet.Plugin2Manager class]
>
>          String object_attr = getSerializedObject();
>          String code_attr   = getCode();
>          ...
>
>          if(code_attr != null) {
>              Class class1 = plugin2classloader.loadCode(code_attr);
>              ...
>              if(class1 != null)
>
>                  if (fireAppletSSVValidation())
>                  ...
>          } else {
>              if(!isSecureVM)
>                  return;
>
> adapter.instantiateSerialApplet(plugin2classloader,object_attr);
>              ...
>          }
>
> The above clearly shows that the conditional block implementing Applet
> instantiation via deserialization does not contain a call to
> fireAppletSSVValidation method. This method conducts important security
> checks corresponding to security levels configured by Java Control Panel.
> The lack of a call to security checking method is equivalent to "no
> protection at all" as it allows for a silent Java exploit in particular.
>
> What's worth mentioning is that for Google Chrome the following HTML
> sequence needed to be used to activate target Applet code:
>
> <object type="application/x-java-applet" object="BlackBox.ser">
>
> ---
>
> We have made our original reports sent to Oracle and describing Issues 29,
> 50, 52 and 53 available for download from our project details page:
>
> http://www.security-explorations.com/en/SE-2012-01-details.html
>
> Along with those reports we have also published the results of our quick
> Vulnerability Fix Experiment regarding Issue 50. We've never heard a word
> from Oracle regarding it. Company's fix for Issue 50 is not a mirror of the
> one we had proposed, but it does rely on Class object instances for
> hashtable access / caching of translated ObjectStreamClass fields.
>
> At the end, we would like to question Oracle's evaluation of the impact of
> Java vulnerabilities fixed by the Feb 2013 Java SE CPU.
> Oracle emphasized that patched vulnerabilities affect primarily Java
> Plugin / desktop environments and that only 3 of them apply to client and
> server deployments of Java. The 3 vulnerabilities Oracle refers to are
> specifically the following ones:
>
> CVE-2013-0437 Subcomponent 2D
> CVE-2013-1478 Subcomponent 2D
> CVE-2013-1480 Subcomponent AWT
>
> None of the vulnerabilities above seem to refer to the components where
> our discoveries were made (i.e. CORBA, JMX / BEANS).
>
> The tests we have conducted yesterday against the latest version of Oracle
> GlassFish Server 3.1.2.2 (with security manager enabled) and RMI Registry
> from JDK 7 Update 11 confirmed the possibility to launch an attack against
> remote RMI server with the use of a Java SE vulnerability. We tested Issues
> patched by the recent CPU such as the MBeanInstantiator bug, Issue 50 and
> 52 and were able to:
> 1) remotely load custom classes into the target Java RMI server
>     (over RMI protocol),
> 2) completely break Java security sandbox with the use of a Java
>     SE vulnerability (the one which "can be exploited only through
>     untrusted Java Web Start applications / untrusted Java applets"
>     according to Oracle's CPU).
>
> Although Oracle is aware [6] that Java SE vulnerabilities can be also
> exploited "in servers, by supplying malicious input to APIs in the
> vulnerable server component", the company rather undermines such a
> possibility by delivering a message that a majority of the vulnerabilities
> affect Java Plugin in the web browser or that in some cases, the
> exploitation scenario of Java SE bugs on servers is very improbable.
>
> In general, relying on a vulnerable Java SE version makes all of the
> products depending on it potentially vulnerable unless there is absolutely
> *no way* that a vulnerable component can be reached by an attacker. As long
> as an attack vector through RMI protocol is valid, a potential for remote
> exploitation of security issues in Java SE on servers should be always
> concerned.
>
> Thank You.
>
> Best Regards,
> Adam Gowdiak
>
> ---------------------------------------------
> Security Explorations
> http://www.security-explorations.com
> "We bring security research to the new level"
> ---------------------------------------------
>
> References:
> [1] Oracle Java SE Critical Patch Update Advisory - February 2013
>
>
> http://www.oracle.com/technetwork/topics/security/javacpufeb2013-1841061.html
> [2] Oracle Java IIOP Deserialization Type Confusion Remote Code Execution
> Vulnerability
>      http://www.zerodayinitiative.com/advisories/ZDI-11-306/
> [3] Oracle Java SE Embedded
>
>
> http://www.oracle.com/us/technologies/java/embedded/standard-edition/overview/index.html
> [4] Oracle making embedded Java push
>
>
> http://www.infoworld.com/d/application-development/oracle-making-embedded-java-push-203168
> [5] HTML 4 Specification, Including an applet: the APPLET element
>      http://www.w3.org/TR/html401/struct/objects.html#h-13.4
> [6] February 2013 Critical Patch Update for Java SE Released
>
> https://blogs.oracle.com/security/entry/february_2013_critical_patch_update
>
>
>
> Edward E. Ziots, CISSP, Security +, Network +
> Security Engineer
> Lifespan Organization
> ezi...@lifespan.org
>
> This electronic message and any attachments may be privileged and
> confidential and protected from disclosure. If you are reading this
> message, but are not the intended recipient, nor an employee or agent
> responsible for delivering this message to the intended recipient, you are
> hereby notified that you are strictly prohibited from copying, printing,
> forwarding or otherwise disseminating this communication. If you have
> received this communication in error, please immediately notify the sender
> by replying to the message. Then, delete the message from your computer.
> Thank you.
>
>
>
>
> -----Original Message-----
> From: Ben Scott [mailto:mailvor...@gmail.com]
> Sent: Monday, February 04, 2013 7:03 PM
> To: NT System Admin Issues
> Subject: Re: Java 7 patch 13 out...
>
> On Mon, Feb 4, 2013 at 6:42 PM, Matthew W. Ross <mr...@ephrataschools.org>
> wrote:
> >>  There's a lot of chatter on the Mozilla Enterprise mailing list
> >> about this stuff right now.
> >
> > Ooh, another list to check out...
>
> https://mail.mozilla.org/listinfo/enterprise
>
>   :-)
>
> > Thanks Ben.
>
>   You're welcome.
>
> -- Ben
>
> ~ Finally, powerful endpoint security that ISN'T a resource hog! ~ ~ <
> http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/>  ~
>
> ---
> To manage subscriptions click here:
> http://lyris.sunbelt-software.com/read/my_forums/
> or send an email to listmana...@lyris.sunbeltsoftware.com
> with the body: unsubscribe ntsysadmin
>
>
>
> ~ Finally, powerful endpoint security that ISN'T a resource hog! ~
> ~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/>  ~
>
> ---
> To manage subscriptions click here:
> http://lyris.sunbelt-software.com/read/my_forums/
> or send an email to listmana...@lyris.sunbeltsoftware.com
> with the body: unsubscribe ntsysadmin
>
>

~ Finally, powerful endpoint security that ISN'T a resource hog! ~
~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/>  ~

---
To manage subscriptions click here: 
http://lyris.sunbelt-software.com/read/my_forums/
or send an email to listmana...@lyris.sunbeltsoftware.com
with the body: unsubscribe ntsysadmin

Reply via email to