NIS2 y DORA en vigor. EU AI Act es el próximo — reserva una demo

Test de Penetración Laravel: Debug Mode, Mass Assignment y Seguridad PHP Moderna

Laravel domina el backend PHP enterprise español, especialmente en e-commerce, startups SaaS, y aplicaciones del sector público local. Vulnerabilidades recientes como CVE-2024-29291 (debug mode RCE), CVE-2024-52301 (env unmasking) y CVE-2018-15133 (deserialización APP_KEY) han afectado a decenas de miles de aplicaciones. Matproof Sentinel realiza pentests Laravel dirigidos con prueba de explotación y reportes audit-ready DORA / NIS2 / ISO 27001 desde 149 €.

Iniciar escaneo gratuito
MW
Escrito por Malte Wagenbach
Fundador de Matproof Security. Especializado en pruebas de penetración impulsadas por IA y cumplimiento UE (DORA, NIS2, ENS, ISO 27001).
Última revisión: 17 de mayo de 2026

Por qué Laravel requiere competencias específicas de pentest

Laravel es el framework PHP más adoptado en España. CVE-2024-29291 (CVSS 9.8) expone aplicaciones Laravel con APP_DEBUG=true en producción a RCE directa mediante la página de error Ignition. CVE-2024-52301 permite el unmasking de valores .env mediante manipulación del config caching. CVE-2018-15133 habilita RCE mediante deserialización del cookie laravel_session si APP_KEY se filtra. Además, los patrones Laravel introducen superficies únicas: Eloquent mass assignment con $fillable / $guarded mal configurados, Blade template SSTI, route model binding con type juggling. Para empresas españolas bajo DORA o NIS2, un pentest Laravel documentado es estándar de conformidad.

  • CVE-2024-29291 (CVSS 9.8): debug mode RCE mediante Ignition en producción — afecta aplicaciones Laravel con APP_DEBUG=true no parcheadas, RCE directa sin autenticación.
  • CVE-2024-52301: env unmasking mediante manipulación del config caching — un atacante con acceso a rutas específicas puede obtener variables sensibles (DB_PASSWORD, AWS_SECRET, STRIPE_SECRET).
  • CVE-2018-15133: deserialización cookie laravel_session si APP_KEY se filtra — todavía activa en 2024.
  • Mass assignment via Eloquent: $fillable / $guarded mal configurados permiten privilege escalation (User::create($request->all()) → asignación is_admin=true).
  • Blade SSTI: directivas @php / @eval en template con entrada usuario no sanitizada → RCE.
  • Laravel Sanctum / Passport JWT: misconfiguración de scopes, expired token acceptance, refresh token rotation ausente.
  • Para aplicaciones españolas bajo DORA Art. 24, NIS2 o LOPDGDD Art. 32, un pentest Laravel documentado es requerido como prueba de conformidad técnica.

