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-26897-EcoOnline-DeepLink — Advertência pública e PoC para CVE-2026-26897 — Bypass de Deep Link no EcoOnline EHS Android (com.airsweb.v10), corrigido na versão 0.2.500 | Kitploit
Ferramentas/GitHubGitHub/iwallplace/cve-2026-26897-ecoonline-deeplink
Segurança AndroidAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebPhishingTestes de PenetraçãoSegurança MóvelAprendizado e Educação

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
GitHub
iwallplace/cve-2026-26897-ecoonline-deeplink

CVE-2026-26897-EcoOnline-DeepLink

Advertência pública e PoC para CVE-2026-26897 — Bypass de Deep Link no EcoOnline EHS Android (com.airsweb.v10), corrigido na versão 0.2.500

Ver Repositório
13há 3 mesesAinda não revisado

EcoOnline EHS (Android) — Bypass de Validação de Deep Link → Open Redirect no WebView (CVE-2026-26897)

Divulgação pública / aviso para CVE-2026-26897, um bypass de validação de deep link no aplicativo Android EcoOnline EHS (com.airsweb.v10). Um deep link malicioso ehs-app:// é reescrito para https:// e carregado diretamente no WebView principal do aplicativo sem a verificação da lista de permissões de host que o aplicativo aplica em todos os outros caminhos de navegação, permitindo que um atacante remoto renderize conteúdo arbitrário controlado pelo atacante dentro do aplicativo confiável (phishing).

Divulgado de forma responsável, reconhecido pelo fornecedor e corrigido na versão 0.2.500.

✅ Status: CORRIGIDO

  • Versão vulnerável analisada: com.airsweb.v10 0.2.499 (versionCode 44631)
  • Versão corrigida: 0.2.500 (disponível na Google Play)
  • Ação para utilizadores: atualizar o aplicativo EcoOnline EHS para a versão mais recente.

Binário afetado (para verificação)

O aplicativo do fornecedor é proprietário e não é redistribuído neste repositório. A análise estática abaixo foi realizada na compilação identificada aqui — obtenha o APK exato de um arquivo (ex.: histórico de versões do APKPure) e verifique seu hash antes de reproduzir:

Pacotecom.airsweb.v10
versionName / versionCode0.2.499 / 44631
SHA-256e9e8a38d133cb9da9901caf03c4a7a033c75ad1f32ba0539260e47d5dd5068c0
FonteAPKPure — histórico de versões "EcoOnline EHS"

Resumo

CampoValor
ID do CVECVE-2026-26897
FornecedorEcoOnline ("EcoOnline Global") — https://www.ecoonline.com/
ProdutoEcoOnline EHS para Android (com.airsweb.v10)
Versão afetada0.2.499 (versionCode 44631)
Versão corrigida0.2.500
Tipo de vulnerabilidadeValidação inadequada em um manipulador de esquema de URL personalizado (bypass de deep link) → carga de WebView não validada / open redirect
CWECWE-939 (Autorização inadequada no manipulador de esquema de URL personalizado); relacionado CWE-749
Componente afetadocom.airsweb.v10.MainActivity (manipulador de deep link exportado) e o ramo de deep link em MainActivityKt.WebViewPage
Esquema personalizadoehs-app://
Tipo de ataqueRemoto (requer interação do utilizador — abrir um link malicioso)
ImpactoPhishing / engenharia social: conteúdo web arbitrário controlado pelo atacante renderizado dentro do aplicativo confiável EcoOnline EHS (ex.: um login falso), ignorando a lista de permissões de domínio do aplicativo
DescobridorAhmet Mersin

Descrição

O EcoOnline EHS para Android é um wrapper WebView Jetpack-Compose em torno da plataforma web EHS. Seu conteúdo padrão é carregado de:

startUrl = "https://ehsmobilelanding.ecoonline.net/"

O aplicativo exporta uma única Activity (MainActivity) que é tanto o lançador quanto o manipulador para o esquema de URL personalizado ehs-app. O elemento <data> do intent-filter de deep link declara apenas um esquema — sem host e sem caminho — então qualquer URI ehs-app://… é roteada para o aplicativo.

