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:
- Die Sicherheitslücke soll im Rahmen einer maximalen Transparenz auf den offiziellen Kanälen veröffentlicht werden.
- Der entwickelte Hotfix ist gut, er behebt das Problem und kann in dieser Form in ein Bugfixrelease einfließen.
- 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.
- 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:
- the vulnerability should be published on the official channels in the interests of maximum transparency
- the developed hotfix is good, it fixes the problem and can be included in a bugfix release in this form.
- 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.
- 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.