Sicherheitslücke laut c't

  • Die „c't“ berichtet in Ausgabe 23/2020 von einer Sicherheitslücke in Wordpress. Bei einer Standardinstallation ist automatisch auch die API von Wordpress von außen erreichbar. Damit lassen sich Medieninhalte automatisiert auslesen, selbst wenn sie noch nirgends auf der Website eingebaut sind. Auch passwortverschlüsselte Seiten sind so zwar nicht erreichbar, wohl aber die darauf eingesetzten Medieninhalte. Mir ist klar, dass jede ZIP-Datei oder Powerpoint-Präsentation, sofern einmal in Wordpress hochgeladen, automatisch bei Kenntnis des Links frei zugänglich ist. Über die API jedoch können automatisiert sämtliche Medieninhalte ausgelesen werden, auch ohne Kenntnis des jeweiligen Links.

    Überprüfen lässt sich die eigene Wordpress-Installation durch einen Aufruf von domain.de/wp-json. Erscheint hier eine ausführliche Antwort, ist die Installation angreifbar.

    „c't“ empfiehlt als einen Fix, folgenden Code in die functions.php des Themes aufzunehmen:

    [FONT=Courier New]/**
    * hinzugefügt ct-Tipp Sicherheit */
    add_filter( 'rest_authentication_errors', function( $result ) {
    if ( ! empty( $result ) ) {
    return $result;
    }
    if ( ! is_user_logged_in() ) {
    return new WP_Error( '401', 'not allowed.', array('status' => 401) );
    }
    return $result;
    });
    /** Ende ct-Tipp */[/FONT]

    Allerdings könnte dieser funktionstüchtige Code bei einem Update des Themes wieder überschrieben werden. Gibt es Pläne bei Wordpress, die Erreichbarkeit der API von außen generell auszuschalten und nur bei Bedarf per Schalter einzuschalten? Wie kann man das ohne Eingriff in die functions.php des Themes eleganter lösen?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Lt. WordPress Core Entwicklern ist diese offene API explizit keine Sicherheitslücke:

    Zitat

    [size=14]Qualifying Vulnerabilities[/SIZE]
    Any reproducible vulnerability that has a severe effect on the security or privacy of our users is likely to be in scope for the program. Common examples include XSS, CSRF, SSRF, RCE, SQLi, and privilege escalation.

    We generally aren’t interested in the following problems:
    ...
    Open API endpoints serving public data (Including usernames and user IDs)
    ...


    Siehe hier bzw. das o.g. Zitat ist dann von hier. Ergänzung: Es gibt in der WordPress Community aber durchaus auch gegenteilige Meinungen zu dem Thema.

    Wie kann man das ohne Eingriff in die functions.php des Themes eleganter lösen?


    Beispielsweise über ein eigenes kleines Plugin mit diesem Code.

    Es gibt alternativ einige fertige Plugins, die sich mit dem ganz oder teilweisen Blockieren der REST API von aussen auseinandersetzen, auch viele Security-Plugins haben solche Funktionen.

    8 Mal editiert, zuletzt von b3317133 (2. November 2020 um 20:49)

  • Ergänzend sollte man noch hinzufügen:
    Viele Plugins (und auch externe Dienste) nutzen die Rest API. Man muss bei einer eingeschränkten oder deaktivierten Rest API damit leben, dass man dann auch einen eingeschränkten Funktionsumfang hat.

  • Ich weiß nicht, ob es keine Sicherheitslücke ist, wenn alle Administratoren von außen abfragbar sind, wenn sogar private Seiten sichtbar sind.
    In meinen Augen ist es eine schwere Sicherheitslücke. Wieso kann jeder dies abfragen? Private Seiten sind nicht umsonst privat, die Namen der Admins geht niemanden etwas an.

  • Sehe das ähnlich. Hab einige Beispiele wo für verschiedene Aufgaben dutzende, sogar hunderte Nutzer angelegt werden, teilweise mit ihren Klarnamen - die dürfen nicht auffindbar sein. Ebenso nicht Bestandteile von privaten Beiträgen. Das kann datenschutzrelevante Folgen haben. Ich verwende daher immer Plugins in meinen Projekten die die REST-API abschalten und würde das auch allen anderen nahelegen.

  • Private Beiträge und Seiten sind in der REST API nicht sichtbar.

    Benutzereinträge sind in der REST API nur sichtbar, wenn der jeweilige Benutzer auch Beiträge oder Seiten veröffentlicht hat und als Autor hinterlegt ist.

    Üblicherweise wird in WordPress ein Redakteur eingerichtet, der die Inhalte verwaltet, so ist vom Administrator in der REST API nichts zu sehen.

    Man mag zu dem Thema stehen wie man will, aber man sollte schon bei den Tatsachen bleiben.

    4 Mal editiert, zuletzt von b3317133 (10. November 2020 um 20:57)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!