Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-39842 — Vulnerabilità critica di esecuzione remota di codice nel motore di regole di OpenRemote che consente agli utenti autenticati con ruolo `write:rules` di eseguire codice arbitrario sul server con privilegi di root. | Kitploit
Strumenti/GitHubGitHub/keraattin/cve-2026-39842
RicognizioneScanner di VulnerabilitàAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration Testing
GitHubkeraattin/cve-2026-39842

CVE-2026-39842

Vulnerabilità critica di esecuzione remota di codice nel motore di regole di OpenRemote che consente agli utenti autenticati con ruolo `write:rules` di eseguire codice arbitrario sul server con privilegi di root.

Vedi Repository
1125 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-39842: Iniezione di Espressioni in OpenRemote - RCE nel Rules Engine

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

TL;DR

Vulnerabilità critica di esecuzione remota di codice nel Rules Engine di OpenRemote che consente agli utenti autenticati con ruolo write:rules di eseguire codice arbitrario sul server con privilegi di root.

  • Punteggio CVSS: 10.0 (Critico)
  • Vettore CVSS: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
  • Versioni interessate: OpenRemote <= 1.21.0
  • Versione corretta: OpenRemote >= 1.22.0
  • Autenticazione richiesta: Sì (ruolo write:rules, può essere non-superuser)
  • Sfruttamento: RCE come utente root, accesso al file system, furto di variabili d'ambiente, violazione dei dati multi-tenant
  • Avviso: GHSA-7mqr-33rv-p3mp

Indice

  • Fatti rapidi
  • Cos'è OpenRemote?
  • Analisi approfondita della vulnerabilità
  • Analisi dell'impatto
  • Versioni interessate
  • Rilevamento
  • Indicatori di compromissione
  • Rimedio
  • Riferimenti
  • Autore

Fatti rapidi

AspettoDettagli
ID CVECVE-2026-39842
ID GHSAGHSA-7mqr-33rv-p3mp
Tipo di vulnerabilitàIniezione di codice / Iniezione di Expression Language
Punteggio CVSS10.0 (Critico)
CWECWE-94, CWE-917
ProdottoOpenRemote
Versioni interessate<= 1.21.0
Versione corretta>= 1.22.0
Autenticazione richiestaSì
Livello di privilegio necessarioRuolo write:rules (non-superuser)
Endpoint vulnerabiliPOST /api/{realm}/rules/realm, POST /api/{realm}/rules/asset
Livello di esecuzione RCEroot
SfruttabilitàAlta
ComplessitàBassa
Data di scoperta2026

Cos'è OpenRemote?

OpenRemote è una piattaforma IoT open-source per la creazione di edifici, città e industrie intelligenti. Fornisce gestione dei dispositivi, regole di automazione, analisi e integrazioni per l'ecosistema Internet of Things.

Caratteristiche principali

  • Gestione di dispositivi e asset su più protocolli (MQTT, Modbus, BACnet, HTTP)
  • Rules engine per l'automazione IoT e l'elaborazione della logica
  • Architettura multi-tenant con controllo degli accessi basato sui ruoli
  • Dashboard e monitoraggio in tempo reale
  • Creazione di regole personalizzate utilizzando più linguaggi di scripting
  • API REST per integrazione e gestione
  • Opzioni di distribuzione cloud e on-premises

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

## Analisi Approfondita della Vulnerabilità

### Analisi della Causa Radice

La vulnerabilità deriva da due difetti critici nel Rules Engine di OpenRemote:

**Difetto 1: Motore JavaScript Nashorn non sandboxed**

Il motore JavaScript Nashorn di Java viene utilizzato per valutare le espressioni delle regole fornite dall'utente senza alcuna sandbox, security manager o restrizioni ClassFilter. Ciò consente agli aggressori di accedere direttamente alle classi Java dal contesto JavaScript.

**Difetto 2: Sandbox Groovy disabilitato**

Il motore di scripting Groovy aveva un GroovyDenyAllFilter registrato per prevenire l'esecuzione di codice, ma questa registrazione del filtro era stata commentata nel codebase. Solo l'applicazione delle regole Groovy esisteva a livello API (RulesResourceImpl.java:262), ma JavaScript non aveva alcuna restrizione.

### Percorsi di Codice Vulnerabili```
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

Bypass dell'autorizzazione

La vulnerabilità colpisce gli utenti autenticati con il ruolo write:rules. Il controllo di autorizzazione in RulesResourceImpl.java:262 blocca solo Groovy per gli utenti non superuser:``` if (!isUserSuperuser && isGroovy) { throw new UnauthorizedException("Groovy rules not allowed"); }

Questo significa:
- Gli utenti non superuser POSSONO creare regole JavaScript (nessun blocco)
- Gli utenti non superuser NON POSSONO creare regole Groovy (bloccato)
- JavaScript non ha sandboxing, quindi lo sfruttamento è possibile per qualsiasi utente autenticato con write:rules

Inoltre, l'isolamento multi-tenant può essere aggirato tramite reflection su assetStorageService per accedere ai dati di altri realm.
Scarica lo strumento