Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-39842 — Kritische Remote-Codeausführung-Schwachstelle in der Rules Engine von OpenRemote ermöglicht es authentifizierten Benutzern mit der Rolle `write:rules`, beliebigen Code auf dem Server mit Root-Rechten auszuführen. | Kitploit
Tools/GitHubGitHub/keraattin/cve-2026-39842
AufklärungSchwachstellenscannerSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstests
GitHubkeraattin/cve-2026-39842

CVE-2026-39842

Kritische Remote-Codeausführung-Schwachstelle in der Rules Engine von OpenRemote ermöglicht es authentifizierten Benutzern mit der Rolle `write:rules`, beliebigen Code auf dem Server mit Root-Rechten auszuführen.

Repository anzeigen
112vor 5 MonatenNoch 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

CVE-2026-39842: OpenRemote Expression Injection RCE in Rules Engine

CVE-2026-39842 CVSS 10.0 Critical CWE-94 CWE-917 OpenRemote Status FIXED

TL;DR

Kritische Schwachstelle für Remote-Codeausführung in der Rules Engine von OpenRemote ermöglicht es authentifizierten Benutzern mit der Rolle write:rules, beliebigen Code auf dem Server mit Root-Rechten auszuführen.

  • CVSS-Score: 10.0 (Kritisch)
  • CVSS-Vektor: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
  • Betroffene Versionen: OpenRemote <= 1.21.0
  • Behobene Version: OpenRemote >= 1.22.0
  • Authentifizierung erforderlich: Ja (Rolle write:rules, kann Nicht-Superuser sein)
  • Ausnutzung: RCE als Root-Benutzer, Dateisystemzugriff, Diebstahl von Umgebungsvariablen, Multi-Tenant-Datenverletzung
  • Advisory: GHSA-7mqr-33rv-p3mp

Inhaltsverzeichnis

  • Kurzfakten
  • Was ist OpenRemote?
  • Detaillierte Analyse der Schwachstelle
  • Auswirkungsanalyse
  • Betroffene Versionen
  • Erkennung
  • Indikatoren für eine Kompromittierung
  • Behebung
  • Referenzen
  • Autor

Kurzfakten

AspektDetails
CVE-IDCVE-2026-39842
GHSA-IDGHSA-7mqr-33rv-p3mp
SchwachstellentypCode-Injection / Expression-Language-Injection
CVSS-Score10.0 (Kritisch)
CWECWE-94, CWE-917
ProduktOpenRemote
Betroffene Versionen<= 1.21.0
Behobene Version>= 1.22.0
Authentifizierung erforderlichJa
Erforderliche BerechtigungsstufeRolle write:rules (Nicht-Superuser)
Verwundbare EndpunktePOST /api/{realm}/rules/realm, POST /api/{realm}/rules/asset
RCE-Ausführungsebeneroot
AusnutzbarkeitHoch
KomplexitätNiedrig
Entdeckungsdatum2026

Was ist OpenRemote?

OpenRemote ist eine Open-Source-IoT-Plattform für den Aufbau intelligenter Gebäude, Städte und Industrien. Sie bietet Geräteverwaltung, Automatisierungsregeln, Analysen und Integrationen für das Internet-der-Dinge-Ökosystem.

Hauptfunktionen

  • Geräte- und Asset-Verwaltung über mehrere Protokolle (MQTT, Modbus, BACnet, HTTP)
  • Rules Engine für IoT-Automatisierung und Logikverarbeitung
  • Multi-Tenant-Architektur mit rollenbasierter Zugriffskontrolle
  • Echtzeit-Dashboards und Überwachung
  • Erstellung benutzerdefinierter Regeln mit mehreren Skriptsprachen
  • REST-API für Integration und Verwaltung
  • Cloud- und On-Premises-Bereitstellungsoptionen

OpenRemote-Architektur```

                  Internet / Network
                         |
                ┌────────┴────────┐
                v                 v
        ┌──────────────┐  ┌──────────────┐
        | Web Browser  |  | Mobile App   |
        └──────────────┘  └──────────────┘
                |                 |
                └────────┬────────┘
                         v
                ┌──────────────────┐
                | OpenRemote API   |
                | (REST/WebSocket) |
                └────────┬─────────┘
                         v
                ┌──────────────────┐
                | Manager Service  |
                |  (Port 8080)     |
                └────────┬─────────┘
                         |
    ┌────────────────────┼────────────────────┐
    |                    |                    |
    v                    v                    v

┌──────────┐ ┌──────────┐ ┌──────────────┐ | Rules | | Asset | | Notification | | Engine | | Storage | | Service | └──────────┘ └──────────┘ └──────────────┘ | | v v ┌──────────────────────────────────┐ | PostgreSQL / Timescale Database | └──────────────────────────────────┘

## Detaillierte Analyse der Schwachstelle

### Ursachenanalyse

Die Schwachstelle beruht auf zwei kritischen Fehlern in der Rules Engine von OpenRemote:

**Fehler 1: Nicht isolierte Nashorn-JavaScript-Engine**

Die Java-Nashorn-JavaScript-Engine wird verwendet, um benutzerdefinierte Regelausdrücke ohne jegliche Sandboxing, Sicherheitsmanager oder ClassFilter-Einschränkungen auszuwerten. Dadurch können Angreifer direkt aus dem JavaScript-Kontext auf Java-Klassen zugreifen.

**Fehler 2: Deaktivierte Groovy-Sandbox**

Die Groovy-Skript-Engine verfügte über einen registrierten GroovyDenyAllFilter, um die Codeausführung zu verhindern, doch diese Filterregistrierung wurde im Codebase auskommentiert. Nur auf API-Ebene gab es eine Groovy-Durchsetzung (RulesResourceImpl.java:262), während JavaScript keinerlei Einschränkungen hatte.

### Anfällige Codepfade```
RulesResource.java (lines 153-158)
    |
    > POST request handler for rule creation
    |
    v
RulesetDeployment.java (line 368)
    |
    > scriptEngine.eval(ruleExpression)
    |
    v
Nashorn Engine
    |
    > No ClassFilter / SecurityManager
    > Java.type() accessible
    > Runtime.exec() available

Autorisierungsumgehung

Die Schwachstelle betrifft authentifizierte Benutzer mit der Rolle write:rules. Die Autorisierungsprüfung in RulesResourceImpl.java:262 blockiert Groovy nur für Nicht-Superuser:``` if (!isUserSuperuser && isGroovy) { throw new UnauthorizedException("Groovy rules not allowed"); }

Das bedeutet:
- Nicht-Superuser KÖNNEN JavaScript-Regeln erstellen (kein Block)
- Nicht-Superuser KÖNNEN KEINE Groovy-Regeln erstellen (blockiert)
- JavaScript verfügt über keine Sandboxing, daher ist eine Ausnutzung für jeden authentifizierten Benutzer mit write:rules möglich

Darüber hinaus kann die Mandantenisolierung über Reflection auf den assetStorageService umgangen werden, um auf Daten anderer Realms zuzugreifen.
Tool herunterladen