PHP: CVE-2024-8929 – Heap-Datenleck durch Buffer Over-Read in Mysqlnd

Table of Contents

Am 26. November 2024 wurde die Schwachstelle CVE-2024-8929 veröffentlicht, die sich auf das mysqlnd (MySQL Native Driver) in PHP bezieht. Die Schwachstelle ermöglicht es Angreifern, Speicherinhalte (Heap-Daten) durch eine fehlerhafte Verarbeitung von MySQL-Paketen zu lesen. Die Sicherheitslücke wird als hoch (Severity: High) eingestuft. Die Versionen < 8.1.31, < 8.2.26 und <8.3.14 sind betroffen.

Die Schwachstelle tritt in der Funktion php_mysqlnd_rset_field_read auf, die MySQL-Datenpakete verarbeitet. Bei fehlerhaften oder manipulierten Paketen kann der MySQL-Native-Treiber (mysqlnd):

  • Daten aus dem Speicher (Heap) auslesen, die nicht zur aktuellen Anfrage gehören.
  • Inhalte des vorherigen MySQL-Server-Antwortpakets preisgeben.

Ursache

  1. Heap Buffer Over-Read:
    • Ein manipuliertes MySQL-Paket führt dazu, dass der Treiber Daten über die erwartete Paketlänge hinausliest.
    • Dies geschieht durch das Umgehen der Sicherheitsprüfung BAIL_IF_NO_MORE_DATA, da der Paketzeiger (p) nicht korrekt aktualisiert wird.
  2. PHP-FPM Speicherwiederverwendung:
    • Da PHP-FPM zwischen HTTP-Anfragen läuft und Speicherressourcen recycelt, kann ein Angreifer Inhalte des vorherigen Speicherzustands extrahieren.

Mögliche Angriffe und Szenarien

  1. Hosting-Umgebungen:
    • Ein Hosting-Anbieter bietet Dienste wie verwaltete Datenbanken oder Tools wie phpMyAdmin.
    • Ein böswilliger Benutzer richtet einen manipulierten MySQL-Server ein.
    • Andere Benutzer, die sich mit diesem Server verbinden, können sensible Daten aus vorherigen Anfragen preisgeben.
  2. Multi-User-Umgebungen:
    • In einer Umgebung mit gemeinsam genutzten Ressourcen (z. B. PHP-FPM-Pools) könnte ein Angreifer Informationen über andere Benutzer erhalten.
  3. Datenlecks in Applikationen:
    • Wenn Datenbankverbindungen nicht ausreichend geschützt sind, könnten Anwendungen versehentlich vertrauliche Informationen preisgeben.

Ein Angreifer kann:

  1. Einen manipulierten MySQL-Server erstellen.
  2. Ein PHP-Skript aufrufen, das sich mit diesem Server verbindet.
  3. Speziell manipulierte Pakete senden, um Speicherinhalte (z. B. Ergebnisse früherer SQL-Anfragen) zu extrahieren.

Empfohlene Maßnahmen

Konfiguration

  • Nutzen Sie eine sichere PHP- und MySQL-Konfiguration, insbesondere in gemeinsam genutzten Hosting-Umgebungen.
  • Isolieren Sie PHP-FPM-Pools für unterschiedliche Benutzer oder Anwendungen, um Speicherlecks zu verhindern.

Netzwerkschutz

  • Filtern Sie eingehende MySQL-Verbindungen und erlauben Sie nur bekannte, vertrauenswürdige Datenbankserver.

Weitere Sicherheitsmaßnahmen

  • Überprüfen Sie die Konfiguration von PHP-Datenbanktreibern und deaktivieren Sie unnötige Funktionen.
  • Nutzen Sie TLS für die Kommunikation zwischen PHP und MySQL, um Manipulationen am Netzwerkverkehr zu verhindern.

Related Posts

WinZip Remote Code Execution Schwachstelle gefunden

Die Schwachstelle CVE-2024-8811, bekannt als WinZip Mark-of-the-Web Bypass Vulnerability, betrifft den Mechanismus zum Schutz von Dateien durch das Mark-of-the-Web (MotW) in der Software WinZip. Angreifer können die Sicherheitsmechanismen umgehen, was zu einem potenziellen Risiko für die Benutzer führt. Die Schwachstelle wurde am 22. November 2024 veröffentlicht und wird von der Zero Day Initiative (ZDI) unter der Referenz ZDI-CAN-23983 aufgeführt.

Read More

Kritische RCE Sicherheitslücke in GitHub CLI (CVE-2024-52308)

Am 14. November 2024 wurde eine schwerwiegende Sicherheitslücke in der GitHub CLI (GH CLI) bekannt gegeben, die Angreifern unter bestimmten Umständen Remote Code Execution (RCE) ermöglicht. Die Schwachstelle betrifft die Funktionen gh codespace ssh und gh codespace logs, wenn diese mit einem bösartigen Codespace-SSH-Server interagieren.

Read More

CVE-2024-10220: Kritische Sicherheitslücke in Kubernetes durch gitRepo-Volume

Am 20. November 2024 wurde CVE-2024-10220 öffentlich bekanntgegeben, eine Sicherheitslücke in Kubernetes, die als kritisch eingestuft wurde. Sie betrifft das gitRepo-Volume, ein veraltetes Feature, das es Angreifern ermöglichen könnte, beliebige Befehle außerhalb der Container-Grenzen auszuführen. Im Folgenden eine detaillierte Analyse dieser Schwachstelle, ihrer Auswirkungen und wie sie behoben werden kann.

Read More