Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-39842 — Vulnérabilité critique d'exécution de code à distance dans le moteur de règles d'OpenRemote permettant aux utilisateurs authentifiés disposant du rôle `write:rules` d'exécuter du code arbitraire sur le serveur avec les privilèges root. | Kitploit
Outils/GitHubGitHub/keraattin/cve-2026-39842
ReconnaissanceScanners de VulnérabilitésAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'Intrusion
GitHubkeraattin/cve-2026-39842

CVE-2026-39842

Vulnérabilité critique d'exécution de code à distance dans le moteur de règles d'OpenRemote permettant aux utilisateurs authentifiés disposant du rôle `write:rules` d'exécuter du code arbitraire sur le serveur avec les privilèges root.

Voir le dépôt
112il y a 5 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-39842 : Injection d'expression dans OpenRemote — RCE dans le moteur de règles

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

TL;DR

Vulnérabilité critique d'exécution de code à distance dans le moteur de règles d'OpenRemote permettant aux utilisateurs authentifiés disposant du rôle write:rules d'exécuter du code arbitraire sur le serveur avec les privilèges root.

  • Score CVSS : 10.0 (Critique)
  • Vecteur CVSS : CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
  • Versions concernées : OpenRemote <= 1.21.0
  • Version corrigée : OpenRemote >= 1.22.0
  • Authentification requise : Oui (rôle write:rules, peut être un non-superutilisateur)
  • Exploitation : RCE en tant que root, accès au système de fichiers, vol de variables d'environnement, violation de données multi-locataires
  • Avis de sécurité : GHSA-7mqr-33rv-p3mp

Table des matières

  • Faits rapides
  • Qu'est-ce qu'OpenRemote ?
  • Analyse approfondie de la vulnérabilité
  • Analyse d'impact
  • Versions concernées
  • Détection
  • Indicateurs de compromission
  • Remédiation
  • Références
  • Auteur

Faits rapides

AspectDétails
ID CVECVE-2026-39842
ID GHSAGHSA-7mqr-33rv-p3mp
Type de vulnérabilitéInjection de code / Injection de langage d'expression
Score CVSS10.0 (Critique)
CWECWE-94, CWE-917
ProduitOpenRemote
Versions concernées<= 1.21.0
Version corrigée>= 1.22.0
Authentification requiseOui
Niveau de privilège requisRôle write:rules (non-superutilisateur)
Points de terminaison vulnérablesPOST /api/{realm}/rules/realm, POST /api/{realm}/rules/asset
Niveau d'exécution RCEroot
ExploitabilitéÉlevée
ComplexitéFaible
Date de découverte2026

Qu'est-ce qu'OpenRemote ?

OpenRemote est une plateforme IoT open source destinée à la construction de bâtiments, de villes et d'industries intelligents. Elle fournit la gestion d'appareils, des règles d'automatisation, des analyses et des intégrations pour l'écosystème de l'Internet des objets.

Fonctionnalités clés

  • Gestion des appareils et des actifs sur plusieurs protocoles (MQTT, Modbus, BACnet, HTTP)
  • Moteur de règles pour l'automatisation IoT et le traitement logique
  • Architecture multi-locataires avec contrôle d'accès basé sur les rôles
  • Tableaux de bord et surveillance en temps réel
  • Création de règles personnalisées à l'aide de plusieurs langages de script
  • API REST pour l'intégration et la gestion
  • Options de déploiement cloud et sur site

Architecture d'OpenRemote```

                  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 | └──────────────────────────────────┘

---

## Analyse approfondie de la vulnérabilité

### Analyse de la cause racine

La vulnérabilité provient de deux défauts critiques dans le moteur de règles d'OpenRemote :

**Défaut 1 : Moteur JavaScript Nashorn non sandboxé**

Le moteur JavaScript Nashorn de Java est utilisé pour évaluer les expressions de règles fournies par l'utilisateur sans aucun sandboxing, gestionnaire de sécurité ni restriction ClassFilter. Cela permet aux attaquants d'accéder directement aux classes Java depuis le contexte JavaScript.

**Défaut 2 : Sandbox Groovy désactivé**

Le moteur de scripts Groovy disposait d'un GroovyDenyAllFilter enregistré pour empêcher l'exécution de code, mais cet enregistrement de filtre a été commenté dans le code source. Seule l'application de Groovy existait au niveau de l'API (RulesResourceImpl.java:262), mais JavaScript n'avait aucune restriction.

### Chemins de code vulnérables```
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

Contournement de l'autorisation

La vulnérabilité affecte les utilisateurs authentifiés disposant du rôle write:rules. Le contrôle d'autorisation dans RulesResourceImpl.java:262 ne bloque Groovy que pour les non-superutilisateurs :``` if (!isUserSuperuser && isGroovy) { throw new UnauthorizedException("Groovy rules not allowed"); }

Cela signifie :
- Les non-superutilisateurs PEUVENT créer des règles JavaScript (aucun blocage)
- Les non-superutilisateurs NE PEUVENT PAS créer de règles Groovy (bloqué)
- JavaScript n'a pas de sandbox, donc l'exploitation est possible pour tout utilisateur authentifié disposant de write:rules

De plus, l'isolation multi-tenant peut être contournée via la réflexion sur assetStorageService pour accéder aux données d'autres realms.
Télécharger l’outil