DE & EN: Goobi viewer Security Announcement

Deutsche Fassung

Hallo,

das Information Security Office der University of Texas at Austin hat eine Path-Traversal-Schwachstelle im Goobi viewer gemeldet. Über die im Goobi viewer Core vorhandene Funktionalität zusätzliche Dateien zu einem Werk herunterzuladen, können entfernte Angreifer auf Dateien auf dem Server zugreifen. Der Zugriff ist auf Dateien beschränkt, welche für den Tomcat Benutzer lesbar sind.

Die Lücke wurde in der heute veröffentlichten Version 4.8.3 geschlossen.

Als Workaround kann der Zugriff auf das betroffene Servlet gesperrt werden. Die Datei Download Funktion ist dann gesperrt. Dies kann zum Beispiel im Apache Webserver mit dem folgenden Konfigurationsblock geschehen:

RewriteEngine On
RewriteRule "^(/viewer.?|)/file(.*)$" - [F,L]

Alle von der intranda GmbH betreuten Installationen wurden bereits mit dem Workaround abgesichert.

Acht Installationen, die in diesem Monat bereits auf das 4.8er Release aktualisiert wurden sind aktualisiert und laufen unter der Version 4.8.3. Dieses kann zum Beispiel auf dem Admin Dashboard nachvollzogen werden.

Wir werden morgen die Installationen identifizieren die von der Funktionalität Gebrauch machen und die Anwender kontaktieren um ein Vorgehen für ein Update zu besprechen.

Viele Grüße von

Jan :slight_smile:


English version

Hello,

the Information Security Office of the University of Texas at Austin has reported a path traversal vulnerability in the Goobi viewer. Using the functionality available in the Goobi viewer core to download additional files for a record, remote attackers can access files on the server. Access is restricted to files that are readable by the tomcat user.

This vulnerability has been closed in version 4.8.3, which was released today.

As a workaround, access to the affected servlet can be blocked. The file download function is then disabled. This can be done for example in the Apache web server with the following configuration block:

RewriteEngine On
RewriteRule "^(/viewer.?|)/file(.*)$" - [F,L]

All installations managed by intranda GmbH have already been secured with the workaround.

Eight installations that have already been upgraded to the 4.8 release this month have been updated and are running under version 4.8.3, which can be tracked on the Admin Dashboard, for example.

Tomorrow we will identify the installations that are making use of the functionality and contact the users to discuss an update procedure.

Many greetings from

Jan :slight_smile:

1 „Gefällt mir“

Zwischenzeitlich wurde der Schwachstelle der Identifier CVE-2020-15124 zugewiesen. Ein Security Advisory wurde ebenfalls auf GitHub als GHSA-7gwq-xqw3-cr63 veröffentlicht.


In the meantime, the vulnerability has been assigned the identifier CVE-2020-15124. A security advisory has also been released on GitHub as GHSA-7gwq-xqw3-cr63 .

1 „Gefällt mir“

Update

Deutsche Fassung

Im Nachgang möchte ich gerne noch einen Einblick in den zeitlichen Ablauf des gestrigen Tages und im Kontext der Sicherheitslücke geben.

09:50 Uhr

Wir wurden am Mittwoch, den 22. Juli 2020 um 09:50 Uhr über eine Sicherheitslücke informiert.

10:02 Uhr

Die Systemadministratoren haben mit der Analyse begonnen.

10:10 Uhr

Es war klar, dass auch die aktuelle Version des Goobi viewers davon betroffen ist. Zu diesem Zeitpunkt wurden die Goobi viewer Entwickler über das Problem informiert.

10:30 Uhr

Ein von der Systemadministration entwickelter Workaround stand zur Verfügung und wurde ab jetzt getestet.

10:39 Uhr

Im master Branch des Goobi viewers wurde durch die Entwickler auf Github ein Hotfix veröffentlicht.

10:59 Uhr

Die Systemadministration begann damit den Workaround auf alle betreuten Systeme auszurollen. Ab da waren alle Systeme abgesichert. Zwischen dem Melden der Sicherheitslücke und dem Ausrollen eines Workarounds der das Ausnutzen verhindert verging eine gute Stunde.

13:48 Uhr

Zwischen den Goobi viewer Entwicklern, einem Systemadministrator und einem Sicherheitsexperten fand eine gemeinsame Telefonkonferenz statt. Dabei wurde der entwickelte Hotfix und die betroffenen Java Methoden gemeinsam kritisch analysiert. Im Ergebnis wurden vier Punkte festgehalten:

  1. Die Sicherheitslücke soll im Rahmen einer maximalen Transparenz auf den offiziellen Kanälen veröffentlicht werden.
  2. Der entwickelte Hotfix ist gut, er behebt das Problem und kann in dieser Form in ein Bugfixrelease einfließen.
  3. Die getDataFilePath Methode sollte refaktorisiert werden. Bei der Analyse war das vorhandene JavaDoc teilweise unklar und mit dem bestehenden Aufbau ist ein automatisches Testen über Unit Tests schwer.
  4. Mit einem REST Endpoint wäre der Fehler nicht aufgetreten, da Slashes spezielle Zeichen darstellen und unterschiedliche Endpoints voneinander trennen.

