Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-39842 — Vulnerabilidade crítica de execução remota de código no Rules Engine do OpenRemote permite que usuários autenticados com a função `write:rules` executem código arbitrário no servidor com privilégios de root. | Kitploit
Ferramentas/GitHubGitHub/keraattin/cve-2026-39842
ReconhecimentoScanners de VulnerabilidadesAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de Penetração
GitHubkeraattin/cve-2026-39842

CVE-2026-39842

Vulnerabilidade crítica de execução remota de código no Rules Engine do OpenRemote permite que usuários autenticados com a função `write:rules` executem código arbitrário no servidor com privilégios de root.

Ver Repositório
112há 5 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-39842: Injeção de Expressão RCE no Rules Engine do OpenRemote

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

TL;DR

Vulnerabilidade crítica de execução remota de código no Rules Engine do OpenRemote permite que usuários autenticados com a função write:rules executem código arbitrário no servidor com privilégios de root.

  • Pontuação CVSS: 10.0 (Crítica)
  • Vetor CVSS: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
  • Versões Afetadas: OpenRemote <= 1.21.0
  • Versão Corrigida: OpenRemote >= 1.22.0
  • Autenticação Necessária: Sim (função write:rules, pode ser não-superusuário)
  • Exploração: RCE como usuário root, acesso ao sistema de arquivos, roubo de variáveis de ambiente, violação de dados multi-tenant
  • Aviso: GHSA-7mqr-33rv-p3mp

Índice

  • Fatos Rápidos
  • O que é o OpenRemote?
  • Análise Aprofundada da Vulnerabilidade
  • Análise de Impacto
  • Versões Afetadas
  • Detecção
  • Indicadores de Comprometimento
  • Remediação
  • Referências
  • Autor

Fatos Rápidos

AspectoDetalhes
ID CVECVE-2026-39842
ID GHSAGHSA-7mqr-33rv-p3mp
Tipo de VulnerabilidadeInjeção de Código / Injeção de Linguagem de Expressão
Pontuação CVSS10.0 (Crítica)
CWECWE-94, CWE-917
ProdutoOpenRemote
Versões Afetadas<= 1.21.0
Versão Corrigida>= 1.22.0
Autenticação NecessáriaSim
Nível de Privilégio NecessárioFunção write:rules (não-superusuário)
Endpoints VulneráveisPOST /api/{realm}/rules/realm, POST /api/{realm}/rules/asset
Nível de Execução RCEroot
ExplorabilidadeAlta
ComplexidadeBaixa
Data da Descoberta2026

O que é o OpenRemote?

O OpenRemote é uma plataforma IoT de código aberto para construir edifícios, cidades e indústrias inteligentes. Ela fornece gerenciamento de dispositivos, regras de automação, análises e integrações para o ecossistema da Internet das Coisas.

Principais Recursos

  • Gerenciamento de dispositivos e ativos em múltiplos protocolos (MQTT, Modbus, BACnet, HTTP)
  • Rules engine para automação de IoT e processamento de lógica
  • Arquitetura multi-tenant com controle de acesso baseado em funções
  • Painéis e monitoramento em tempo real
  • Criação de regras personalizadas usando múltiplas linguagens de script
  • API REST para integração e gerenciamento
  • Opções de implantação em nuvem e on-premises

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

---

## Análise Aprofundada da Vulnerabilidade

### Análise da Causa Raiz

A vulnerabilidade decorre de duas falhas críticas no Motor de Regras do OpenRemote:

**Falha 1: Motor JavaScript Nashorn sem Sandbox**

O motor JavaScript Nashorn do Java é usado para avaliar expressões de regras fornecidas pelo usuário sem qualquer sandbox, security manager ou restrições de ClassFilter. Isso permite que atacantes acessem classes Java diretamente do contexto JavaScript.

**Falha 2: Sandbox Groovy Desativado**

O motor de script Groovy tinha um GroovyDenyAllFilter registrado para impedir a execução de código, mas esse registro de filtro foi comentado no código. Apenas a aplicação da política Groovy existia no nível da API (RulesResourceImpl.java:262), mas o JavaScript não tinha restrições.

### Caminhos de Código Vulneráveis```
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 de Autorização

A vulnerabilidade afeta utilizadores autenticados com o papel write:rules. A verificação de autorização em RulesResourceImpl.java:262 apenas bloqueia Groovy para utilizadores que não são superutilizadores:``` if (!isUserSuperuser && isGroovy) { throw new UnauthorizedException("Groovy rules not allowed"); }

Isto significa:
- Utilizadores não-superusuários PODEM criar regras JavaScript (sem bloqueio)
- Utilizadores não-superusuários NÃO PODEM criar regras Groovy (bloqueado)
- JavaScript não tem sandboxing, pelo que a exploração é possível para qualquer utilizador autenticado com write:rules

Além disso, o isolamento multi-tenant pode ser contornado via reflexão no assetStorageService para aceder a dados de outros realms.
Baixar ferramenta