Kritische Authentifizierungsumgehungsschwachstelle im SiteGround Security Plugin gepatcht

7. April 2022
Kritische Authentifizierungsumgehungsschwachstelle im SiteGround Security Plugin gepatcht

Am 10. März 2022 initiierte das Wordfence Threat Intelligence-Team den verantwortungsvollen Offenlegungsprozess für eine Schwachstelle, die wir in "SiteGround Security" entdeckt haben, einem WordPress-Plugin, das auf über 400.000 Websites installiert ist. Dieser Fehler ermöglicht es Angreifern, administrativen Benutzerzugriff auf anfälligen Websites zu erhalten, wenn die Zwei-Faktor-Authentifizierung (2FA) aktiviert, aber noch nicht für einen Administrator konfiguriert ist.

Wordfence Premium, Wordfence Pflegeund Wordfence-Antwort hat am 10. März 2022 eine Reihe von Firewall-Regeln erhalten, um Schutz vor Angreifern zu bieten, die versuchen, diese Sicherheitsanfälligkeit auszunutzen. Wordfence Free-Benutzer erhalten denselben Schutz 30 Tage später, am 9. April 2022.

Nachdem am 10. März 2022 die vollständigen Offenlegungsdetails an das SiteGround-Sicherheitsteam gesendet wurden, wurde am nächsten Tag, dem 11. März 2022, ein Patch veröffentlicht. Während das Plugin teilweise sofort gepatcht wurde, wurde es erst am 7. April 2022 optimal gepatcht.

Websites, die auf der SiteGround-Plattform gehostet werden, wurden automatisch auf die gepatchte Version aktualisiert, während Websites, die an anderer Stelle gehostet werden, ein manuelles Update erfordern, wenn automatische Updates für das Plugin nicht aktiviert sind. Wir empfehlen dringend, sicherzustellen, dass Ihre Website auf die neueste gepatchte Version von "SiteGround Security" aktualisiert wurde, die zum Zeitpunkt dieser Veröffentlichung Version 1.2.6 ist.


SiteGround Security ist ein Plugin, das entwickelt wurde, um die Sicherheit von WordPress-Installationen durch verschiedene Funktionen wie Login-Sicherheit einschließlich 2FA, allgemeine WordPress-Härtung, Aktivitätsüberwachung und mehr zu verbessern. Es ist auch erwähnenswert, dass es auf allen von SiteGround gehosteten WordPress-Sites vorinstalliert ist. Leider wurde die 2FA-Funktionalität des Plugins unsicher implementiert, so dass nicht authentifizierte Angreifer Zugriff auf privilegierte Konten erhalten können.

Wenn die Zwei-Faktor-Authentifizierung aktiviert ist, müssen alle Administrator- und Editorbenutzer die Zwei-Faktor-Authentifizierung einrichten. Diese Anforderung wird ausgelöst, wenn sich die Administrator- und Editorbenutzer der Site zum ersten Mal bei der Site anmelden, nachdem 2FA aktiviert wurde und sie aufgefordert werden, 2FA für ihr Konto zu konfigurieren. Dies bedeutet, dass zwischen der Aktivierung von 2FA auf einer Website und der Konfiguration durch jeden Benutzer für das Konto ein Zeitraum liegt.

Während dieser Übergangszeit könnten Angreifer den 2FA-Einrichtungsprozess kapern. Das Plugin hatte einen Fehler, der es dazu führte, dass Angreifer den ersten Schritt der Authentifizierung, der einen Benutzernamen und ein Passwort erfordert, vollständig umgehen und auf die 2FA-Einrichtungsseite für Benutzer zugreifen konnten, die 2FA noch nicht konfiguriert hatten.

Es war so einfach wie die Bereitstellung der Benutzer-ID, die sie kompromittieren möchten, über die sg-user-id -Parameter, zusammen mit einigen anderen Parametern, um anzuzeigen, dass sie den anfänglichen 2FA-Konfigurationsprozess auslösen möchten.