Para proteger a navegação do WebView, o aplicativo implementa uma lista de permissões de host (isInternalHost) e a aplica ao restaurar o último URL visitado. No entanto, o ramo de manipulação de deep link não chama essa lista de permissões. Ele pega a URI de deep link recebida, realiza uma substituição ingênua de string do esquema ehs-app: → https: e chama WebView.loadUrl() no resultado. Um atacante remoto pode, portanto, criar um deep link que faz com que o aplicativo confiável carregue uma origem https:// arbitrária.

Componente afetado

AndroidManifest.xml (v0.2.499) — deep link exportado, apenas esquema

<activity
    android:name="com.airsweb.v10.MainActivity"
    android:exported="true" ... >
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <data android:scheme="ehs-app"/>   <!-- apenas esquema: sem host, sem caminho -->
    </intent-filter>
</activity>

Causa raiz — ramo de deep link em MainActivityKt.WebViewPage (decompilado, v0.2.499)

// intent entregue à MainActivity exportada
if (intent.getScheme().equals("ehs-app")) {
    WebView webView = ...;
    if (webView != null) {
        Uri data = intent.getData();                       // URI completa ehs-app://…
        String s = String.valueOf(data);
        // reescrita ingênua de esquema: "ehs-app:" -> "https:"
        String url = StringsKt.replaceFirst(s, "ehs-app:", "https:", false, 4, null);
        webView.loadUrl(url);                              // <-- SEM verificação isInternalHost()
    }
}

A lista de permissões que este caminho deixa de aplicar (usada em outro lugar no mesmo arquivo):

private static final Regex internalDomains =
        new Regex("^[-\\w]*\\.(airsweb)|(ecoonline)\\.net");
private static final List<String> excludeDomainsStartingWith =
        listOf("passport", "login", "auth");

public static boolean isInternalHost(String host) {
    for (String p : excludeDomainsStartingWith)
        if (host.startsWith(p)) return false;
    return internalDomains.containsMatchIn(host);
}

Nota secundária: a regex internalDomains é em si fraca (alternância quebrada + correspondência de substring containsMatchIn), mas o problema principal é que o ramo de deep link nunca invoca isInternalHost.

Prova de Conceito

Uma gravação de tela PoC foi produzida em 2026-01-13 contra com.airsweb.v10 0.2.499.

  1. Instale a versão afetada (0.2.499) em um dispositivo Android.
  2. Entregue um deep link malicioso à vítima (ex.: por email, SMS, chat, QR ou página web):
    ehs-app://attacker.example/login
    
  3. Quando a vítima o abre, MainActivity reescreve o esquema e o WebView carrega:
    https://attacker.example/login
    
    dentro do aplicativo confiável EcoOnline EHS — nenhuma verificação de lista de permissões é realizada.
  4. A página do atacante é renderizada com a aparência e o chrome do aplicativo legítimo e pode, por exemplo, apresentar um login falso do EHS para capturar credenciais.

Uma demonstração benigna, sem captura do redirecionamento está incluída em poc/redirect-proof.html (uso: poc/README.md). Ela prova que uma origem arbitrária é carregada dentro do aplicativo confiável, sem entradas, sem captura de credenciais e sem requisições de rede.

No PoC original, o pesquisador hospedou uma página de destino semelhante benigna apenas para demonstrar o redirecionamento. Este aviso documenta a vulnerabilidade para fins defensivos / de divulgação e intencionalmente não contém nenhuma página de phishing ou código de captura de credenciais.

Impacto

  • Carrega conteúdo https:// arbitrário controlado pelo atacante dentro do contexto do aplicativo confiável.
  • Phishing / roubo de credenciais através de um prompt de login que parece ser originado do aplicativo real.
  • Spoofing de UI e aumento geral de engenharia social (a página maliciosa herda a confiança do aplicativo).

CVSS v3.1 (estimativa do pesquisador — finalizar antes da publicação): AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N → 6.3 (Médio) (um argumento de Escopo: Alterado pode ser feito, já que conteúdo não confiável é executado no contexto do aplicativo confiável).

Baixar ferramenta