Update: Das Problem wurde am 15.04.2026 gegen 16:30 Uhr behoben, technische Details folgen weiter unten.
Aktuell gibt es eine Störung auf unseren Mail-Servern, die sich wie folgt äußert: Das Login mit einem gültigen App- und Gerätepasswort wird abgelehnt. Exchange ist davon nicht betroffen.
Das Problem wurde erstmalig gestern (15.4.26) beobachtet und tritt nur sporadisch auf. Auf unserem Testsystem konnte es reproduziert werden.
Auslöser der Störung war ein Upgrade der Mailboxserver. Dabei wurde das Betriebssystem und die Serversoftware aktualisiert. Der Server ist so konfiguriert, dass er die Anmeldung sowohl mit URZ-Login und -Passwort akzeptiert als auch mit URZ-Login und App- und Gerätepasswort. Zur Prüfung der App- und Gerätepasswörter kommt ein PAM-Modul im saslauthd zum Einsatz, das eine verschlüsselte Verbindung zu einem PostgreSQL-Server aufbaut.
Ursache ist ein Fehler in der PostgreSQL-Client-Bibliothek libpq im Zusammenspiel mit der OpenSSL-Bibliothek. Zur Authentifizierung lädt der saslauthd die PAM-Module und entlädt sie wieder, wenn die Authentifizierung erfolgt ist. Die PostgreSQL-Client-Bibliothek initialisiert beim ersten Verbindungsaufbau eine Datenstruktur in der OpenSSL-Bibliothek und merkt sich das. Die Anzahl dieser Datenstrukturen ist in Debian 13 im OpenSSL auf 127 begrenzt. Da aber die PostgreSQL-Bibliothek nach Ende der Authentifizierung aus dem Speicher entladen wird, findet die Initialisierung der OpenSSL-Datenstruktur bei der nächsten Benutzerauthentifizierung erneut statt und verbraucht eine weitere Datenstruktur in der OpenSSL-Bibliothek. Dieses Verhalten ist ein Problem, weil die OpenSSL-Bibliothek gleich beim Start von saslauthd geladen wird und sich damit die ganze Zeit im Speicher befindet.
Das Ergebnis davon ist, dass nach 127 Authentifizierungen keine weitere Authentifizierung mit App- und Gerätepasswörtern mehr möglich war.
Unsere Lösung sieht folgendermaßen aus: In Linux kann man mit der Umgebungsvariable LD_PRELOAD Bibliotheken beim Programmstart laden, auch wenn sie noch nicht benötigt werden. Dies haben wir mit der PostgreSQL-Client-Bibliothek getan. Dadurch wird die PostgreSQL-Bibliothek zusammen mit der OpenSSL-Bibliothek beim Programmstart geladen und muss bei der PAM-Authentifizierung nicht nachgeladen werden.
Wir haben den Fehler mit einem Testprogramm, das den Fehler reproduziert, an die PostgreSQL-Entwickler weitergeleitet.

Schreibe einen Kommentar
Du musst angemeldet sein, um einen Kommentar abzugeben.