
Einführung
Am 7. Mai 2024 veröffentlichte WP-Firewall, eine führende Sicherheitsberatungsorganisation, einen ausführlichen Bericht über kritische Schwachstellen, die im Uncode Core-Plugin entdeckt wurden. Wenn Sie ein Uncode-Benutzer sind, ist es wichtig, Ihr Core-Plugin auf mindestens Version 2.8.9 zu aktualisieren, um Ihre WordPress-Site vor potenziellen Angriffen zu schützen. In diesem Beitrag werden die Einzelheiten dieser Schwachstellen, ihre Auswirkungen und die Schritte zu ihrer Beseitigung erläutert.
Über das Uncode Core Plugin
Das von Undsgn entwickelte Uncode Core-Plugin ist ein wesentlicher Bestandteil des Uncode-Themas – ein äußerst beliebtes Premium-Thema für WooCommerce-Websites mit über 110.000 Verkäufen auf ThemeForest. Das Uncode-Thema ist für sein pixelgenaues Design bekannt und eignet sich daher ideal für verschiedene Websites, darunter Portfolios, Agenturen, Freiberufler, Blogs und Online-Shops.
Die Sicherheitslücken
Die Sicherheitsforscher von WP-Firewall haben im Uncode Core-Plugin zwei erhebliche Schwachstellen identifiziert:
1. Authentifiziertes Löschen beliebiger Dateien und Verzeichnisse
Beschreibung: Diese Sicherheitslücke ermöglicht es jedem authentifizierten Benutzer mit mindestens der Rolle „Abonnent“, beliebige Verzeichnisse auf dem Server zu löschen. Das Problem liegt in der Funktion „delete_download“, der die entsprechenden Berechtigungen und Nonce-Prüfungen fehlen. Diese Funktion ist an die Aktion „wp_ajax_uncodefont_delete_download“ angehängt, sodass authentifizierte Benutzer sie ausnutzen können.
Technische Details:
Funktion delete_download() {
wenn (isset($_REQUEST['Schriftfamilie'])) {
$font_family = $_REQUEST['Schriftfamilie'];
$font_dir = abschließender Schrägstrich($this->font_directory).$font_family;
$fontkit_zip = $font_dir.'.zip';
wenn (@file_exists($fontkit_zip)) {
wenn (!@unlink($fontkit_zip)) {
echo json_encode(Array(
'error' => sprintf( esc_html__( 'Löschen von @fontface kit zip %1$s fehlgeschlagen.', 'uncode-core' ), $fontkit_zip )
));
sterben();
}
}
// Das Verzeichnis kann nicht gelöscht werden, da unzip_file, das es erstellt hat, WP_Filesystem verwendet. Daher verwenden wir WP_Filesystem, um es zu löschen.
$this->setup_wp_filesystem();
globales $wp_Dateisystem;
wenn (isset($wp_filesystem)) {
$delete_dir = $wp_filesystem->delete($font_dir, true);
if (!$delete_dir) {
echo json_encode(array('Fehler' => $delete_dir['Fehler']));
sterben();
}
}
echo json_encode(array('success' => "Download gelöscht"));
}
sterben();
}
includes/font-system/font-system.php, Funktion delete_download()
Die Funktion erstellt die Variable „$font_dir“ aus der Benutzereingabe („$_REQUEST['font_family']‘) ohne Bereinigung und ermöglicht so das Durchlaufen des Verzeichnisses und beliebiges Löschen.
2. Authentifizierte Rechteausweitung
Beschreibung: Diese Sicherheitslücke ermöglicht es jedem authentifizierten Benutzer mit mindestens der Rolle „Abonnent“, seine Berechtigungen auf jede beliebige Rolle auf der WordPress-Site zu erhöhen. Dies liegt an einem unsicheren WP Option-Update in der Funktion „save_option“, bei dem die ordnungsgemäßen Berechtigungsprüfungen fehlen.
Technische Details:
öffentliche Funktion Speicheroption() {
wenn (isset( $_POST['nonce'] ) und wp_verify_nonce( $_POST['nonce'], 'uncode-core-settings-nonce' ) ) {
wenn (isset( $_POST['Wert'] ) && $_POST['Wert'] && isset( $_POST['Options-ID'] ) && $_POST['Options-ID'] ) {
$autoload = isset( $_POST['autoload'] ) und $_POST['autoload'] === 'true' ? wahr : falsch;
Aktualisierungsoption ($_POST['Options-ID'], $_POST['Wert'], $autoload);
---------- HIER SCHNEIDEN ----------
enthält/core-settings/class-core-settings.php, Funktion save_option()
Der in dieser Funktion verwendete Nonce kann von jedem authentifizierten Benutzer mit Zugriff auf den WP-Admin-Bereich abgerufen werden, was unbefugte Aktualisierungen von Optionen und eine Rechteausweitung ermöglicht.
Der Patch
Um diese Schwachstellen zu beheben, haben die Entwickler des Uncode Core-Plugins die Version 2.8.9 veröffentlicht, die die folgenden Korrekturen enthält:
– Authentifiziertes Löschen beliebiger Dateien und Verzeichnisse: Berechtigungs- und Nonce-Prüfungen in der Funktion „delete_download“ implementiert.
– Authentifizierte Rechteausweitung: Berechtigungs- und Nonce-Prüfungen in der Funktion „save_option“ angewendet und eine Whitelist-Prüfung für Optionsschlüssel hinzugefügt.
Abschluss
Um die Sicherheit Ihrer WordPress-Site zu gewährleisten, müssen Sie stets die neuesten Patches und Sicherheitshinweise verwenden. Die Schwachstellen im Uncode Core-Plugin unterstreichen die Bedeutung der Implementierung geeigneter Berechtigungs- und Nonce-Prüfungen für alle sensiblen Aktionen. Bereinigen Sie Benutzereingaben immer und begrenzen Sie den Umfang dessen, was durch Benutzeraktionen aktualisiert oder gelöscht werden kann.
Ausführlichere Informationen finden Sie in der vollständigen Sicherheitsempfehlung auf der Website von WP-Firewall. Hier.
Bleiben Sie sicher
WP-Firewall bietet verschiedene Lösungen für die WordPress-Sicherheit, darunter Plugin-Auditing, Schwachstellenüberwachung und -reaktion sowie verwaltete WordPress-Sicherheitsdienste. Wenn Sie Plugin-Entwickler oder Sicherheitsforscher sind, sollten Sie WP-Firewall beitreten.