14:35 Uhr

Es wurde begonnen auf Github an einem Security Advisory zu arbeiten.

15:38 Uhr

Punkt 3 aus der Telefonkonferenz wurde abschließend bearbeitet und das Ergebnis in dem develop Branch auf Github veröffentlicht. Diese Anpassung wird in das nächste Minor Release einfließen:

16:00 Uhr

Punkt 2 wurde mit dem Release der Version 4.8.3 fertig gestellt:

16:08 Uhr

In dem Security Advisory auf Github wurde eine CVE beantragt.

16:28 Uhr

Das Update von acht Kundensystemen, die die Version 4.8 bereits einsetzen, auf die Version 4.8.3 wurde fertiggestellt.

16:59 Uhr

Erste Arbeiten Punkt 4 aus der Telefonkonferenz betreffend sind in den develop Branch auf Github eingeflossen. Auch diese Anpassungen werden in das nächste Release einfließen:

17:55 Uhr

Auf der Community Plattform wurde ein Post veröffentlicht und über die Sicherheitslücke informiert.

17:56 Uhr

Das Security Advisory wurde auf Github veröffentlicht:

19:29 Uhr

Github hat die Analyse der Sicherheitslücke abgeschlossen und die CVE-2020-15124 zugewiesen.

20:45 Uhr

Die Informationen zu der CVE wurden in den offiziellen Listen freigeschaltet

Donnerstag, 23. Juli 2020

Zwischen 06:30 und 07:45 Uhr wurden alle Einrichtungen informiert die die Funktionalität nutzen und bei denen es jetzt beim Download zu einer Fehlermeldung in der Oberfläche kommen kann um das weitere individuelle Vorgehen zu besprechen.


English version

In the following I would like to give an insight into the time schedule of yesterday and in the context of the security hole.

09:50 AM

We were informed about a security vulnerability on Wednesday, 22 July 2020 at 09:50 a.m.

10:02 AM

The system administrators have started the analysis.

10:10 AM

It was clear that the current version of the Goobi viewer would also be affected. At the time, the Goobi viewer developers were informed of the problem.

10:30 AM

A workaround developed by the system administration was available and has now been tested.

10:39 AM

A hotfix has been released in the master branch of the Goobi viewer by the developers on Github.

10:59 AM

The system administration started to roll out the workaround to all supported systems. From then on all systems were secured. Between reporting the vulnerability and rolling out a workaround to prevent exploitation, a good hour passed.

1:48 PM

A joint telephone conference was held between the Goobi viewer developers, a system administrator and a security expert. The hotfix developed and the Java methods affected were critically analysed together. Four points were recorded as a result:

  1. the vulnerability should be published on the official channels in the interests of maximum transparency
  2. the developed hotfix is good, it fixes the problem and can be included in a bugfix release in this form.
  3. the getDataFilePath method should be refactored During the analysis the existing JavaDoc was partly unclear and with the existing structure an automatic testing via unit tests is difficult.
  4. with a REST endpoint the error would not have occurred because slashes represent special characters and separate different endpoints from each other.

2:35 PM

Work has begun on a security advisory on Github.

3:38 PM

Item 3 of the conference call was finally processed and the result was published in the develop branch on Github. This adjustment will be included in the next minor release:

4:00 PM

Point 2 was completed with the release of version 4.8.3:

4:08 PM

A CVE was requested in the Security Advisory on Github.

4:28 PM

The update of eight customer systems already using version 4.8 to version 4.8.3 was completed.

4:59 PM

Initial work on point 4 of the conference call has been incorporated into the develop branch at Github. These adjustments will also be included in the next release:

5:55 PM

A post was published on the community platform and informed about the vulnerability.

5:56 PM

The Security Advisory was published on Github:

7:29 PM

Github has completed the vulnerability analysis and assigned CVE-2020-15124.

8:45 PM

The information about the CVE has been released in the official lists

Thursday, July 23, 2020

Between 06:30 AM and 07:45 AM. all customers were informed that use the functionality and where an error message may appear in the user interface during download to discuss the further individual procedure.

1 „Gefällt mir“

Hallo Jan,

danke für den hilfreichen Überblick. Das bedeutet für Einrichtungen, die nicht von Euch informiert wurden, besteht hinsichtlich der Lücke keine Gefahr?

Beste Grüße, Andreas

Hallo Andreas,

die Einrichtungen die heute morgen keine E-Mail von uns bekommen haben nutzen die Funktion des Goobi viewers nicht. Der angesprochene Workaround ist dort dennoch aktiv und zwar für den Fall, dass die Funktionalität genutzt werden soll. Dann wird diese bis zu einem Update des Goobi viewers nicht funktioneren.

Viele Grüße von

Jan :slight_smile:

1 „Gefällt mir“