Folgendes validate_2fa_login() -Funktion zeigt den Prozess an, mit dem eine vom Benutzer bereitgestellte ID validiert wird. Wenn die Ergebnisse aus der check_authentication_code() Funktion und die sg_security_2fa_configured user meta retuned false, was anzeigte, dass 2FA noch nicht für diesen Benutzer konfiguriert wurde, dann würde das Plugin die Vorlage 2FA-initial-setup-form.php laden, die den QR-Code und das 2FA-Geheimnis anzeigt, die zum Konfigurieren der Authentifikator-App für die vom Benutzer angegebene ID erforderlich sind.

</pre>
<pre>public function validate_2fa_login( $user ) {
   // Bail if there is no valid user authentication.
   if ( ! isset( $_POST['sg-user-id'] ) ) { // phpcs:ignore
      return;
   }

   $result = $this->check_authentication_code( wp_unslash( $_POST['sgc2facode'] ), wp_unslash( $_POST['sg-user-id'] ) ); // phpcs:ignore

   // Check the result of the authtication.
   if ( false === $result ) {
      if ( 0 == get_user_meta( $_POST['sg-user-id'], 'sg_security_2fa_configured', true ) ) { // phpcs:ignore
         // Arguments for initial 2fa setup.
         $args = array(
            'template' => '2fa-initial-setup-form.php',
            'qr'       => get_user_meta( $_POST['sg-user-id'], 'sg_security_2fa_qr', true ), // phpcs:ignore
            'secret'   => get_user_meta( $_POST['sg-user-id'], 'sg_security_2fa_secret', true ), // phpcs:ignore
            'error'    => esc_html__( 'Invalid verification code!', 'sg-security' ),
            'action'   => esc_url( add_query_arg( 'action', 'sgs2fa', wp_login_url() ) ),
         );
      } else {
         // Arguments for 2fa login.
         $args = array(
            'template' => '2fa-login.php',
            'error'    => esc_html__( 'Invalid verification code!', 'sg-security' ),
            'action'   => esc_url( add_query_arg( 'action', 'sgs2fa', wp_login_url() ) ),
         );
      }

      $this->load_form( wp_unslash( $_POST['sg-user-id'] ), $args ); // phpcs:ignore
   }

   // Set the auth cookie.
   wp_set_auth_cookie( wp_unslash( $_POST['sg-user-id'] ), intval( wp_unslash( $_POST['rememberme'] ) ) ); // phpcs:ignore</pre>
<pre>

Der angezeigte QR-Code und geheime Schlüssel für die Authentifizierung, der potenziell nicht autorisierten Benutzern angezeigt wird.

Der zurückgegebene QR-Code und der geheime Schlüssel sind die einzigen Dinge, die benötigt werden, um das Benutzerkonto mit einem Authentifizierungsmechanismus wie Google Authenticator zu verbinden. Angreifer konnten dies verwenden, um ihre Authentifizierungs-App mit dem Konto zu verbinden und erfolgreich einen Code zu verwenden, um den "zweiten Faktor der Authentifizierung" zu übergeben. Diese Funktion würde dann die Benutzerauthentifizierungs-Cookies über die wp_set_auth_cookie() Funktion mit der vom Benutzer angegebenen ID aus dem sg-user-id -Parameter, der den Angreifer effektiv als diesen Benutzer anmeldet. Aufgrund der Standardkonfiguration des Plugins wäre dieses Konto höchstwahrscheinlich ein privilegierter Benutzer wie ein Administrator oder Editor. Es ist auch erwähnenswert, dass die Funktion die Backup-Codes zurückgibt, die über die im nächsten Abschnitt beschriebene Schwachstelle verwendet werden könnten.

Zusammenfassend lässt sich sagen, dass es keine Validierung auf der validate_2fa_login() Funktion, dass die Identität, die ein Benutzer beanspruchte, tatsächlich legitim war. Als solche könnten Angreifer den ersten Authentifizierungsmechanismus, ein Benutzername/Passwort-Paar, umgehen, das die Identität nachweisen und sich erfolgreich anmelden soll, aufgrund einer Schwachstelle im zweiten Authentifizierungsmechanismus, dem 2FA-Prozess. Bei Erfolg kann ein Angreifer eine Website vollständig infizieren, indem er diese Sicherheitsanfälligkeit ausnutzt.


Beschreibung: Autorisierungsschwäche bei der Authentifizierungsumgehung über 2-Faktor-Authentifizierungs-Backup-Codes
Betroffenes Plugin: SiteGround-Sicherheit
Plugin Slug: SG-Sicherheit
Plugin-Entwickler: SiteGround
Betroffene Versionen:
CVE-ID: CVE-2022-0993
CVSS-Punktzahl: 8.1 (Hoch)
CVSS-Vektor: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Wissenschaftliche(r) Mitarbeiter: Chloe Chamberland
Vollständig gepatchte Version: ​1.2.6

Zusätzlich zu der oben beschriebenen Sicherheitsanfälligkeit ermöglichte die Methode, mit der die 2FA-Backup-Code-Authentifizierung verarbeitet wurde, Angreifern, sich anzumelden, wenn sie in der Lage waren, einen Backup-Code für einen Benutzer zu erzwingen oder ihn über andere Mittel wie SQL Injection zu kompromittieren.

Als das Plugin tiefer tauchte, registrierte es die validate_2fabc_login() Funktion, die den angegebenen Backup-Code über die validate_backup_login() Funktion, die die vom Benutzer angegebene Benutzer-ID aus dem sg-user-id Parameter zusammen mit dem Backup-Code, der über die sgc2fabackupcode Parameter. Wenn der Sicherungscode im Array der gespeicherten Sicherungscodes für diesen Benutzer gefunden wurde, verwendet die Funktion die wp_set_auth_cookie() -Funktion, um die Authentifizierungscookies für die angegebene Benutzer-ID zu setzen. Wenn diese Benutzer-ID einem Administrator gehörte, wäre der Angreifer effektiv als Administrator angemeldet.

</pre>
<pre>public function validate_2fabc_login() {

   $result = $this->validate_backup_login( wp_unslash( $_POST['sgc2fabackupcode'] ), wp_unslash( $_POST['sg-user-id'] ) ); // phpcs:ignore

   // Check the result of the authtication.
   if ( false === $result ) {
      $this->load_form(
         wp_unslash( $_POST['sg-user-id'] ), // phpcs:ignore
         array(
            'template' => '2fa-login-backup-code.php',
            'action'   => esc_url( add_query_arg( 'action', 'sgs2fabc', wp_login_url() ) ),
            'error'    => esc_html__( 'Invalid backup code!', 'sg-security' ),
         )
      );
   }

   // Set the auth cookie.
   wp_set_auth_cookie( wp_unslash( $_POST['sg-user-id'] ), intval( wp_unslash( $_POST['rememberme'] ) ) ); // phpcs:ignore

Ähnlich wie bei der vorherigen Sicherheitsanfälligkeit besteht das Problem hierbei darin, dass es keine echte Identitätsvalidierung für die Authentifizierung gab, was auf eine Autorisierungsschwäche hinweist. Die Funktion führte keine Überprüfungen durch, um zu überprüfen, ob sich ein Benutzer zuvor vor der Eingabe des 2FA-Backup-Codes authentifiziert hatte, und als solcher musste er sich nicht legitim anmelden, bevor er angemeldet wurde, während er einen Backup-Code verwendete. Dies bedeutete, dass es keine Überprüfungen gab, um zu überprüfen, ob ein Benutzer berechtigt war, einen Sicherungscode zu verwenden, um den zweiten Authentifizierungsfaktor auszuführen, der ihn anmelden würde.

Obwohl das Risiko in diesem Fall geringer ist, waren die Backup-Codes 8 Ziffern lang und vollständig numerisch, so dass ein Angreifer möglicherweise einen der 8 Backup-Codes brutal erzwingen und automatisch angemeldet werden konnte, ohne eine Kombination aus Benutzername und Passwort für einen administrativen Benutzer zu kennen.

Während dies auf den meisten Servern möglicherweise nicht praktikabel ist, hätte ein geduldiger Gegner, der einen gut bereitgestellten Server angreift, der in der Lage ist, eine große Anzahl von Anfragen gleichzeitig zu verarbeiten, eine hohe Chance, schließlich Zugriff zu erhalten, es sei denn, die Brute-Force-Versuche würden durch einen anderen Mechanismus gestoppt, z. B. den integrierten Brute-Force-Schutz des Wordfence-Plugins oder die Regeln zur Begrenzung der Rate.

Darüber hinaus könnte diese Sicherheitsanfälligkeit in Verbindung mit einer anderen Schwachstelle ausgenutzt werden, z. B. SQL-Injection, bei der ein Angreifer in der Lage wäre, die in der Datenbank gespeicherten 2FA-Sicherungscodes zu kompromittieren und sie anschließend zum Anmelden zu verwenden, ohne das Kennwort eines administrativen Benutzers knacken zu müssen, das wahrscheinlich erheblich stärker wäre. In beiden Fällen wären die Auswirkungen erheblich, da ein Angreifer administrativen Zugriff auf die kompromittierte WordPress-Site erhalten könnte, die für eine vollständige Site-Infektion verwendet werden könnte.

Eine wichtige Sicherheitserinnerung: Prüfen Sie die Benutzerkonten Ihrer WordPress-Site

Diese Schwachstelle dient als wichtige Erinnerung daran, die Benutzerkonten Ihrer WordPress-Site zu überprüfen. Dies bedeutet, alte und ungenutzte Benutzerkonten zu identifizieren, die über einen längeren Zeitraum inaktiv waren und/oder wahrscheinlich nie wieder verwendet werden, und sie zu entfernen oder die Fähigkeiten des Benutzers vollständig zu beschneiden. Diese Sicherheitsanfälligkeit kann leicht auf Websites ausgenutzt werden, auf denen der Websitebesitzer 2FA aktiviert hat, was für alle Administrator- und Editorbenutzer erforderlich ist, und alte inaktive Verwaltungs-/Editorbenutzerkonten auf der Website hatte, auf die ein Angreifer abzielen könnte. Da es unwahrscheinlich ist, dass sich Konten, die nicht mehr aktiv sind, anmelden, nachdem die 2FA-Einstellung aktiviert wurde, wird die 2FA für diese Konten nicht konfiguriert, sodass die Website für die Ausnutzung durch Angreifer, die die Sicherheitsanfälligkeit ausnutzen, reif ist.

Eine Situation mit einem ähnlichen Sicherheitsproblem mit unsicherem 2FA wurde vor einigen Wochen von der CISA in Zusammenarbeit mit dem FBI gemeldet, etwa zur gleichen Zeit, als wir diese Schwachstelle entdeckten. Im Cybersecurity Advisory (CSA) der CISA wurde bekannt gegeben, dass ein Bedrohungsakteur in der Lage war, die Kontoanmeldeinformationen eines ruhenden Benutzers erfolgreich zu erzwingen, und aufgrund einer standardmäßigen 2FA-Einstellung, die es ruhenden Benutzern ermöglichen würde, ein neues Gerät für 2FA während der nächsten aktiven Anmeldung erneut zu registrieren, konnte der Bedrohungsakteur das 2FA-Geheimnis mit seinem eigenen Konto verbinden und den Code abrufen, der zum Übergeben des zweiten Faktors erforderlich ist. der Authentifizierung. Sobald der Bedrohungsakteur gewonnen hat Beim ersten Zugriff auf das System konnten sie ihre Berechtigungen erhöhen, indem sie die Schwachstelle "PrintNightmare" ausnutzten, die Sie Lesen Sie hier mehr darüberund stehlen vertrauliche Informationen aus dem gesamten Netzwerk des Unternehmens. Dies zeigt, dass Angreifer definitiv nach Fehlern suchen, wie sie heute enthüllt wurden, und jede Website kann ein Ziel sein. Daher ist es wichtig, die Sicherheit Ihrer Website durch regelmäßig durchgeführte professionelle oder selbst durchgeführte Sicherheitsaudits und Penetrationstests aktiv aufrechtzuerhalten und zu validieren. Dies ist ein Dienst, den Wordfence anbietet. Sicherheit ist ein aktiver und kontinuierlicher Prozess.

Zeitleiste

10. März 2022 – Abschluss der Plugin-Analyse, die zur Entdeckung von zwei Authentication Bypass Schwachstellen im WordPress-Plugin "SiteGround Security" führte. Wir setzen Firewall-Regeln zum Schutz ein Wordfence Premium, Wordfence Pflegeund Wordfence-Antwort Benutzer. Wir senden die vollständigen Offenlegungsdetails an SiteGround in Übereinstimmung mit ihrer verantwortungsvollen Offenlegungsrichtlinie.
11. März 2022 – Der CTO von SiteGround antwortet und gibt an, dass ein Patch veröffentlicht wurde. Wir überprüfen das Pflaster und informieren sie, dass es nicht ausreicht. Sie veröffentlichen einen zusätzlichen Patch.
11. März 2022 – Eine gepatchte Version des Plugins wird als Version 1.2.3 veröffentlicht. Wir schlagen weitere Sicherheitsverbesserungen für die Funktionalität vor.
16. März 2022 - Ein Update wird gemacht, das die Sicherheit der 2FA-Funktionalität reduziert, wir folgen erneut, um bessere Sicherheitsverbesserungen für die Funktionalität vorzuschlagen. Der CTO versichert uns, dass er daran arbeitet.
6. April 2022 – Eine vollständig und optimal gepatchte Version des Plugins wird als Version 1.2.6 veröffentlicht.
9. April 2022 – Wordfence Free Benutzer erhalten die Firewall-Regeln.

Schlussfolgerung

Im heutigen Beitrag haben wir einen Fehler im Plugin "SiteGround Security" beschrieben, der es nicht authentifizierten Angreifern ermöglichte, Zugriff auf administrative Benutzerkonten in Fällen zu erhalten, in denen die 2-Faktor-Authentifizierung aktiviert war, obwohl sie noch nicht vollständig eingerichtet war, und in Fällen, in denen ein Angreifer erfolgreich einen Backup-Code erzwingen konnte. Dies könnte leicht von einem Angreifer verwendet werden, um eine Website vollständig zu kompromittieren. Dieser Fehler wurde in Version 1.2.6 vollständig behoben.

Wir empfehlen dringend, sicherzustellen, dass Ihre Website auf die neueste gepatchte Version von "SiteGround Security" aktualisiert wurde, die zum Zeitpunkt dieser Veröffentlichung Version 1.2.6 ist.

Wordfence Premium, Wordfence Pflegeund Wordfence-Antwort hat am 10. März 2022 eine Reihe von Firewall-Regeln erhalten, um Schutz vor Versuchen von Angreifern zu bieten, diese Sicherheitsanfälligkeit auszunutzen. Wordfence Free-Benutzer erhalten denselben Schutz 30 Tage später, am 9. April 2022.

Wenn Sie der Meinung sind, dass Ihre Website aufgrund dieser Sicherheitsanfälligkeit oder einer anderen Schwachstelle kompromittiert wurde, bieten wir Incident Response-Dienste über Wordfence Pflege. Wenn Sie Ihre Website sofort reinigen müssen, Wordfence-Antwort bietet den gleichen Service mit 24/7/365 Verfügbarkeit und einer Reaktionszeit von 1 Stunde. Sowohl Wordfence Care als auch Wordfence Response beinhalten praktische Sicherheitsunterstützung, die Ihnen bei Bedarf fortlaufende Unterstützung durch unser Incident Response-Team bietet.

Besonderer Dank geht an das Team von SiteGround, das schnell reagiert und schnell daran gearbeitet hat, einen Patch zum Schutz seiner Kunden herauszuholen und daran zu arbeiten, die 2FA-Komponente weiter zu sichern.

Quelle


Dieser Artikel ist im Original von www.wordfence.com und wurde übersetzt
https://www.wordfence.com/blog/2022/04/critical-authentication-bypass-vulnerability-patched-in-siteground-security-plugin/

Abonniere den RSS-Feed von unseren WP News und verpasse keine Meldung: https://die-mainagentur.de/feed/?post_type=wp-news

Alternativ kannst du unseren WP-Newsletter abonnieren

Mit dem Eintrag in den WP-Newsletter bekommst du per Mail über neue Artikel zugesendet. Du kannst den Newsletter jederzeit abbestellen.
Mehr dazu in der Datenschutzerklärung