[Warning] Java (JRE/JDK) Schwachstelle kann zur Endlosschleifen (DOS) führen
L. Aaron Kaplan
kaplan at cert.at
Wed Feb 9 17:30:24 CET 2011
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Sicherheitslücke in Sun/Oracle Java (JRE/JDK) führt zu Endlosschleifen
und ermöglicht somit einen Denial of Service (DOS) Angriff - CERT.at
ersucht daher um Beachtung der folgenden Meldung.
Beschreibung
[1]Oracle warnt vor einer kritischen Sicherheitslücke in Java
(JRE/JDK), die es Angreifern erlaubt, Java-basierte Programme in eine
Endlosschleife zu manövrieren.
Durch Eingabe von "2.2250738585072012e-308" und anschliessendem
Konvertieren in einen double Wert kann ein Java-basiertes Programm in
eine Endlosschleife gelangen. Die CPU ist in diesem Fall dann
vollkommen ausgelastet und das Programm bleibt effektiv aus
Benutzersicht "stehen".
Besonders leicht läßt sich dies auf Java-basierten Servern (Tomcat,
JBoss) erreichen, indem man von einem beliebigen Rechner am Internet
eine entsprechend präparierte HTTP Anfrage sendet.
Mittlerweile ist bekannt, dass die Verwundbarkeit mit einigen Varianten
der Zahl auftritt:
* 0.00022250738585072012e-304 (Dezimalpunkt)
* 00000000002.2250738585072012e-308 (führende Nullen)
* 2.225073858507201200000e-308 (Nullen am Ende)
* 2.2250738585072012e-00308 (führende Nullen im Exponenten)
* 2.2250738585072012997800001e-308 (extra Ziffern nach Ziffer #17)
Es ist nicht ausgeschlossen, daß es nicht noch andere Varianten gibt.
Hintergrund
Bei der Konvertierung des Zeichestrings "2.2250738585072012e-308" (und
obiger Varianten) gerlangt Java in eine Endlosschleife und die
Konvertierung oszilliert zwischen 0x1p-1022 (DBL_MIN) und
0x0.fffffffffffffp-1022.
Zum ersten Mal ist das Problem bei PHP bekannt geworden, anschliessend
[2]entdeckte Konstantin Preißer, dass die Verwundbarkeit auch auf Java
funktioniert.
Auswirkungen
Jedes Java-basierte Programm als auch das Java Development Kit (JDK),
das Double Werte extern einliest (z.B.: Internet User Input) und
verarbeitet, kann in eine Endlosschleife gelangen (Denial Of Service
Attacke).
Betroffene Systeme
Es sind sowohl Java-basierte Server (Tomcat, JBoss) als auch Java
Desktop Applikationen betroffen.
* Java SE
* JDK und JRE 6 Update 23 und vorhergehende Versionen für Windows,
Solaris und Linux
* JDK 5.0 Update 27 und vorhergehende Versionen für Solaris 9
* SDK 1.4.2_29 und vorhergehende Versionen für Solaris 8
Java for Business
* JDK und JRE 6 Update 23 und vorhergehende Versionen für Windows,
Solaris und Linux
* JDK und JRE 5.0 Update 27 und vorhergehende Versionen für Windows,
Solaris und Linux
* JDK und JRE 1.4.2_29 und vorhergehende Versionen für Windows,
Solaris und Linux
Die Sicherheitslücke betrifft sowohl 32-bit als auch 64-bit Systeme.
CERT.at vermutet, daß Java-basierte Smartphones genauso von der
Sicherheitslücke betroffen sind.
Abhilfe
Oracle bietet einen [3]Hotfix an. Ein reguläres Update soll laut Oracle
am 15.Februar erscheinen.
CERT.at empfiehlt Webserver-Betreibern auch in der Zwischenzeit -
soferne möglich - mittels Regular Expressions am Webserver nach HTTP
"Accept-Language .*;q=2.225073858507.*" zu filtern und entsprechende
HTTP Anfragen an Java-basierte Server (Tomcat, JBoss) zu blockieren.
Unter Apache geht dies zum Beispiel mit mod_header. Dieser (mod_header)
Filter mittels Regular Expressions ist allerdings nur als schnelle
Lösung gegen automatisierte Angriffe zu sehen. Java sollte trotz
Regular Expression Filtern gepatcht werden.
mod_header Filter
[4]Mod_header Dokumentation
Einschalten von mod_header: LoadModule headers_module
/usr/lib/apache2/modules/mod_headers.so
In der VirtualHosts Konfiguration:
(...)
RequestHeader edit Accept-Language 5073858507 5073858508 early
RequestHeader edit Accept-Charset 5073858507 5073858508 early
RequestHeader edit Accept-Encoding 5073858507 5073858508 early
RequestHeader edit Accept 5073858507 5073858508 early
(...)
Hinweis
Generell empfiehlt CERT.at, wo möglich die "automatisches
Update"-Features von Software zu nutzen, parallel Firewall-Software
aktiv und den Virenschutz aktuell zu halten.
__________________________________________________________________
Informationsquelle(n):
Warnung von Oracle
[5]http://www.oracle.com/technetwork/topics/security/alert-cve-2010-447
6-305811.html
Hotfix von Oracle
[6]http://www.oracle.com/technetwork/java/javase/fpupdater-tool-readme-
305936.html
Original-Post von Konstantin Preisser
[7]http://www.exploringbinary.com/why-volatile-fixes-the-2-225073858507
2011e-308-bug/comment-page-1/#comment-4645
Meldung bei Heise
[8]http://www.heise.de/security/meldung/Oracle-warnt-vor-Java-Schwachst
elle-1185967.html
References
1. http://www.oracle.com/technetwork/topics/security/alert-cve-2010-4476-305811.html
2. http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/
3. http://www.oracle.com/technetwork/java/javase/fpupdater-tool-readme-305936.html
4. http://httpd.apache.org/docs/current/mod/mod_headers.html
5. http://www.oracle.com/technetwork/topics/security/alert-cve-2010-4476-305811.html
6. http://www.oracle.com/technetwork/java/javase/fpupdater-tool-readme-305936.html
7. http://www.exploringbinary.com/why-volatile-fixes-the-2-2250738585072011e-308-bug/comment-page-1/#comment-4645
8. http://www.heise.de/security/meldung/Oracle-warnt-vor-Java-Schwachstelle-1185967.html
- --
L. Aaron Kaplan
http://www.cert.at
kaplan at cert.at
Tel: +43 1 505 64 16 / 78
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (Darwin)
iEYEARECAAYFAk1SwSQACgkQLXqZes2uTbbHQACfcDydBK4+Iz0X1DeU22bM8XV5
q/MAn3uG/cbMkWJ+DzvLzq3iAWJa9msf
=U8od
-----END PGP SIGNATURE-----
More information about the Warning
mailing list