Firefox: ungepatchte 17 Jahre alte Sicherheitslücke

Wie uns die TheHackerNews heute mitteilen, gibt es im Firefox eine ungepatche Sicherheitslücke, die streng genommen, seit 17 Jahren im Firefox schlummert.

Same-Origin-Policy versagt

Die Same-Origin-Policy versagt bei Zugriffen auf „file://“ URLs. Was andere Browser schon vor Jahren behoben haben, ist für die Firefox Entwickler nicht wichtig, da es bislang keinen Exploit dafür gab. Das hat sich geändert:

Was wir hier sehen, wenn das Bild denn scharf wird (runterladen per youtube-dl hilft dabei), ist folgendes:

Eine Email mit einem HTML Attachment wird in einem Webmail geöffnet.
Die HTML Datei wird von Firefox abgespeichert, wie man sieht im HOME des Users!
Die HTML Datei wird mit Firefox über file://…  geöffnet und ..
präsentiert uns den Inhalt des Verzeichnisses.

Die HTML Seite enthält Javascriptcode, der über die File und Fetch Api vom Browser das Verzeichnis und die Dateien ausliest und dann mit AJAX die Daten exfiltriert.

Ein Patch dafür ist nicht in Arbeit, da Mozilla die Lücke nicht als solche anerkennt. Mal sehen ob sich das jetzt ändert 😉

Quelle: https://thehackernews.com/2019/07/firefox-same-origin-policy-hacking.html

Wie dämlich muß man sein…

Diese Logzeile habe ich grade aus dem Mailserver gezogen:

2018-10-09 10:44:35 SMTP protocol synchronization error (next input sent too soon: pipelining was not advertised): rejected „GET / HTTP/1.1″ H=[107.170.202.125] next input=“Host: mailserver:26\r\nUser-Agent: Mozilla/5.0 zgrab/0.x\r\nAccept: */*\r\nAccept-Encoding: gzip\r\n\r\n“

Ich übersetz mal :

GET / HTTP/1.1
Host: mailserver:26
User-Agent: Mozilla/5.0 zgrab/0.x
Accept: */*
Accept-Encoding: gzip

Wenn man sich das genau ansieht, wobei „MAILSERVER“ unsere Mailserver IP war, wird man bei HOST das irritierende „:26“ entdecken. Die Portnummer gehört im HTTP Protokoll gar nicht in den „Host:“- Header rein, trotzdem hat dieses miserable Script es angehängt. Unser Glück, so kann man das aufklären 🙂

Es handelt sich offenbar um einen Portscanner, der bei „nicht-so-standart“-Ports wie „26“ , einfach mal austestet, ob da nicht ein Webserver zu finden ist. Vielleicht in der Hoffnung da was zu finden, was auf Port 80 nicht zu finden wäre, wer weiß. Auf Port 26 hat unser Mailserver einen Ausweichport, falls der DSL-Router des Kunden mal wieder Port 25 für alles außer T-Offline-Mailservern sperrt. Das hat sich in der Vergangenheit extrem gut bewährt, weil man im Mailprogramm nur statt Port 25 26 angeben brauchte und schon war diese leidige Routersperre umgangen.

Eingeführt haben die Routerhersteller das, damit die ganzen gehackten Windows-Pcs nicht ständig das Netz mit Spams beglücken. Das war aber nur bedingt erfolgreich 😉

Wie kam ich jetzt auf dämlich, achso ja, weil sich der Mailserver natürlich, wie auf Port 25 auch, sofort als Mailserver outet 🙂 Man muß also nicht erst HTML hinschicken um zu sehen was es ist 😀

Jasper kompilierte Programme beschleunigen.

Jasper hat eine unschöne Seite. Benutzt man in einer JSP eine Direktausgabe von HTML Code, was sehr praktisch ist, kommt es zu einer unschönen Situation. Kleines Beispiel:

<%
<div class=olddefect>
 <table border="0">
      ...
 </table>
 </div>
%>

Je mehr Code man in den <% %> Block hat, desto mehr Zeilen hiervon werden erzeugt :

 out.write("\n");
 out.write("<div class=olddefect>\n");
 out.write("\t<table border=\"0\">\n");
 ...
 out.write("\t</table>\n");
 out.write("</div\n");
 out.write("\n");

Und wie man sehen kann, ist das höllisch inperformant. Zeit es zu optimieren.

Will man nun eine WebApp schneller bekommen, bleiben einem nur zwei Wege:

a) Mehr IO investieren z.b. in Form eines Ladevorgangs. Der kann natürlich im RAM gecacht worden sein, aber je nach Umfang der Webanwendung kann das vielleicht nicht funktionieren.
daher b) man verzichtet auf Zeilenumbrüche im HTML Code, so erzeugt Jasper genau eine Zeile out.write(„…“). Die ist zwar unschön, aber performanter.

Diverse Codeverkürzungstools könnte man dafür einsetzen.

Fall jemand rein zufällig einen Jasper Entwickler kennt, schlagt b) mal zur automatischen Optimierung vor. Danke.