DE & EN: Goobi Security Announcement - Log4Shell

Deutsche Fassung

Hallo,

am heutigen Freitag, den 10. Dezember 2021, wurde in der Java Bibliothek “Log4j” eine kritische Sicherheitslücke bekannt. Log4j wird auch in Goobi workflow und dem Goobi viewer verwendet. Das Brisante an der Sicherheitslücke ist, dass sie eine sogenannte Remote Code Execution ermöglicht und zeitgleich mit dem Bugfix auch ein Zero-Day-Exploit veröffentlicht wurde.

Direkt nachdem wir davon erfahren haben, wurde in den von uns entwickelten Web Applikationen Log4j auf die fehlerbereinigte Version 2.15.0 aktualisiert. Kurz danach wurden aktualisierte Versionen der November Releases von Goobi workflow und dem Goobi viewer auf Github veröffentlicht.

Gleichzeitig wurde mit der Recherche nach Workarounds begonnen, die kein Update der Applikation benötigen. Hierbei wurde parallel vorgegangen: Während die einen mögliche Herangehensweisen recherchierten, wurden diese von anderen unmittelbar mit Hilfe des Zero-Day-Exploits auf ihre Tauglichkeit hin geprüft. Schnell stellte sich heraus, dass die aktiv von uns betreuten Systeme aufgrund der stets zeitnahen Installation von Betriebssystem- und Sicherheitsupdates bereits gut geschützt waren. Trotzdem wurde ein Plan entwickelt, wie die Workarounds möglichst schnell auf vielen Systemen ausgerollt werden konnten.

Bisher wurden bereits über 150 Systeme abgesichert. Wir gehen noch mit den verbleibenden Kunden in Kontakt, damit wir uns auch um die Systeme kümmern können, auf die wir zum jetzigen Zeitpunkt keinen direkten Zugriff haben.

Für alle uns nicht bekannten Installationen empfehlen wir dringend auf die Versionen 21.11.3 von Goobi workflow und 21.11.4 von dem Goobi viewer zu aktualisieren. Alternativ muss den Java Prozessen der Parameter -Dlog4j2.formatMsgNoLookups=true mitgegeben werden. Auf einem Debian basierten System ist die Option vor allem in der /etc/default/tomcat9 als JAVA_OPT oder in der /etc/systemd/system/solrindexer.service direkt dem Java Prozess mitzugeben.

Weitere Informationen gibt es zum Beispiel hier:

Ein ruhiges und sicheres drittes Adventswochenende wünscht

Jan :slight_smile:


English version

Hello,

today, Friday, December 10, 2021, a critical vulnerability has been disclosed in the Java library “Log4j”. Log4j is also used in Goobi workflow and Goobi viewer. The explosive thing about the vulnerability is that it enables so-called remote code execution and a zero-day exploit was also published at the same time as the bug fix.

Immediately after we learned about it, Log4j was updated to the bug-fixed version 2.15.0 in the web applications we developed. Shortly after, updated versions of the November releases of Goobi workflow and the Goobi viewer were published on Github.

At the same time, research was started to find workarounds that do not require an update of the application. This was done in parallel: While some researched possible approaches, others immediately tested them for their suitability using the zero-day exploit. It quickly became apparent that the systems we actively support were already well protected due to the timely installation of operating system and security updates. Nevertheless, a plan was developed to roll out the workarounds to as many systems as possible as quickly as possible.

So far, over 150 systems have already been secured. We are still in contact with the remaining customers so that we can also take care of the systems that we do not have direct access to at this time.

For all installations not known to us, we strongly recommend updating to versions 21.11.3 of Goobi workflow and the Goobi viewer. Alternatively the parameter -Dlog4j2.formatMsgNoLookups=true must be given to the Java processes. On a Debian based system the option has to be given in /etc/default/tomcat9 as JAVA_OPT or in /etc/system/system/solrindexer.service directly to the Java process.

More information can be found for example here:

Have a quiet and safe third advent weekend

Jan :slight_smile:

6 Likes

Liebe Kolleg·innen,

lt. Apache sollen sowohl log4j 2.15 als auch der Workaround über -Dlog4j2.formatMsgNoLookups=true auch unsicher sein (Log4j – Apache Log4j Security Vulnerabilities). Müsst ihr (abgesehen von der Änderung im Quellcode) nochmal an die Installationen ran?

Schöne Grüße
Georg

Hallo Georg, liebe Alle,

wir verfolgen das Thema weiterhin sehr genau. Auch das log4j 2.16.0 Release haben wir uns gestern bereits angeschaut, inklusive der Erklärung über die gefunden Schwachstellen.

Diese beziehen sich auf Thread Context Message und Context Lookup Pattern, die wir aber nicht verwendet haben. Das ganze ist hier von Lunasec auch noch ein bisschen genauer beschrieben:

Wir werden in Kürze Patchreleases mit log4j 2.16.0 zur Verfügung stellen, allerdings sind nach unserer Ansicht hier keine weiteren Maßnahmen erforderlich. Wer möchte, kann aber auf ein aktuelles Release aktualisieren. Bei Fragen stehen wir natürlich gerne jederzeit zur Verfügung!

Viele liebe Grüße von

Jan :slight_smile:

1 Like

Lieber Jan, danke, auch für die offene und ausführliche Kommunikation!

1 Like

Ein entsprechendes Release für den Goobi viewer Stack wurde erstellt. Ein Upgrade ist aber nicht zwingend notwendig. Die Dateien stehen wie gewohnt auf Github zur Verfügung. Die Patchlevel Versionsnummern lauten:

<dependency>
    <groupId>io.goobi.viewer</groupId>
    <artifactId>viewer-core</artifactId>
    <version>21.11.5</version>
</dependency>
<dependency>
    <groupId>io.goobi.viewer</groupId>
    <artifactId>viewer-core-config</artifactId>
    <version>21.11.2</version>
</dependency>
<dependency>
    <groupId>io.goobi.viewer</groupId>
    <artifactId>viewer-connector</artifactId>
    <version>21.11.2</version>
</dependency>

Die Versionsnummer des Goobi viewer Indexers lautet ebenfalls 21.11.2

Die in Log4j 2.16.0 gefundene Sicherheitslücke wurde nicht vollständig geschlossen. Deswegen wurde die Version 2.17.0 der Java-Library veröffentlicht. Goobi ist weiterhin nicht von dieser neuen Lücke betroffen. Dennoch haben wir vom Goobi viewer ein aktuelles Patchrelease zur Verfügung gestellt. Ein Update ist aber nicht zwingend erforderlich. Die Versionsnummern lauten:

<dependency>
    <groupId>io.goobi.viewer</groupId>
    <artifactId>viewer-core</artifactId>
    <version>21.11.6</version>
</dependency>
<dependency>
    <groupId>io.goobi.viewer</groupId>
    <artifactId>viewer-core-config</artifactId>
    <version>21.11.2</version>
</dependency>
<dependency>
    <groupId>io.goobi.viewer</groupId>
    <artifactId>viewer-connector</artifactId>
    <version>21.11.3</version>
</dependency>

Die Versionsnummer des Goobi viewer Indexers lautet ebenfalls 21.11.3