SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
Security Vulnerability Notice
             SE-2012-01-PUBLIC

[Security vulnerabilities in Java SE, Issue 54]
DISCLAIMER

INFORMATION PROVIDED IN THIS DOCUMENT IS PROVIDED "AS IS" WITHOUT
WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, AND TO THE MAXIMUM EXTENT
PERMITTED BY APPLICABLE LAW NEITHER SECURITY EXPLORATIONS, ITS LICENSORS OR
AFFILIATES, NOR THE COPYRIGHT HOLDERS MAKE ANY REPRESENTATIONS OR
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR THAT THE
INFORMATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
TRADEMARKS, OR OTHER RIGHTS. THERE IS NO WARRANTY BY SECURITY
EXPLORATIONS OR BY ANY OTHER PARTY THAT THE INFORMATION CONTAINED IN THE
THIS DOCUMENT WILL MEET YOUR REQUIREMENTS OR THAT IT WILL BE ERROR-FREE.

YOU ASSUME ALL RESPONSIBILITY AND RISK FOR THE SELECTION AND USE OF THE
INFORMATION TO ACHIEVE YOUR INTENDED RESULTS AND FOR THE INSTALLATION,
USE, AND RESULTS OBTAINED FROM IT.

TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL
SECURITY EXPLORATIONS, ITS EMPLOYEES OR LICENSORS OR AFFILIATES BE LIABLE FOR
ANY LOST PROFITS, REVENUE, SALES, DATA, OR COSTS OF PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES, PROPERTY DAMAGE, PERSONAL INJURY,
INTERRUPTION OF BUSINESS, LOSS OF BUSINESS INFORMATION, OR FOR ANY SPECIAL,
DIRECT, INDIRECT, INCIDENTAL, ECONOMIC, COVER, PUNITIVE, SPECIAL, OR
CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND WHETHER ARISING UNDER
CONTRACT, TORT, NEGLIGENCE, OR OTHER THEORY OF LIABILITY ARISING OUT OF THE
USE OF OR INABILITY TO USE THE INFORMATION CONTAINED IN THIS DOCUMENT, EVEN
IF SECURITY EXPLORATIONS OR ITS LICENSORS OR AFFILIATES ARE ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

THIS PUBLICATION COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL
ERRORS.
VULNERABILITY DETAILS

Security Explorations discovered a security vulnerability in Java SE Platform, Standard
Edition. A table below, presents its technical summary:

 ISSUE    TECHNICAL DETAILS
 #
 54       origin     java.lang.invoke.MethodHandles
          cause      The lack of security checks in a family of MethodHandle resolving methods
          impact     Access to protected members of arbitrary classes
          type       partial security bypass vulnerability

Issue 54 stems from the fact that certain MethodHandle lookup methods
(resolveVirtual, resolveStatic, etc.) of java.lang.invoke.MethodHandles
class do not invoke the checkSecurityManager method during target class member
resolution process. This is clearly visible when arbitrary find and resolve methods
corresponding to a given MethodHandle lookup operation are compared as in the case of
findVirtual and resolveVirtual methods denoted below:

        public MethodHandle findVirtual(Class class1, String s, MethodType
methodtype) throws NoSuchMethodException, IllegalAccessException {
            MemberName membername = resolveOrFail(class1, s, methodtype, false);
            checkSecurityManager(class1, membername);  this call is missing below
            Class class2 = findBoundCallerClass(membername);
            return accessVirtual(class1, membername, class2);
        }

        private MethodHandle resolveVirtual(Class class1, String s, MethodType
methodtype) throws NoSuchMethodException, IllegalAccessException {
            MemberName membername = resolveOrFail(class1, s, methodtype, false);
            return accessVirtual(class1, membername, lookupClass);
        }

The above indicates the lack of a security check in resolveVirtual method. Although,
this method is private and is not invoked by any publicly available API method, it may be still
called by the Java VM during Class file parsing. This is in particular done whenever
MethodHandle entries are encountered in a target Class file’s ConstantPool.

For the purpose of our Proof of Concept code we generate a specially crafted MyCL class file
containing    a    MethodHandle        reference   to    defineClass          method      of
java.lang.ClassLoader class in its ConstantPool. A dump of the resulting file is
provided below:
public class MyCL extends java.lang.ClassLoader
  SourceFile: "MyCL.java"
  minor version: 0
  major version: 51
  flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
   #1 = Methodref          #5.#16         // java/lang/ClassLoader."<init>":()V
   #2 = Methodref          #5.#17         //
java/lang/ClassLoader.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionD
omain;)Ljava/lang/Class;
#3 = String             #10             // dummy
   #4 = Class              #18             // MyCL
   #5 = Class              #19             // java/lang/ClassLoader
   #6 = Utf8               <init>
   #7 = Utf8               ()V
   #8 = Utf8               Code
   #9 = Utf8               LineNumberTable
  #10 = Utf8               dummy
  #11 = Utf8
(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)V
  #12 = Utf8               get_defineClass_mh
  #13 = Utf8               ()Ljava/lang/Object;
  #14 = Utf8               SourceFile
  #15 = Utf8               MyCL.java
  #16 = NameAndType        #6:#7           // "<init>":()V
  #17 = NameAndType        #20:#21         //
defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Clas
s;
  #18 = Utf8               MyCL
  #19 = Utf8               java/lang/ClassLoader
  #20 = Utf8               defineClass
  #21 = Utf8
(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
  #22 = MethodHandle       #5:#2           // invokevirtual
java/lang/ClassLoader.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionD
omain;)Ljava/lang/Class;

ConstantPool at index 22 contains the MethodHandle entry which will be successfully
resolved with the use of the resolveVirtual method during Class file parsing. This can
be accomplished due to the missing security checks in the abovementioned method.

IMPACT
Described Issue 54 is not sufficient to implement a functional and successful attack code in
the environment of Java SE 7. Security Explorations discovered another issue (number 55)
affecting Oracle’s Java SE 7 that allows to do this.

