Apache Archiva ist eine erweiterbare Repository-Management-Anwendung. Letzte Woche sind darin mehrere Schwachstellen bekannt geworden. Dank dieser wäre ein entfernter Angreifer in der Lage, Cross-Site-Scripting- und Cross-Site-Request-Forgery-Attacken durchzuführen.
Cross-Site-Scripting (XSS) -Attacken lassen sich am einfachsten anhand des klassischen Beispiels einer Websuchfunktion erklären. Dabei wird der Suchbegriff an die Anwendung via “http://example.com/?suche=suchenach” übergeben und anschließend als HTML-Ausgabe mit “<p>Ergebnisse für: suchenach</p>” angezeigt. Ohne weitere Kontrollen würde die Webanwendung nun jeden eingegebenen Suchbegriff auch anzeigen – und dies gilt auch für Javascript-Anweisungen wie im folgenden Beispiel:
<script type="text/javascript">alert("Dies ist eine XSS-Attacke")</script>
Diese Eingabe würde ein harmloses Meldungsfenster öffnen, doch ein Angreifer könnte hier genauso seinen bösartigen Code platzieren. Das ist ein typisches Beispiel für eine nicht-persistente (reflexive) XSS-Attacke. Persistente Attacken funktionieren im Grunde genauso, doch dabei wird die Benutzereingabe auf dem Server dauerhaft gespeichert (Gästebuch, Kommentare, etc.).
Cross-Site-Request-Forgery(XSRF)-Attacken sind für einen Angreifer noch einfacher durchzuführen. Angenommen, es gäbe eine sehr unsichere Bank, die keine Sicherheitsstandards kennt, und eine Online-Überweisungen mit einem solchen Aufruf durchführt:
http://www.meine-unsichere-bankxyz.de/ueberweise.php?hoehe=10000&an=tux
Zuvor muss der Anwender sich natürlich mit seinem Account am System anmelden. Was passiert nun, wenn ein Angreifer einem Bankkunden während seiner aktiven Online-Banking-Session eine HTML-Mail mit dem folgenden Link sendet?
http://www.meine-unsichere-bankxyz.de/ueberweise.php?hoehe=10000&an=bill
Klickt das Opfer auf diesen Link, so wird die vom Angreifer gewünschte Transaktion unter dem Konto des legitimen Benutzers durchgeführt.
Apache Archiva beispielsweise enthält in mehreren Skripten Eingabekontrollfehler, die dazu führen, dass ein entfernter Angreifer XSS-Attacken ausführen kann. Ein nicht-persistenter (reflexiver) XSS-Angriff könnte so aussehen:
http://127.0.0.1:8080/archiva/security/useredit.action?username=test%3Cscript%3Ealert%28%27xss%27%29%3C/script%3E
Persistente XSS-Attacken sind ebenfalls möglich.
Die XSRF-Schwachstelle in Apache Archiva ist besonders kritisch, wenn der Administrator-Account betroffen ist. In diesem Fall erhält der Angreifer nämlich vollen Zugriff auf die Applikation.
Betroffen sind die Versionen 1.0 bis 1.2.2 und 1.3.0 bis 1.3.4.