Qué testeamos específicamente en una aplicación Laravel

  • Debug mode en producción (CVE-2024-29291): verificación APP_DEBUG=false, ausencia de Ignition / Whoops error page, gestión errores custom sin leak de stack traces.
  • Mass assignment vulnerabilities: auditoría de $fillable y $guarded en todos los modelos Eloquent, verificación protección contra mass assignment en campos sensibles (role, is_admin, balance).
  • Blade SSTI: búsqueda directivas @php / @eval con entrada usuario, test bypass del Blade auto-escape mediante @{!! !!} no sanitizado.
  • Authentication: Laravel Sanctum / Passport configuración audit, firma JWT (sin « alg: none »), flags cookie sesión, password hashing (bcrypt cost ≥ 12).
  • Authorization: Laravel Gates y Policies, auditoría para missing authorization en API endpoints, IDOR mediante route model binding.
  • SQL injection via DB::raw / Eloquent: uso raw queries con string concatenation, whereRaw() con entrada usuario, orderBy() con columna controlada usuario.
  • File upload security: validación MIME type lado servidor (nunca confiar cliente), path traversal en filename, ejecución archivos PHP en directorio upload.
  • CSRF protection: verificación @csrf token en todos los forms, configuración VerifyCsrfToken middleware, lista excepciones.
  • Composition Analysis: composer.lock audit para CVE en dependencias (laravel/framework, symfony/*, league/*), auditoría transitive.
  • Queue / Horizon: serialización job, exposed Horizon dashboard sin auth, Redis credentials en plaintext.

Ejemplo de hallazgo

Crítico

Debug Mode activo en producción + Ignition expuesto — RCE directa (CVE-2024-29291)

La aplicación Laravel 10.x expone Ignition (la página de error interactiva Laravel) en producción con APP_DEBUG=true. CVE-2024-29291 permite a un atacante no autenticado obtener RCE mediante el endpoint /_ignition/execute-solution. El test permitió ejecución de comandos shell arbitrarios. Se obtuvieron: lectura .env completa (DB password, Stripe secrets), acceso shell mediante system() para discovery filesystem, posibilidad de escribir webshell persistente en storage/framework/views/.

Corrección: Acción inmediata (prioridad 1): establecer APP_DEBUG=false en .env de producción y rebuild containers. Actualizar Facade\Ignition a versión parcheada ≥ 2.5.2 (Laravel 8) o ≥ 1.16.16 (Laravel 7). Acciones complementarias: añadir middleware que bloquea explícitamente el acceso a /_ignition/* en producción; rotar inmediatamente todos los secrets potencialmente expuestos del leak .env (DB password, API keys, JWT secrets); auditoría log de acceso a /_ignition/* últimos 90 días.

Referencia: CVE-2024-29291 (CVSS 9.8) · CVE-2021-3129 · CWE-489 · OWASP A05:2021 · Laravel Security Best Practices

Pentest Laravel: opciones comparadas

Escaneo gratuitoMatproof SentinelConsultoría tradicional
Motor de escaneo automatizado✓ (vista previa 3 min)✓ Escaneo completo✗ Solo manual
Cobertura OWASP Top 10Parcial✓ Completa✓ Completa
Evidencia proof-of-exploit✓ Por hallazgo✓ Por hallazgo
Mapeo normativo (DORA/NIS2/ISO 27001)✓ Automatizado✓ Manual
Informe PDF listo para auditoría✓ Inmediato✓ Entrega 2–4 semanas
Escaneos continuos / recurrentes✓ Por despliegue✗ Encargo anual
Tiempo hasta el primer resultado~3 min~30 min escaneo completo2–4 semanas
Precio€0Desde €149€8.000–€25.000
Revisión de código fuente (SAST)✓ Plan Growth✓ En alcance
Pruebas de API (REST/GraphQL)✓ Automatizado✓ Manual

Paquetes Pentest Laravel

Escaneo único
€149 pago único
  • 1 escaneo pentest completo
  • Hallazgos priorizados por IA con CVSS 3.1
  • Proof-of-exploit por hallazgo
  • Informe PDF listo para auditoría
  • Mapeo normativo (DORA, NIS2, ISO 27001)
Comprar escaneo único
Recomendado
Starter
€299 / mes
  • Escaneos ilimitados (hasta 3 dominios)
  • Monitorización continua
  • Integración CI/CD (GitHub, GitLab)
  • Todos los mapeos normativos
  • Soporte prioritario
Iniciar Starter
Growth
€799 / mes
  • Escaneos + dominios ilimitados
  • Pruebas autenticadas / White-Box
  • Pruebas de API e infraestructura cloud
  • Account manager de seguridad dedicado
  • SLA de respuesta en 24h
Contactar para Growth

Preguntas frecuentes sobre el pentest Laravel

¿Qué versiones Laravel están afectadas por CVE-2024-29291?

Todas las aplicaciones Laravel con APP_DEBUG=true en producción y Facade\Ignition no parcheado son vulnerables. La vulnerabilidad afecta a Laravel 7.x, 8.x, 9.x, 10.x. Fix requiere: APP_DEBUG=false + Ignition actualizado.

¿Testean también aplicaciones Lumen / Symfony / vanilla PHP?

Sí. Lumen comparte casi toda la superficie de ataque Laravel. Symfony tiene sus propias vulnerabilidades (Twig SSTI, Doctrine ORM). Vanilla PHP: OWASP Top 10 estándar + PHP-specific.

¿Cuáles son los patrones Laravel más comunes para IDOR y privilege escalation?

Tres patrones: (1) Route model binding sin authorization; (2) Mass assignment en modelos User; (3) Eloquent relationships query manipulation. Testeamos los tres sistemáticamente.

¿Cuánto tiempo requiere un pentest Laravel completo?

Escaneo automatizado: 60-90 minutos para aplicación Laravel típica.

¿Podemos integrar Matproof Sentinel en pipeline Laravel (Forge, Vapor, Envoyer)?

Sí. Para Laravel Forge: webhook integration. Para Vapor (AWS Lambda): CloudWatch + post-deployment scan. Para Envoyer: GitHub Actions integration.

¿El informe es aceptado para auditorías LOPDGDD / AEPD en España?

Sí. El informe técnico proporciona la prueba de « medidas técnicas adecuadas » requerida por RGPD Art. 32 y LOPDGDD. Para inspecciones de AEPD, el informe demuestra testing regular y remediation tracking.

Temas relacionados

Profundiza — artículos relacionados del blog

Proteja su aplicación Laravel ahora

Primer escaneo en 3 minutos, pentest Laravel completo en 60-90 minutos. Informe audit-ready DORA / NIS2 / ISO 27001 desde 149 €.

Iniciar escaneo gratuito