라클 공지(http://www.oracle.com/technetwork/topics/security/javacpufeb2011-304611.html)에 올라온 정보만으로는 정확하게 무엇을 패치했는지 알기가 어렵습니다. 현재 공지의 My Oracle Support Note 360870.1  의 내용을 클릭해서 들어가면 503 error가 나오는 상태입니다.

 

우선 jdk 6 update 24 release notes에 따르면. http://www.oracle.com/technetwork/java/javase/6u24releasenotes-307697.html

사소한 버그 픽스 3건 (timezone, java db, java plugin)과 위에서 공유된 내용가 다입니다.

 

그동안 critical patch가 web start plugin에만 국한되었는데. 이건 패치는 약간 critical한 정보가 들어가 있는 듯 합니다.

웹과 연관된 것은 note 2,4번인데요. (deployment와 연관된 것은 java web start나 java applet이라고 보시면

2. Applies to client and server deployment of Java. This vulnerability can be exploited through Untrusted Java Web Start applications and Untrusted Java applets. It can also be exploited by supplying data to APIs in the specified Component without using untrusted Java Web Start applications or untrusted Java applets, such as through a web service.

4. Applies to server deployment of Java. This vulnerability can only be exploited by supplying data to APIs in the specified Component without using Untrusted Java Web Start applications or Untrusted Java applets, such as through a web service.

 

web service에 영향을 주는 2,4번에 해당되는 내용을 추려내면 다음과 같습니다.

CVE-2010-4454 (sound)

CVE-2010-4462 (sound)

 CVE-2010-4473 (sound)

CVE-2010-4470 (jaxp)

CVE-2010-4476 (java language)

CVE-2010-4472 (xml digital signature)

 

이 중에 4454, 4462, 4473는  sound 계통이고, 웹과 연관이 없기 때문에 무시하고,

이 나머지 3가지가 웹 서비스에 영향을 주는 것인데요, 관련해서 4476을 제외하고는 오라클에서는 관련된 자세한 내용은 공유하고 있지 않습니다.  다만, 레드햇 bugzilla에서 간단히 어떤 내용인지만 언급되어 있습니다.

CVE-2010-4470 Untrusted code allowed to replace DSIG/C14N implementation

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

CVE-2010-4472  JAXP untrusted component state manipulation
                                  https://bugzilla.redhat.com/show_bug.cgi?id=676005

CVE-2010-4476 : 2.2250738585072012e-308, known issue 

                                  http://www.oracle.com/technetwork/topics/security/alert-cve-2010-4476-305811.html

 

이번 패치 중 verbose하게 들어가 있는 정보 중 DOS 공격으로 인해서 문제(vulnerability)가 일어날 수 있다고 명시되어 있는 것은 다음 4가지입니다.

http://www.oracle.com/technetwork/topics/security/javacpufeb2011verbose-304615.html

 

CVE-2010-4450 OpenJDK Launcher incorrect processing of empty library path entries (6983554)  
                     https://bugzilla.redhat.com/show_bug.cgi?id=676026 

CVE-2010-4470 Untrusted code allowed to replace DSIG/C14N implementation

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

CVE-2010-4472  JAXP untrusted component state manipulation
                                  https://bugzilla.redhat.com/show_bug.cgi?id=676005

CVE-2010-4476 : 2.2250738585072012e-308, known issue 

                                  http://www.oracle.com/technetwork/topics/security/alert-cve-2010-4476-305811.html

 

3개가 중복적이고, 4450만 추가되었습니다.

 

 

현재까지 알려진 4가지 문제 중 자세히 나온 것은 현재 4476 정보 밖에는 없습니다. (혹시 내용 공유된 내용이 있으면 알려주세요)

 

아래와 같은 코드로 돌렸을 때, cpu가 hang걸리는 현상이 발견됩니다. (

http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/)

class runhang {
public static void main(String[] args) {
  System.out.println("Test:");
  double d = Double.parseDouble("2.2250738585072012e-308");
  System.out.println("Value: " + d);
 }
}

java 소스를 찾아 원인을 발견한

http://www.exploringbinary.com/a-closer-look-at-the-java-2-2250738585072012e-308-bug/

 

또한, 성능 엔지니어링팀의 이상민 차장님은 아래와 같이  jsp단에서 재현해서 해당 요청에 대해서 cpu 하나를 잡아먹는 현상을 재현해주셨습니다. 즉, 우리쪽 소스에 2.2250738585072012e-308 라는 파라미터가 action으로 들어오고, 내부적으로 double로 변환하는 것이 있을 때, dos 공격에 노출될수 있는 셈입니다.

<%

        //double result=Double.parseDouble("2.2250738585072012e-308");

        double result=Double.parseDouble("2.2250738585072012e-308");

        out.println("result="+result);

%>

 

 

 나머지 알려지지 않은 것들은 unspecified된 것으로 보아, critical 한 내용인 것으로 짐작됩니다.

 

 

참고로. 위의 4가지 이슈는 base score가 5.0 이하 점수입니다.

patch release를 보면, cvss base risk라고 해서 특정 수식에 따라 base score를 주도록 되어 있는데. 2.2250738585072012e-308  이슈가 5.0 score를 받았다면, 다른 이슈들은 저희가 짐작한 거 이상의 더 큰 이슈가 있을 거라 생각이 듭니다.

(cvss 설명 및 점수 내는 방법 설명 : http://www.first.org/cvss/cvss-guide.html  , http://www.first.org/cvss/v1/guide.html)

 


Posted by '김용환'
,