Issues 54 and 55, when combined together can be used to successfully achieve a complete
Java security sandbox bypass in a target system. Proof of Concept code illustrating the
impact of both vulnerabilities has been successfully tested in the environment of Java SE 7
Update 15 and Java SE 7 Update 17.

VENDOR’S RESPONSE
On Feb 25 2013, Security Explorations sent a vulnerability notice to Oracle containing
detailed information about two discovered vulnerabilities (Issues 54 and 55). Along with
that, the company was also provided with source and binary codes for a Proof of Concept
codes illustrating the impact of both security issues found.

On Feb 27, 2013 Oracle provided the results of its assessment and informed that Issue 54
was not treated as a vulnerability as it demonstrated the "allowed behavior". Company’s
denial of the issue as a security bug was made on the following basis:

"obtaining a method handle for a protected method from a superclass is allowed behavior"

Security Explorations didn’t agree with the above assessment and on the same day provided
its counterarguments to Oracle. We indicated that Issue 54 abused the missing security
manager check in resolveVirtual method in order to gain access to method handle
objects of certain security sensitive classes such as Class Loaders. In our Proof of Concept
code, we were able to access Method Handle object pointing to defineClass method of
java.lang.ClassLoader class.

Oracle claimed that accessing a protected member such as a Method Handle from a
superclass is an allowed behavior. This is not true as demonstrated by the code below:

public class MyCL extends ClassLoader {
 public static void test() {
  try {
   MethodHandles.Lookup l=MethodHandles.lookup();
   System.out.println("lookup: "+l.lookupClass()+"/"+l.lookupModes());

   Class ctab[]=new Class[5];
   ctab[0]=java.lang.String.class;
   ctab[1]=(new byte[0]).getClass();
   ctab[2]=Integer.TYPE;
   ctab[3]=Integer.TYPE;
   ctab[4]=java.security.ProtectionDomain.class;

   MethodType desc=MethodType.methodType(java.lang.Class.class,ctab);

      MethodHandle
mh=l.findVirtual(java.lang.ClassLoader.class,"defineClass",desc);
      System.out.println(mh);
    } catch(Throwable t) {
      t.printStackTrace();
    }
  }
}

The above code does exactly the same thing as a code sequence we use in our Proof of
Concept code. The only difference is in the method that gets called at the time of Method
Handle resolution (here findVirtual, in our PoC this is resolveVirtual).

The above code tries to access a protected member (defineClass Method Handle) from
the subclass of the class that declares that member. However, contrary to Oracle’s claim
such an access is not allowed. It is blocked by the checkSecurityManager method:

Security manager = sun.plugin2.applet.AWTAppletSecurityManager@c3cae5
lookup: class MyCL/15
java.security.AccessControlException: access denied
("java.lang.RuntimePermission" "accessDeclaredMembers")
      at java.security.AccessControlContext.checkPermission(Unknown Source)
      at java.security.AccessController.checkPermission(Unknown Source)
      at java.lang.SecurityManager.checkPermission(Unknown Source)
      at java.lang.SecurityManager.checkMemberAccess(Unknown Source)
      at java.lang.invoke.MethodHandles$Lookup.checkSecurityManager(Unknown
Source)
      at java.lang.invoke.MethodHandles$Lookup.findVirtual(Unknown Source)
      at MyCL.test(MyCL.java:39)
      at BlackBox.<init>(BlackBox.java:31)
      ...

The above result is consistent with Java SE documentation [1] describing Security Manager
interactions conducted at the time of member lookup operations:
"If a security manager is present, member lookups are subject to additional checks."

 "If the retrieved member is not public, smgr.checkMemberAccess(defc,Member.DECLARED)
is called."

We also indicated to Oracle that even partially initialized Class Loader instances are not
allowed in Java SE and that core Reflection API does not allow access to protected members
of system classes, unless access to declared members is granted.

On 05 Mar 2013, Oracle informed us that it was continuing to evaluate Security Explorations'
arguments regarding Issue 54. The company provided the following background for its
analysis:

“The rules controlling runtime reflection are different from the resolution of a method handle
in a class file constant pool (see [2], [3] for details). The two methods of obtaining method
handles (via constant pool and reflection) have different models for when access checks are
applied. For the constant pool case, the JVM applies the access control checks that are
consistent for all forms of constant pool resolution. If a valid class file can contain an
invokespecial (or other invoke instruction) for a method, then a method handle for that
method is allowed in the constant pool. In your report #54, there is an invokespecial for:

Method
java/lang/ClassLoader.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)L
java/lang/Class;

in MyCL.class, and thus a method handle for the same method is allowed. If this method
were package private or private, the modified class would throw an
IncompatibleClassChangeError at load time. While the two systems parallel one another,
their behavior is different.”

What’s important to note is that the above background includes arguments for the “allowed
behavior” again. This time this is however done in a context of JVM specification and
Constant Pool resolution.

On Mar 11 2013, we asked Oracle about the final evaluation of Issue 54. In a response, the
company informed us that it was still continuing to evaluate it.

As of Mar 18, 2013 we have no information that the company treats the issue as a security
vulnerability.

FINAL WORDS
Security Explorations believes that 3 weeks (from Feb 25 to Mar 18) constitutes enough time
for a major software vendor to be able to deliver a final confirmation or denial of a reported
security issue. This especially concerns a vendor that has been a subject of a considerable
criticism regarding competent and prompt handling of security vulnerabilities in its software.

Security Explorations does not agree with Oracle’s arguments and reasoning provided so far
with respect to Issue 54. A general rule in security is that same circumstances / constraints
should lead to consistent (same, not different) security access related decisions. In case of
Issue 54, resolving protected members of superclasses should be either always allowed or
denied for all code paths available to untrusted code (irrespective whether a member is
resolved with the use of a public API or internally by the Java VM operating on behalf of an
untrusted code).

Security Explorations is not aware of any other way to obtain a Method Handle to the
protected member of java.lang.ClassLoader class that would not be the outcome of a
security vulnerability.

