Sicherheitslücke in UpdraftPlus ermöglichte Abonnenten den Download sensibler Backups

4. März 2022

Update: In einer früheren Version dieses Artikels hieß es, dass ein Angreifer seinen Angriff während eines laufenden Backups starten und den entsprechenden Zeitstempel erraten müsste, um ein Backup herunterzuladen. Seit der Veröffentlichung des Artikels haben wir festgestellt, dass es möglich ist, jederzeit ein vollständiges Protokoll mit einer Backup-Nonce und einem Zeitstempel zu erhalten, wodurch diese Schwachstelle deutlich leichter auszunutzen ist. Wir haben unsere Firewall-Regel aktualisiert, um sicherzustellen, dass diese zusätzliche Methode nicht zum Abfangen von Informationen verwendet werden kann.

Am 17. Februar 2022 wurde UpdraftPlus, ein WordPress-Plugin mit über 3 Millionen Installationen, mit einem Sicherheitsfix für eine vom Sicherheitsforscher Marc Montpas entdeckte Schwachstelle aktualisiert. Diese Sicherheitslücke ermöglicht es jedem angemeldeten Benutzer, auch Abonnenten, mit dem Plugin erstellte Backups herunterzuladen. Backups sind eine Fundgrube für sensible Informationen und enthalten häufig Konfigurationsdateien, die für den Zugriff auf die Datenbank der Website verwendet werden können, sowie den Inhalt der Datenbank selbst.

Wie bei allen neu gemeldeten Sicherheitslücken hat das Wordfence Threat Intelligence Team den Patch untersucht und konnte einen Proof of Concept erstellen. Außerdem haben wir eine Firewall-Regel veröffentlicht, um Angreifer zu blockieren, die versuchen, diese Sicherheitslücke auszunutzen. Wordfence Premium, Pflegeund Antwort Kunden haben diese Regel heute, am 17. Februar 2022, erhalten, während Wordfence Free-Nutzer diese Regel nach 30 Tagen, am 19. März 2022, erhalten werden.

Diese Schwachstelle wurde in der Version 1.22.3 von UpdraftPlus gepatcht. Wir raten dir daher dringend, zu überprüfen, ob auf deiner Website die aktuellste Version des Plugins installiert ist, und es andernfalls sofort zu aktualisieren.

UpdraftPlus ist ein beliebtes Backup-Plugin für WordPress-Websites und es wird erwartet, dass du mit dem Plugin deine Backups herunterladen kannst. Eine der Funktionen, die das Plugin implementierte, war die Möglichkeit, Download-Links für Backups an eine E-Mail der Wahl des Website-Besitzers zu senden. Leider war diese Funktion unsicher implementiert, so dass es für Benutzer mit geringer Authentifizierung, wie z. B. Abonnenten, möglich war, einen gültigen Link zu erstellen, mit dem sie die Sicherungsdateien herunterladen konnten.

Der Angriff beginnt mit dem WordPress heartbeat Funktion. Der Angreifer muss eine speziell gestaltete Heartbeat-Anfrage senden, die eine data[updraftplus] Parameter enthält. Mit den entsprechenden Unterparametern kann ein Angreifer ein Backup-Protokoll mit einer Backup-Nonce und einem Zeitstempel erhalten, das er dann zum Herunterladen eines Backups verwenden kann.

Sobald der Angreifer die Backup-Nonce hat, kann er die maybe_download_backup_from_email Funktion auslösen, aber um das erfolgreich zu tun, müsste er eine WordPress-Funktion austricksen, die den Endpunkt ermittelt, an den die Anfrage gesendet wird:


	public function maybe_download_backup_from_email() {
		global $pagenow;
		if ((!defined('DOING_AJAX') || !DOING_AJAX) && UpdraftPlus_Options::admin_page() === $pagenow && isset($_REQUEST['page']) && 'updraftplus' === $_REQUEST['page'] && isset($_REQUEST['action']) && 'updraft_download_backup' === $_REQUEST['action']) {
			$findexes = empty($_REQUEST['findex']) ? array(0) : $_REQUEST['findex'];
			$timestamp = empty($_REQUEST['timestamp']) ? '' : $_REQUEST['timestamp'];
			$nonce = empty($_REQUEST['nonce']) ? '' : $_REQUEST['nonce'];
			$type = empty($_REQUEST['type']) ? '' : $_REQUEST['type'];
			if (empty($timestamp) || empty($nonce) || empty($type)) wp_die(__('The download link is broken, you may have clicked the link from untrusted source', 'updraftplus'), '', array('back_link' => true));
			$backup_history = UpdraftPlus_Backup_History::get_history();
			if (!isset($backup_history[$timestamp]['nonce']) || $backup_history[$timestamp]['nonce'] !== $nonce) wp_die(__("The download link is broken or the backup file is no longer available", 'updraftplus'), '', array('back_link' => true));
			$this->do_updraft_download_backup($findexes, $type, $timestamp, 2, false, '');
			exit; // we don't need anything else but an exit
		}
	}

