Wazuh: Angemeldeter Agent liest beliebige Dateien des Managers als root

Das Upgrade-Modul des Managers nimmt Befehle ohne Herkunftspruefung entgegen, deshalb liest ein selbst angemeldeter Agent jede Datei des Hosts als root.

Advisory-ID: TP-2026-083
Produkt: Wazuh (Open-Source-Plattform fuer SIEM und XDR mit zentralem Manager und Agenten)
Schwachstellentyp: Fehlende Authentifizierung einer kritischen Funktion (CWE-306)
CVE: CVE-2026-74034
CVSS 3.1: 7.5 (Hoch) · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Betroffene Versionen: >= 4.1.0, < 4.14.8
Hersteller-Advisory: GHSA-r7hm-43xr-477j
Behoben in: 4.14.8
Gemeldet: 16. Juli 2026

Zusammenfassung

Wazuh verteilt Agenten auf die ueberwachten Systeme, die ihre Ereignisse an einen zentralen Manager melden. Der Manager nimmt Upgrade-Befehle fuer seine Agenten ueber einen lokalen Socket entgegen, an den sowohl die Verwaltungs-API als auch der Dienst wazuh-analysisd schreibt, und unterscheidet beim Lesen nicht, wer geschrieben hat. Das erste Byte der entschluesselten Agentennachricht bestimmt die Zielwarteschlange, deshalb schiebt ein Agent einen eigenen upgrade_custom-Befehl samt freiem Dateipfad in diesen Socket. Das Upgrade-Modul laeuft als root und prueft den Pfad nur darauf, ob die Datei existiert. In der Werkseinstellung ist die Anmeldung neuer Agenten ohne Passwort erlaubt, ein Angreifer meldet also selbst einen Agenten an und laesst sich anschliessend jede Datei des Manager-Hosts als root an diesen Agenten ausliefern.

Ursache

SendMSGAction setzt bei Nachrichten vom sicheren Kanal die Zielwarteschlange auf das erste Byte des Agenten-Klartexts (src/shared/mq_op.c:129-143), sodass ein vorangestelltes u die Nachricht in analysisd auf den Upgrade-Zweig leitet (src/analysisd/analysisd.c:1379), wo der Dienst das JSON unveraendert weiterreicht und nur das Feld agents auf die vom Server vergebene Absenderkennung setzt (src/analysisd/analysisd.c:1951-1970). Der Empfaenger wm_agent_upgrade_listen_messages bedient WM_UPGRADE_SOCK ohne jede Herkunftspruefung und behandelt eine agentenseitig eingeschleuste Nachricht wie einen API-Aufruf (src/wazuh_modules/agent_upgrade/manager/wm_agent_upgrade_manager.c:88-201). Der Parser uebernimmt parameters.file_path wortgleich in die Aufgabe (wm_agent_upgrade_parsing.c:285-332), und die zugehoerige Pruefung besteht allein aus wfopen und fclose, also weder Pfadgrenze noch WPK-Signatur noch Endungspruefung (wm_agent_upgrade_validate.c:453-469). Der als root laufende Dienst wazuh-modulesd liest die Datei daraufhin in Bloecken, kodiert sie base64 und schreibt sie ueber den Upgrade-Kanal in das Verzeichnis var/incoming des anfragenden Agenten (wm_agent_upgrade_upgrades.c:291-303 und :421-476), wo sie liegen bleibt, weil die Signaturpruefung erst nach der Uebertragung scheitert.

Proof of Concept

# auf einem anonym angemeldeten Agenten (id 001), Manager in Werkseinstellung
printf '%s' 'u:upgrade_module:{"command":"upgrade_custom","parameters":{"file_path":"/etc/shadow","installer":"upgrade.sh"}}' \
  | socat -t1 - UNIX-SENDTO:/var/ossec/queue/sockets/queue

# -> Manager liest /etc/shadow als root und liefert es aus
md5sum /var/ossec/var/incoming/shadow     # auf dem Agenten
md5sum /etc/shadow                        # auf dem Manager, identisch

Der Agentendienst verschluesselt die Zeile und sendet sie ueber den regulaeren Kanal auf Port 1514; das fuehrende u waehlt die Upgrade-Warteschlange. Dieselbe Zeile liefert mit file_path auf /var/ossec/etc/client.keys die vorab geteilten Schluessel saemtlicher angemeldeter Agenten.

Auswirkung

  • Lesen jeder Datei des Manager-Hosts als root, darunter /etc/shadow, private TLS-Schluessel und der ES512-Signaturschluessel der API.
  • Diebstahl von client.keys und damit der vorab geteilten Schluessel aller angemeldeter Agenten.
  • Uebernahme oder Entschluesselung fremder Agentenverbindungen mit den erbeuteten Schluesseln.
  • Erzwungene Upgrades, Downgrades und Neuinstallationen beliebiger Agenten, da die Herkunftspruefung fuer den gesamten Socket fehlt.

Referenzen

Steckt so etwas in Ihrer Software?

Diese Schwachstelle hat unser Team im Rahmen seiner Arbeit gefunden. Lassen Sie Ihre Anwendungen von denselben Spezialisten prüfen, mit einem Penetrationstest von turingpoint.