Security Explorations failed to launch a successful Java security sandbox bypass scenario
upon access to defineClass Method Handle obtained with the use of a different
vulnerability (Issue 57). That contradicts the claim that Issue 54 is the “allowed behavior”. It
also contradicts an indirect conclusion that Issue 55 is alone sufficient to launch the attack
demonstrated to the company.

Our tests indicate that Issue 55 can be combined with a Method Handle object obtained with
the use of Issue 54 only.

If Oracle sticks to the “allowed behavior” scenario, in order to maintain proper consistency
of security checks in Java SE, the company should relax some of security checks present in
Reflection API code and apply proper changes to Java SE documentation [1] as well. The
alternative is to admit to the fault regarding the evaluation of Issue 54 and begin to treat it
as a security vulnerability being the result of inconsistent security design of new Reflection
API (no security checks enforced by JVM specification during Method Handles resolution
[2][3]).

REFERENCES
[1] Class MethodHandles.Lookup, Security manager interactions
http://docs.oracle.com/javase/7/docs/api/java/lang/invoke/MethodHand
les.Lookup.html#secmgr
[2] The Java Virtual Machine Specification, The CONSTANT_MethodHandle_info Structure
http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-
4.4.8
[3] The Java Virtual Machine Specification, Method Type and Method Handle Resolution
http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-5.html#jvms-
5.4.3.5


About Security Explorations