Das Problem ist, dass die UpdraftPlus_Options::admin_page() === $pagenow Prüfung. Diese erfordert, dass die WordPress $pagenow globale Variable gesetzt werden options-general.php. Normalerweise ist es Abonnenten nicht erlaubt, auf diese Seite zuzugreifen. Bei einigen Serverkonfigurationen, vor allem bei Apache/modPHP, ist es jedoch möglich, diese Variable zu fälschen. Ähnlich wie bei einer früheren Sicherheitslücke in WordPress < 5.5.1, die ebenfalls von diesem Forscher gefunden wurde, ist es möglich, eine Anfrage an z. B. wp-admin/admin-post.php/%0A/wp-admin/options-general.php?page=updraftplus.

Während Abonnenten keinen Zugang zu options-general.phpkönnen, ist es ihnen erlaubt, auf admin-post.php. Indem sie die Anfrage an diesen Endpunkt senden, können sie die $pagenow Check vorgaukeln, dass die Anfrage an options-general.phpist, während WordPress die Anfrage immer noch als an einen erlaubten Endpunkt von admin-post.php.

Sobald diese Prüfung bestanden ist, muss der Angreifer die Backup-Nonce sowie eine type Parameter angeben. Da alle Backups mit einem Zeitstempel indiziert sind, muss der Angreifer einen Zeitstempel hinzufügen, den er entweder erpresst oder aus dem Backup-Protokoll erhalten hat.

Fazit

Um diese Schwachstelle erfolgreich auszunutzen, müsste ein Angreifer über ein aktives Konto auf dem Zielsystem verfügen. Daher ist es wahrscheinlich, dass sie nur bei gezielten Angriffen ausgenutzt wird. Die Folgen eines erfolgreichen, gezielten Angriffs dürften schwerwiegend sein, da unter anderem Passwörter und personenbezogene Daten ausspioniert werden könnten und in einigen Fällen eine Übernahme der Website möglich ist, wenn es dem Angreifer gelingt, Datenbankzugangsdaten aus einer Konfigurationsdatei zu erhalten und erfolgreich auf die Datenbank der Website zuzugreifen.

Wir raten daher allen Nutzern, die das UpdraftPlus-Plugin verwenden, so schnell wie möglich auf die neueste Version des Plugins zu aktualisieren, die zum Zeitpunkt dieses Schreibens Version 1.22.3 ist, falls ihr das noch nicht getan habt.

Wordfence Premium-, Care- und Response-Kunden sind ab dem 17. Februar 2022 durch eine Firewall-Regel vor allen Exploits geschützt, die auf diese Sicherheitslücke abzielen, während Wordfence Free-Nutzer diesen Schutz nach 30 Tagen am 19. März 2022 erhalten.

Wenn du glaubst, dass deine Website durch diese oder eine andere Sicherheitslücke kompromittiert wurde, bieten wir dir Incident Response Services über Wordfence Care. Wenn du deine Seite sofort reinigen lassen willst, Wordfence Antwort bietet den gleichen Service mit 24/7/365 Verfügbarkeit und einer Reaktionszeit von 1 Stunde. Beide Produkte beinhalten praktischen Support, falls du weitere Hilfe benötigst.

Vielen Dank an Marc Montpass für die Entdeckung dieser Sicherheitslücke und die verantwortungsvolle Meldung an das UpdraftPlus-Team. Du kannst findest du die UpdraftPlus-Meldung auf dieser Seite und eine weitere Ankündigung auf dem Jetpack-Blog.

Quelle


Dieser Artikel ist im Original von www.wordfence.com und wurde übersetzt
https://www.wordfence.com/blog/2022/02/vulnerability-in-updraftplus-allowed-subscribers-to-download-sensitive-backups/

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