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-44848-PoC — PoC para CVE-2026-44848: falta de autorización en Portainer en los endpoints de plugins de Docker -> RCE en el host (GHSA-rrmm-9v76-h3p4). Python solo con stdlib. | Kitploit
Herramientas/GitHubGitHub/boreas37/cve-2026-44848-poc
Autenticación y AutorizaciónSeguridad de ContenedoresAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de Seguridad de APIs
GitHubboreas37/cve-2026-44848-poc

CVE-2026-44848-PoC

PoC para CVE-2026-44848: falta de autorización en Portainer en los endpoints de plugins de Docker -> RCE en el host (GHSA-rrmm-9v76-h3p4). Python solo con stdlib.

Ver Repositorio
18hace 22 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-44848 — Portainer: Falta de autorización en los endpoints de plugins de Docker → RCE en el host

Prueba de concepto de CVE-2026-44848, una vulnerabilidad de falta de autenticación (CWE-862) en Portainer que permite a un usuario no administrador con acceso al endpoint de Docker realizar operaciones privilegiadas de plugins de Docker → RCE completo en el host.

Aviso de seguridad de GitHub: GHSA-rrmm-9v76-h3p4 · CVSS 9.4 (Crítico).

Causa raíz

Portainer aplica Control de Acceso Basado en Roles (RBAC) sobre la API de Docker mediante el proxy de solicitudes a través de manejadores por recurso que aplican comprobaciones de autorización. Los endpoints de gestión de plugins de Docker (/plugins/*) no estaban registrados con un manejador, por lo que la capa de autorización nunca se ejecuta para ellos. Como resultado, un Usuario Estándar (Rol 2) — o cualquier rol con acceso a nivel de endpoint — puede llamar a operaciones privilegiadas de plugins directamente contra el daemon de Docker subyacente:

  • POST /plugins/pull — extraer un plugin arbitrario de cualquier registro
  • el plugin solicita privilegios que incluyen CAP_SYS_ADMIN y montajes de rutas del host
  • POST /plugins/{name}/enable — Docker ejecuta el plugin como root en el host con esas capacidades → acceso completo al sistema de archivos del host y equivalente a root en el host de Docker

Versiones afectadas

  • >= 2.33.0, < 2.33.8
  • >= 2.39.0, < 2.39.2
  • >= 2.40.0, < 2.41.0

Lo que demuestra el PoC

La primitiva central del fallo, reproducible de forma segura: un usuario estándar (no administrador) puede alcanzar la API de Docker privilegiada /plugins/* a través del proxy de Portainer sin autorización. Lo hace de extremo a extremo contra una instancia real y vulnerable de Portainer:

  1. Inicializa un administrador mediante POST /api/users/admin/init (tolera 409 y recurre al inicio de sesión).
  2. Crea un Usuario Estándar (bob, Rol 2), tolerando 409 al restablecer su contraseña.
  3. Lista los endpoints de Docker (crea automáticamente el endpoint del socket local mediante multipart POST /api/endpoints si no existe ninguno) y concede a bob acceso mediante PUT /api/endpoints/{id} UserAccessPolicies.
  4. Inicia sesión como bob (el usuario no administrador) y llama a GET /api/endpoints/1/docker/plugins con el token de bob.
  5. HTTP 200 → el usuario estándar alcanzó el endpoint privilegiado → bypass de autenticación confirmado.

Uso

root@kitploit:~
# Defaults: https://localhost:9444, random admin password
python3 portainer_plugin_poc.py

# Explicit target + admin password + command
python3 portainer_plugin_poc.py --url https://localhost:9444 --admin-pass 'P@ssw0rd!' --command "id; hostname"

# Write a JSON summary
python3 portainer_plugin_poc.py --url https://localhost:9444 --output out.json

python3 portainer_plugin_poc.py --help

Requiere solo la biblioteca estándar de Python 3. La verificación TLS está deshabilitada (certificados de laboratorio autofirmados).

Laboratorio (reproducir)

root@kitploit:~
docker run -d --name portainer-lab-cve44848 \
  -p 127.0.0.1:9444:9443 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  portainer/portainer-ce:2.39.1   # vulnerable

Salida verificada

root@kitploit:~
AUTH-BYPASS CONFIRMED: standard user reached /plugins (HTTP 200)
=> PASS (missing auth / host-RCE primitive confirmed)

Referencias

  • GHSA-rrmm-9v76-h3p4
  • CVE-2026-44848 (NVD/cvefeed)

Descargo de responsabilidad

Solo para investigación y pruebas de seguridad autorizadas. El paso habilitador (POST /plugins/*) puede otorgar root en el host; este PoC se limita a demostrar el bypass de autorización y no habilita un plugin destructivo/malicioso. Úsalo solo contra sistemas que poseas o estés autorizado a probar.

Descargar herramienta