Security Explorations (http://www.security-explorations.com) is a security start-
up company from Poland, providing various services in the area of security and vulnerability
research. The company came to life in a result of a true passion of its founder for breaking
security of things and analyzing software for security defects. Adam Gowdiak is the
company's founder and its CEO. Adam is an experienced Java Virtual Machine hacker, with
over 50 security issues uncovered in the Java technology over the recent years. He is also
the hacking contest co-winner and the man who has put Microsoft Windows to its knees
(vide MS03-026). He was also the first one to present successful and widespread attack
against mobile Java platform in 2004.

Weitere ähnliche Inhalte

Was ist angesagt?

Top 20 Junit interview questions for sdet
Top 20 Junit interview questions for sdetTop 20 Junit interview questions for sdet
Top 20 Junit interview questions for sdetDevLabs Alliance
 
Exceptional Handling in Java
Exceptional Handling in JavaExceptional Handling in Java
Exceptional Handling in JavaQaziUmarF786
 
TDD-UnitTestingSpring-CodeCov
TDD-UnitTestingSpring-CodeCovTDD-UnitTestingSpring-CodeCov
TDD-UnitTestingSpring-CodeCovjmdrocks
 
"Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,...
"Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,..."Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,...
"Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,...Vladimir Ivanov
 
201 core java interview questions oo ps interview questions - javatpoint
201 core java interview questions   oo ps interview questions - javatpoint201 core java interview questions   oo ps interview questions - javatpoint
201 core java interview questions oo ps interview questions - javatpointravi tyagi
 
How to not shoot yourself in the foot when working with serialization
How to not shoot yourself in the foot when working with serializationHow to not shoot yourself in the foot when working with serialization
How to not shoot yourself in the foot when working with serializationPVS-Studio
 
OCA Java SE 8 Exam Chapter 6 Exceptions
OCA Java SE 8 Exam Chapter 6 ExceptionsOCA Java SE 8 Exam Chapter 6 Exceptions
OCA Java SE 8 Exam Chapter 6 Exceptionsİbrahim Kürce
 
Java object oriented programming - OOPS
Java object oriented programming - OOPSJava object oriented programming - OOPS
Java object oriented programming - OOPSrithustutorials
 
Unit Testing & TDD Training for Mobile Apps
Unit Testing & TDD Training for Mobile AppsUnit Testing & TDD Training for Mobile Apps
Unit Testing & TDD Training for Mobile AppsMarcelo Busico
 
Unit5 java
Unit5 javaUnit5 java
Unit5 javamrecedu
 
Java Core Parctical
Java Core ParcticalJava Core Parctical
Java Core ParcticalGaurav Mehta
 
Java Unit Test and Coverage Introduction
Java Unit Test and Coverage IntroductionJava Unit Test and Coverage Introduction
Java Unit Test and Coverage IntroductionAlex Su
 

Was ist angesagt? (20)

Top 20 Junit interview questions for sdet
Top 20 Junit interview questions for sdetTop 20 Junit interview questions for sdet
Top 20 Junit interview questions for sdet
 
Exceptional Handling in Java
Exceptional Handling in JavaExceptional Handling in Java
Exceptional Handling in Java
 
Exception Handling in Java
Exception Handling in JavaException Handling in Java
Exception Handling in Java
 
TDD-UnitTestingSpring-CodeCov
TDD-UnitTestingSpring-CodeCovTDD-UnitTestingSpring-CodeCov
TDD-UnitTestingSpring-CodeCov
 
Java scjp-part1
Java scjp-part1Java scjp-part1
Java scjp-part1
 
Lab13
Lab13Lab13
Lab13
 
Advanced Scala
Advanced ScalaAdvanced Scala
Advanced Scala
 
"Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,...
"Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,..."Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,...
"Formal Verification in Java" by Shura Iline, Vladimir Ivanov @ JEEConf 2013,...
 
201 core java interview questions oo ps interview questions - javatpoint
201 core java interview questions   oo ps interview questions - javatpoint201 core java interview questions   oo ps interview questions - javatpoint
201 core java interview questions oo ps interview questions - javatpoint
 
1z0-808-certification-questions-sample
1z0-808-certification-questions-sample1z0-808-certification-questions-sample
1z0-808-certification-questions-sample
 
How to not shoot yourself in the foot when working with serialization
How to not shoot yourself in the foot when working with serializationHow to not shoot yourself in the foot when working with serialization
How to not shoot yourself in the foot when working with serialization
 
OCA Java SE 8 Exam Chapter 6 Exceptions
OCA Java SE 8 Exam Chapter 6 ExceptionsOCA Java SE 8 Exam Chapter 6 Exceptions
OCA Java SE 8 Exam Chapter 6 Exceptions
 
Java object oriented programming - OOPS
Java object oriented programming - OOPSJava object oriented programming - OOPS
Java object oriented programming - OOPS
 
Unit Testing & TDD Training for Mobile Apps
Unit Testing & TDD Training for Mobile AppsUnit Testing & TDD Training for Mobile Apps
Unit Testing & TDD Training for Mobile Apps
 
Unit5 java
Unit5 javaUnit5 java
Unit5 java
 
Java unit3
Java unit3Java unit3
Java unit3
 
Java Core Parctical
Java Core ParcticalJava Core Parctical
Java Core Parctical
 
Junit 4.0
Junit 4.0Junit 4.0
Junit 4.0
 
Java Unit Test and Coverage Introduction
Java Unit Test and Coverage IntroductionJava Unit Test and Coverage Introduction
Java Unit Test and Coverage Introduction
 
Java Unit Testing
Java Unit TestingJava Unit Testing
Java Unit Testing
 

Andere mochten auch

Red october. detailed malware description
Red october. detailed malware descriptionRed october. detailed malware description
Red october. detailed malware descriptionYury Chemerkin
 
Lima - Digital Forensic Case Management System
Lima - Digital Forensic Case Management SystemLima - Digital Forensic Case Management System
Lima - Digital Forensic Case Management SystemIntaForensics
 
The Investigative Lab - White Paper
The Investigative Lab - White PaperThe Investigative Lab - White Paper
The Investigative Lab - White PaperNuix
 
Comment crew indicators of compromise
Comment crew indicators of compromiseComment crew indicators of compromise
Comment crew indicators of compromiseYury Chemerkin
 
Appendix g iocs readme
Appendix g iocs readmeAppendix g iocs readme
Appendix g iocs readmeYury Chemerkin
 
Comparison of android and black berry forensic techniques
Comparison of android and black berry forensic techniquesComparison of android and black berry forensic techniques
Comparison of android and black berry forensic techniquesYury Chemerkin
 
Social network privacy.
Social network privacy.Social network privacy.
Social network privacy.Yury Chemerkin
 
Pentest Apocalypse - SANSFIRE 2016 Edition
Pentest Apocalypse - SANSFIRE 2016 EditionPentest Apocalypse - SANSFIRE 2016 Edition
Pentest Apocalypse - SANSFIRE 2016 EditionBeau Bullock
 
Instrucciones para la elaboración del glosario
Instrucciones para la elaboración del glosarioInstrucciones para la elaboración del glosario
Instrucciones para la elaboración del glosariovianeyjim
 
La #NouvelleVague de l’écosystème français des startups
La #NouvelleVague de l’écosystème français des startupsLa #NouvelleVague de l’écosystème français des startups
La #NouvelleVague de l’écosystème français des startupsStripe
 

Andere mochten auch (11)

Red october. detailed malware description
Red october. detailed malware descriptionRed october. detailed malware description
Red october. detailed malware description
 
Lima - Digital Forensic Case Management System
Lima - Digital Forensic Case Management SystemLima - Digital Forensic Case Management System
Lima - Digital Forensic Case Management System
 
The Investigative Lab - White Paper
The Investigative Lab - White PaperThe Investigative Lab - White Paper
The Investigative Lab - White Paper
 
Comment crew indicators of compromise
Comment crew indicators of compromiseComment crew indicators of compromise
Comment crew indicators of compromise
 
Appendix g iocs readme
Appendix g iocs readmeAppendix g iocs readme
Appendix g iocs readme
 
Comparison of android and black berry forensic techniques
Comparison of android and black berry forensic techniquesComparison of android and black berry forensic techniques
Comparison of android and black berry forensic techniques
 
Social network privacy.
Social network privacy.Social network privacy.
Social network privacy.
 
Pentest Apocalypse - SANSFIRE 2016 Edition
Pentest Apocalypse - SANSFIRE 2016 EditionPentest Apocalypse - SANSFIRE 2016 Edition
Pentest Apocalypse - SANSFIRE 2016 Edition
 
Finding Security Issues Fast!
Finding Security Issues Fast!Finding Security Issues Fast!
Finding Security Issues Fast!
 
Instrucciones para la elaboración del glosario
Instrucciones para la elaboración del glosarioInstrucciones para la elaboración del glosario
Instrucciones para la elaboración del glosario
 
La #NouvelleVague de l’écosystème français des startups
La #NouvelleVague de l’écosystème français des startupsLa #NouvelleVague de l’écosystème français des startups
La #NouvelleVague de l’écosystème français des startups
 

Ähnlich wie Security Vulnerability Notice SE-2012-01-PUBLIC [Security vulnerabilities in Java SE, Issue 54]

Unit8 security (2) java
Unit8 security (2) javaUnit8 security (2) java
Unit8 security (2) javaSharafat Husen
 
Software Design Level Vulnerability Classification Model
Software Design Level Vulnerability Classification ModelSoftware Design Level Vulnerability Classification Model
Software Design Level Vulnerability Classification ModelCSCJournals
 
Secure JEE Architecture and Programming 101
Secure JEE Architecture and Programming 101Secure JEE Architecture and Programming 101
Secure JEE Architecture and Programming 101Mario-Leander Reimer
 
Power point presentation on access specifier in OOPs
Power point presentation on access specifier in OOPsPower point presentation on access specifier in OOPs
Power point presentation on access specifier in OOPsAdrizaBera
 
Developing With JAAS
Developing With JAASDeveloping With JAAS
Developing With JAASrahmed_sct
 
"Study of Java Access Control Mechanism”
"Study of Java Access Control Mechanism”"Study of Java Access Control Mechanism”
"Study of Java Access Control Mechanism”IOSR Journals
 
Chapter 8 - Exceptions and Assertions Edit summary
Chapter 8 - Exceptions and Assertions  Edit summaryChapter 8 - Exceptions and Assertions  Edit summary
Chapter 8 - Exceptions and Assertions Edit summaryEduardo Bergavera
 
Java căn bản - Chapter8
Java căn bản - Chapter8Java căn bản - Chapter8
Java căn bản - Chapter8Vince Vo
 
Selenium Training .pptx
Selenium Training .pptxSelenium Training .pptx
Selenium Training .pptxSajidTk2
 

Ähnlich wie Security Vulnerability Notice SE-2012-01-PUBLIC [Security vulnerabilities in Java SE, Issue 54] (20)

Java Security
Java SecurityJava Security
Java Security
 
Unit8 security (2) java
Unit8 security (2) javaUnit8 security (2) java
Unit8 security (2) java
 
Software Design Level Vulnerability Classification Model
Software Design Level Vulnerability Classification ModelSoftware Design Level Vulnerability Classification Model
Software Design Level Vulnerability Classification Model
 
Secure JEE Architecture and Programming 101
Secure JEE Architecture and Programming 101Secure JEE Architecture and Programming 101
Secure JEE Architecture and Programming 101
 
Class loaders
Class loadersClass loaders
Class loaders
 
Power point presentation on access specifier in OOPs
Power point presentation on access specifier in OOPsPower point presentation on access specifier in OOPs
Power point presentation on access specifier in OOPs
 
Developing With JAAS
Developing With JAASDeveloping With JAAS
Developing With JAAS
 
Java Exception handling
Java Exception handlingJava Exception handling
Java Exception handling
 
Deployment
DeploymentDeployment
Deployment
 
DAY_1.1.pptx
DAY_1.1.pptxDAY_1.1.pptx
DAY_1.1.pptx
 
"Study of Java Access Control Mechanism”
"Study of Java Access Control Mechanism”"Study of Java Access Control Mechanism”
"Study of Java Access Control Mechanism”
 
Chapter 8 - Exceptions and Assertions Edit summary
Chapter 8 - Exceptions and Assertions  Edit summaryChapter 8 - Exceptions and Assertions  Edit summary
Chapter 8 - Exceptions and Assertions Edit summary
 
Java căn bản - Chapter8
Java căn bản - Chapter8Java căn bản - Chapter8
Java căn bản - Chapter8
 
Exception handling
Exception handlingException handling
Exception handling
 
Exception handling
Exception handlingException handling
Exception handling
 
Selenium Training .pptx
Selenium Training .pptxSelenium Training .pptx
Selenium Training .pptx
 
Diifeerences In C#
Diifeerences In C#Diifeerences In C#
Diifeerences In C#
 
Java Reflection
Java ReflectionJava Reflection
Java Reflection
 
Security in Java
Security in JavaSecurity in Java
Security in Java
 
JavaSecure
JavaSecureJavaSecure
JavaSecure
 

Mehr von Yury Chemerkin

Appendix f (digital) ssl certificates
Appendix f (digital)   ssl certificatesAppendix f (digital)   ssl certificates
Appendix f (digital) ssl certificatesYury Chemerkin
 
Appendix e (digital) md5s
Appendix e (digital)   md5sAppendix e (digital)   md5s
Appendix e (digital) md5sYury Chemerkin
 
Appendix d (digital) fqd ns
Appendix d (digital)   fqd nsAppendix d (digital)   fqd ns
Appendix d (digital) fqd nsYury Chemerkin
 
6071f3f4 40e6-4c7b-8868-3b0b21a9f601
6071f3f4 40e6-4c7b-8868-3b0b21a9f6016071f3f4 40e6-4c7b-8868-3b0b21a9f601
6071f3f4 40e6-4c7b-8868-3b0b21a9f601Yury Chemerkin
 
Zane lackey. security at scale. web application security in a continuous depl...
Zane lackey. security at scale. web application security in a continuous depl...Zane lackey. security at scale. web application security in a continuous depl...
Zane lackey. security at scale. web application security in a continuous depl...Yury Chemerkin
 
Windows 8. important considerations for computer forensics and electronic dis...
Windows 8. important considerations for computer forensics and electronic dis...Windows 8. important considerations for computer forensics and electronic dis...
Windows 8. important considerations for computer forensics and electronic dis...Yury Chemerkin
 
The stuxnet computer worm. harbinger of an emerging warfare capability
The stuxnet computer worm. harbinger of an emerging warfare capabilityThe stuxnet computer worm. harbinger of an emerging warfare capability
The stuxnet computer worm. harbinger of an emerging warfare capabilityYury Chemerkin
 
Stuxnet. analysis, myths, realities
Stuxnet. analysis, myths, realitiesStuxnet. analysis, myths, realities
Stuxnet. analysis, myths, realitiesYury Chemerkin
 
Stuxnet redux. malware attribution & lessons learned
Stuxnet redux. malware attribution & lessons learnedStuxnet redux. malware attribution & lessons learned
Stuxnet redux. malware attribution & lessons learnedYury Chemerkin
 
Sophos ransom ware fake antivirus
Sophos ransom ware fake antivirusSophos ransom ware fake antivirus
Sophos ransom ware fake antivirusYury Chemerkin
 
Six months later – a report card on google’s demotion of pirate sites
Six months later – a report card on google’s demotion of pirate sitesSix months later – a report card on google’s demotion of pirate sites
Six months later – a report card on google’s demotion of pirate sitesYury Chemerkin
 
Security in the cloud planning guide
Security in the cloud planning guideSecurity in the cloud planning guide
Security in the cloud planning guideYury Chemerkin
 
Security configuration recommendations for apple i os 5 devices
Security configuration recommendations for apple i os 5 devicesSecurity configuration recommendations for apple i os 5 devices
Security configuration recommendations for apple i os 5 devicesYury Chemerkin
 
Render man. hacker + airplanes = no good can come of this
Render man. hacker + airplanes = no good can come of thisRender man. hacker + airplanes = no good can come of this
Render man. hacker + airplanes = no good can come of thisYury Chemerkin
 
Mario heiderich. got your nose! how to steal your precious data without using...
Mario heiderich. got your nose! how to steal your precious data without using...Mario heiderich. got your nose! how to steal your precious data without using...
Mario heiderich. got your nose! how to steal your precious data without using...Yury Chemerkin
 
Magdalena kurnik. discussion panel – en – hackers. beyond the edge
Magdalena kurnik. discussion panel – en – hackers. beyond the edgeMagdalena kurnik. discussion panel – en – hackers. beyond the edge
Magdalena kurnik. discussion panel – en – hackers. beyond the edgeYury Chemerkin
 
Luiz eduardo. introduction to mobile snitch
Luiz eduardo. introduction to mobile snitchLuiz eduardo. introduction to mobile snitch
Luiz eduardo. introduction to mobile snitchYury Chemerkin
 
Krzysztof kotowicz. something wicked this way comes
Krzysztof kotowicz. something wicked this way comesKrzysztof kotowicz. something wicked this way comes
Krzysztof kotowicz. something wicked this way comesYury Chemerkin
 

Mehr von Yury Chemerkin (20)

Appendix f (digital) ssl certificates
Appendix f (digital)   ssl certificatesAppendix f (digital)   ssl certificates
Appendix f (digital) ssl certificates
 
Appendix e (digital) md5s
Appendix e (digital)   md5sAppendix e (digital)   md5s
Appendix e (digital) md5s
 
Appendix d (digital) fqd ns
Appendix d (digital)   fqd nsAppendix d (digital)   fqd ns
Appendix d (digital) fqd ns
 
6071f3f4 40e6-4c7b-8868-3b0b21a9f601
6071f3f4 40e6-4c7b-8868-3b0b21a9f6016071f3f4 40e6-4c7b-8868-3b0b21a9f601
6071f3f4 40e6-4c7b-8868-3b0b21a9f601
 
Jp3 13
Jp3 13Jp3 13
Jp3 13
 
Zane lackey. security at scale. web application security in a continuous depl...
Zane lackey. security at scale. web application security in a continuous depl...Zane lackey. security at scale. web application security in a continuous depl...
Zane lackey. security at scale. web application security in a continuous depl...
 
Windows 8. important considerations for computer forensics and electronic dis...
Windows 8. important considerations for computer forensics and electronic dis...Windows 8. important considerations for computer forensics and electronic dis...
Windows 8. important considerations for computer forensics and electronic dis...
 
The stuxnet computer worm. harbinger of an emerging warfare capability
The stuxnet computer worm. harbinger of an emerging warfare capabilityThe stuxnet computer worm. harbinger of an emerging warfare capability
The stuxnet computer worm. harbinger of an emerging warfare capability
 
Stuxnet. analysis, myths, realities
Stuxnet. analysis, myths, realitiesStuxnet. analysis, myths, realities
Stuxnet. analysis, myths, realities
 
Stuxnet redux. malware attribution & lessons learned
Stuxnet redux. malware attribution & lessons learnedStuxnet redux. malware attribution & lessons learned
Stuxnet redux. malware attribution & lessons learned
 
Sophos ransom ware fake antivirus
Sophos ransom ware fake antivirusSophos ransom ware fake antivirus
Sophos ransom ware fake antivirus
 
Six months later – a report card on google’s demotion of pirate sites
Six months later – a report card on google’s demotion of pirate sitesSix months later – a report card on google’s demotion of pirate sites
Six months later – a report card on google’s demotion of pirate sites
 
Security in the cloud planning guide
Security in the cloud planning guideSecurity in the cloud planning guide
Security in the cloud planning guide
 
Security configuration recommendations for apple i os 5 devices
Security configuration recommendations for apple i os 5 devicesSecurity configuration recommendations for apple i os 5 devices
Security configuration recommendations for apple i os 5 devices
 
Render man. hacker + airplanes = no good can come of this
Render man. hacker + airplanes = no good can come of thisRender man. hacker + airplanes = no good can come of this
Render man. hacker + airplanes = no good can come of this
 
Msft oracle brief
Msft oracle briefMsft oracle brief
Msft oracle brief
 
Mario heiderich. got your nose! how to steal your precious data without using...
Mario heiderich. got your nose! how to steal your precious data without using...Mario heiderich. got your nose! how to steal your precious data without using...
Mario heiderich. got your nose! how to steal your precious data without using...
 
Magdalena kurnik. discussion panel – en – hackers. beyond the edge
Magdalena kurnik. discussion panel – en – hackers. beyond the edgeMagdalena kurnik. discussion panel – en – hackers. beyond the edge
Magdalena kurnik. discussion panel – en – hackers. beyond the edge
 
Luiz eduardo. introduction to mobile snitch
Luiz eduardo. introduction to mobile snitchLuiz eduardo. introduction to mobile snitch
Luiz eduardo. introduction to mobile snitch
 
Krzysztof kotowicz. something wicked this way comes
Krzysztof kotowicz. something wicked this way comesKrzysztof kotowicz. something wicked this way comes
Krzysztof kotowicz. something wicked this way comes
 

Kürzlich hochgeladen

Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 

Kürzlich hochgeladen (20)

Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 

Security Vulnerability Notice SE-2012-01-PUBLIC [Security vulnerabilities in Java SE, Issue 54]

  • 1. Security Vulnerability Notice SE-2012-01-PUBLIC [Security vulnerabilities in Java SE, Issue 54]
  • 2. DISCLAIMER INFORMATION PROVIDED IN THIS DOCUMENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, AND TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW NEITHER SECURITY EXPLORATIONS, ITS LICENSORS OR AFFILIATES, NOR THE COPYRIGHT HOLDERS MAKE ANY REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR THAT THE INFORMATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER RIGHTS. THERE IS NO WARRANTY BY SECURITY EXPLORATIONS OR BY ANY OTHER PARTY THAT THE INFORMATION CONTAINED IN THE THIS DOCUMENT WILL MEET YOUR REQUIREMENTS OR THAT IT WILL BE ERROR-FREE. YOU ASSUME ALL RESPONSIBILITY AND RISK FOR THE SELECTION AND USE OF THE INFORMATION TO ACHIEVE YOUR INTENDED RESULTS AND FOR THE INSTALLATION, USE, AND RESULTS OBTAINED FROM IT. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL SECURITY EXPLORATIONS, ITS EMPLOYEES OR LICENSORS OR AFFILIATES BE LIABLE FOR ANY LOST PROFITS, REVENUE, SALES, DATA, OR COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, PROPERTY DAMAGE, PERSONAL INJURY, INTERRUPTION OF BUSINESS, LOSS OF BUSINESS INFORMATION, OR FOR ANY SPECIAL, DIRECT, INDIRECT, INCIDENTAL, ECONOMIC, COVER, PUNITIVE, SPECIAL, OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND WHETHER ARISING UNDER CONTRACT, TORT, NEGLIGENCE, OR OTHER THEORY OF LIABILITY ARISING OUT OF THE USE OF OR INABILITY TO USE THE INFORMATION CONTAINED IN THIS DOCUMENT, EVEN IF SECURITY EXPLORATIONS OR ITS LICENSORS OR AFFILIATES ARE ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THIS PUBLICATION COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS.
  • 3. VULNERABILITY DETAILS Security Explorations discovered a security vulnerability in Java SE Platform, Standard Edition. A table below, presents its technical summary: ISSUE TECHNICAL DETAILS # 54 origin java.lang.invoke.MethodHandles cause The lack of security checks in a family of MethodHandle resolving methods impact Access to protected members of arbitrary classes type partial security bypass vulnerability Issue 54 stems from the fact that certain MethodHandle lookup methods (resolveVirtual, resolveStatic, etc.) of java.lang.invoke.MethodHandles class do not invoke the checkSecurityManager method during target class member resolution process. This is clearly visible when arbitrary find and resolve methods corresponding to a given MethodHandle lookup operation are compared as in the case of findVirtual and resolveVirtual methods denoted below: public MethodHandle findVirtual(Class class1, String s, MethodType methodtype) throws NoSuchMethodException, IllegalAccessException { MemberName membername = resolveOrFail(class1, s, methodtype, false); checkSecurityManager(class1, membername);  this call is missing below Class class2 = findBoundCallerClass(membername); return accessVirtual(class1, membername, class2); } private MethodHandle resolveVirtual(Class class1, String s, MethodType methodtype) throws NoSuchMethodException, IllegalAccessException { MemberName membername = resolveOrFail(class1, s, methodtype, false); return accessVirtual(class1, membername, lookupClass); } The above indicates the lack of a security check in resolveVirtual method. Although, this method is private and is not invoked by any publicly available API method, it may be still called by the Java VM during Class file parsing. This is in particular done whenever MethodHandle entries are encountered in a target Class file’s ConstantPool. For the purpose of our Proof of Concept code we generate a specially crafted MyCL class file containing a MethodHandle reference to defineClass method of java.lang.ClassLoader class in its ConstantPool. A dump of the resulting file is provided below: public class MyCL extends java.lang.ClassLoader SourceFile: "MyCL.java" minor version: 0 major version: 51 flags: ACC_PUBLIC, ACC_SUPER Constant pool: #1 = Methodref #5.#16 // java/lang/ClassLoader."<init>":()V #2 = Methodref #5.#17 // java/lang/ClassLoader.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionD omain;)Ljava/lang/Class;
  • 4. #3 = String #10 // dummy #4 = Class #18 // MyCL #5 = Class #19 // java/lang/ClassLoader #6 = Utf8 <init> #7 = Utf8 ()V #8 = Utf8 Code #9 = Utf8 LineNumberTable #10 = Utf8 dummy #11 = Utf8 (Ljava/lang/String;[BIILjava/security/ProtectionDomain;)V #12 = Utf8 get_defineClass_mh #13 = Utf8 ()Ljava/lang/Object; #14 = Utf8 SourceFile #15 = Utf8 MyCL.java #16 = NameAndType #6:#7 // "<init>":()V #17 = NameAndType #20:#21 // defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Clas s; #18 = Utf8 MyCL #19 = Utf8 java/lang/ClassLoader #20 = Utf8 defineClass #21 = Utf8 (Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class; #22 = MethodHandle #5:#2 // invokevirtual java/lang/ClassLoader.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionD omain;)Ljava/lang/Class; ConstantPool at index 22 contains the MethodHandle entry which will be successfully resolved with the use of the resolveVirtual method during Class file parsing. This can be accomplished due to the missing security checks in the abovementioned method. IMPACT Described Issue 54 is not sufficient to implement a functional and successful attack code in the environment of Java SE 7. Security Explorations discovered another issue (number 55) affecting Oracle’s Java SE 7 that allows to do this. Issues 54 and 55, when combined together can be used to successfully achieve a complete Java security sandbox bypass in a target system. Proof of Concept code illustrating the impact of both vulnerabilities has been successfully tested in the environment of Java SE 7 Update 15 and Java SE 7 Update 17. VENDOR’S RESPONSE On Feb 25 2013, Security Explorations sent a vulnerability notice to Oracle containing detailed information about two discovered vulnerabilities (Issues 54 and 55). Along with that, the company was also provided with source and binary codes for a Proof of Concept codes illustrating the impact of both security issues found. On Feb 27, 2013 Oracle provided the results of its assessment and informed that Issue 54 was not treated as a vulnerability as it demonstrated the "allowed behavior". Company’s denial of the issue as a security bug was made on the following basis: "obtaining a method handle for a protected method from a superclass is allowed behavior" Security Explorations didn’t agree with the above assessment and on the same day provided its counterarguments to Oracle. We indicated that Issue 54 abused the missing security
  • 5. manager check in resolveVirtual method in order to gain access to method handle objects of certain security sensitive classes such as Class Loaders. In our Proof of Concept code, we were able to access Method Handle object pointing to defineClass method of java.lang.ClassLoader class. Oracle claimed that accessing a protected member such as a Method Handle from a superclass is an allowed behavior. This is not true as demonstrated by the code below: public class MyCL extends ClassLoader { public static void test() { try { MethodHandles.Lookup l=MethodHandles.lookup(); System.out.println("lookup: "+l.lookupClass()+"/"+l.lookupModes()); Class ctab[]=new Class[5]; ctab[0]=java.lang.String.class; ctab[1]=(new byte[0]).getClass(); ctab[2]=Integer.TYPE; ctab[3]=Integer.TYPE; ctab[4]=java.security.ProtectionDomain.class; MethodType desc=MethodType.methodType(java.lang.Class.class,ctab); MethodHandle mh=l.findVirtual(java.lang.ClassLoader.class,"defineClass",desc); System.out.println(mh); } catch(Throwable t) { t.printStackTrace(); } } } The above code does exactly the same thing as a code sequence we use in our Proof of Concept code. The only difference is in the method that gets called at the time of Method Handle resolution (here findVirtual, in our PoC this is resolveVirtual). The above code tries to access a protected member (defineClass Method Handle) from the subclass of the class that declares that member. However, contrary to Oracle’s claim such an access is not allowed. It is blocked by the checkSecurityManager method: Security manager = sun.plugin2.applet.AWTAppletSecurityManager@c3cae5 lookup: class MyCL/15 java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessDeclaredMembers") at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkMemberAccess(Unknown Source) at java.lang.invoke.MethodHandles$Lookup.checkSecurityManager(Unknown Source) at java.lang.invoke.MethodHandles$Lookup.findVirtual(Unknown Source) at MyCL.test(MyCL.java:39) at BlackBox.<init>(BlackBox.java:31) ... The above result is consistent with Java SE documentation [1] describing Security Manager interactions conducted at the time of member lookup operations:
  • 6. "If a security manager is present, member lookups are subject to additional checks." "If the retrieved member is not public, smgr.checkMemberAccess(defc,Member.DECLARED) is called." We also indicated to Oracle that even partially initialized Class Loader instances are not allowed in Java SE and that core Reflection API does not allow access to protected members of system classes, unless access to declared members is granted. On 05 Mar 2013, Oracle informed us that it was continuing to evaluate Security Explorations' arguments regarding Issue 54. The company provided the following background for its analysis: “The rules controlling runtime reflection are different from the resolution of a method handle in a class file constant pool (see [2], [3] for details). The two methods of obtaining method handles (via constant pool and reflection) have different models for when access checks are applied. For the constant pool case, the JVM applies the access control checks that are consistent for all forms of constant pool resolution. If a valid class file can contain an invokespecial (or other invoke instruction) for a method, then a method handle for that method is allowed in the constant pool. In your report #54, there is an invokespecial for: Method java/lang/ClassLoader.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)L java/lang/Class; in MyCL.class, and thus a method handle for the same method is allowed. If this method were package private or private, the modified class would throw an IncompatibleClassChangeError at load time. While the two systems parallel one another, their behavior is different.” What’s important to note is that the above background includes arguments for the “allowed behavior” again. This time this is however done in a context of JVM specification and Constant Pool resolution. On Mar 11 2013, we asked Oracle about the final evaluation of Issue 54. In a response, the company informed us that it was still continuing to evaluate it. As of Mar 18, 2013 we have no information that the company treats the issue as a security vulnerability. FINAL WORDS Security Explorations believes that 3 weeks (from Feb 25 to Mar 18) constitutes enough time for a major software vendor to be able to deliver a final confirmation or denial of a reported security issue. This especially concerns a vendor that has been a subject of a considerable criticism regarding competent and prompt handling of security vulnerabilities in its software. Security Explorations does not agree with Oracle’s arguments and reasoning provided so far with respect to Issue 54. A general rule in security is that same circumstances / constraints should lead to consistent (same, not different) security access related decisions. In case of Issue 54, resolving protected members of superclasses should be either always allowed or denied for all code paths available to untrusted code (irrespective whether a member is
  • 7. resolved with the use of a public API or internally by the Java VM operating on behalf of an untrusted code). Security Explorations is not aware of any other way to obtain a Method Handle to the protected member of java.lang.ClassLoader class that would not be the outcome of a security vulnerability. Security Explorations failed to launch a successful Java security sandbox bypass scenario upon access to defineClass Method Handle obtained with the use of a different vulnerability (Issue 57). That contradicts the claim that Issue 54 is the “allowed behavior”. It also contradicts an indirect conclusion that Issue 55 is alone sufficient to launch the attack demonstrated to the company. Our tests indicate that Issue 55 can be combined with a Method Handle object obtained with the use of Issue 54 only. If Oracle sticks to the “allowed behavior” scenario, in order to maintain proper consistency of security checks in Java SE, the company should relax some of security checks present in Reflection API code and apply proper changes to Java SE documentation [1] as well. The alternative is to admit to the fault regarding the evaluation of Issue 54 and begin to treat it as a security vulnerability being the result of inconsistent security design of new Reflection API (no security checks enforced by JVM specification during Method Handles resolution [2][3]). REFERENCES [1] Class MethodHandles.Lookup, Security manager interactions http://docs.oracle.com/javase/7/docs/api/java/lang/invoke/MethodHand les.Lookup.html#secmgr [2] The Java Virtual Machine Specification, The CONSTANT_MethodHandle_info Structure http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms- 4.4.8 [3] The Java Virtual Machine Specification, Method Type and Method Handle Resolution http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-5.html#jvms- 5.4.3.5 About Security Explorations Security Explorations (http://www.security-explorations.com) is a security start- up company from Poland, providing various services in the area of security and vulnerability research. The company came to life in a result of a true passion of its founder for breaking security of things and analyzing software for security defects. Adam Gowdiak is the company's founder and its CEO. Adam is an experienced Java Virtual Machine hacker, with over 50 security issues uncovered in the Java technology over the recent years. He is also the hacking contest co-winner and the man who has put Microsoft Windows to its knees (vide MS03-026). He was also the first one to present successful and widespread attack against mobile Java platform in 2004.