Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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-2026-71204-PoC — PoC: asignación masiva por fusión ciega en la configuración de changedetection.io (CVE-2026-71204, Media 6.3) | Kitploit
Herramientas/GitHubGitHub/nel-droid/cve-2026-71204-poc
Autenticación y AutorizaciónAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad de APIs
GitHubnel-droid/cve-2026-71204-poc

CVE-2026-71204-PoC

PoC: asignación masiva por fusión ciega en la configuración de changedetection.io (CVE-2026-71204, Media 6.3)

Ver Repositorio
3hace 24 díasAún no revisado

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

CVE-2026-71204 — changedetection.io: una casilla de verificación omitida al guardar /settings desactiva silenciosamente la exigencia de clave API

Producto: dgtlmoon/changedetection.io — v0.55.7 Archivos: changedetectionio/blueprint/settings/__init__.py, changedetectionio/forms.py CWE: CWE-284 — Control de acceso inadecuado CVSS 3.1: AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:L — 6.3 (Media) CNA: Turan Security · registro de CVE

Descripción

El manejador de guardado de /settings de changedetection.io construye un dict de actualización a partir de form.data['application'] y lo fusiona a ciegas en la configuración almacenada de la aplicación mediante .update(). Debido a que las casillas de verificación HTML solo aparecen en los datos del formulario enviado cuando están marcadas, un POST manipulado que simplemente omite un campo de casilla relevante para la seguridad (como el que exige el requisito de clave API) es indistinguible, a nivel del manejador, de que el usuario la haya desmarcado en la interfaz — el .update() ciego desactiva silenciosamente esa configuración.

Impacto

Una solicitud que nunca establece explícitamente api_access_token_enabled (o equivalente) a false — simplemente deja el campo fuera del cuerpo del POST — da como resultado que la configuración de la aplicación se fusione con esa protección efectivamente deshabilitada, sin ningún paso de confirmación explícito ni señal de auditoría que distinga «el usuario desmarcó esto» de «el campo no se envió».

Reproducción

  1. Autentícate en la página /settings normalmente.
  2. En lugar de enviar el formulario completo tal como se muestra, envía un POST a /settings con el campo api_access_token_enabled (o cualquier otra configuración booleana protegida que se esté probando) omitido por completo del cuerpo, incluyendo solo campos no relacionados:
    root@kitploit:~
    POST /settings HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    application-some_other_field=value
    
  3. La fusión ciega form.data['application'] → .update() en el manejador de guardado de la configuración trata el campo ausente igual que un «desactivado» explícito, deshabilitando silenciosamente la protección sin que el usuario (o un auditor que revise la solicitud) vea una señal explícita de desactivación.

Causa raíz

Usar un .update() ciego de dict a partir de datos de formulario sin procesar confunde «campo ausente del POST» con «campo establecido explícitamente a false» para configuraciones basadas en casillas de verificación — los formularios HTML nunca envían casillas desmarcadas, por lo que este patrón no es seguro para ningún campo de configuración con implicaciones de seguridad.

Recomendación de corrección

Enumera explícitamente los campos booleanos de configuración esperados y establece por defecto los ausentes a su valor almacenado actual (no False), o usa una biblioteca de formularios que distinga «no enviado» de «enviado como desmarcado» y valide explícitamente los interruptores relevantes para la seguridad en lugar de hacerlo mediante una fusión ciega de dict.

Descargar herramienta