NIS2 & DORA van kracht. EU AI Act volgt — boek een demo

Penetratietest Laravel: Debug Mode, Mass Assignment en Moderne PHP Beveiliging

Laravel domineert het PHP enterprise backend in Nederland, vooral in e-commerce (WooCommerce alternatieven), startups en gemeentelijke applicaties. Recente kwetsbaarheden zoals CVE-2024-29291 (debug mode RCE), CVE-2024-52301 (env unmasking) en CVE-2018-15133 (deserialisatie APP_KEY) hebben tienduizenden applicaties getroffen. Matproof Sentinel voert gerichte Laravel pentests uit met proof-of-exploit en audit-klare rapporten DORA / NIS2 / ISO 27001 vanaf €149.

Start gratis scan
MW
Geschreven door Malte Wagenbach
Oprichter van Matproof Security. Gespecialiseerd in AI-gestuurde penetratietests en EU-compliance (DORA, NIS2, BIO, ISO 27001).
Laatst beoordeeld: 17 mei 2026

Waarom Laravel specifieke pentest competenties vereist

Laravel is het meest geadopteerde PHP framework in Nederland voor e-commerce, gemeenten en SaaS startups. De recente kwetsbaarheden illustreren de structurele risico's. CVE-2024-29291 (CVSS 9.8) stelt Laravel applicaties met APP_DEBUG=true in productie bloot aan directe RCE via Ignition error page. CVE-2024-52301 maakt unmasking van .env waarden mogelijk via config caching manipulatie. CVE-2018-15133 (nog steeds actief in 2024 volgens Synopsys BSIMM 2024) maakt RCE mogelijk via deserialisatie van laravel_session cookie als APP_KEY uitlekt. Daarnaast introduceren Laravel-patronen unieke aanvalsoppervlakken: Eloquent mass assignment met verkeerde $fillable/$guarded, Blade template SSTI, route model binding type juggling. Voor Nederlandse organisaties onder DORA, NIS2/Cbw of AVG Art. 32 is een gedocumenteerde Laravel pentest een standaardelement van compliance.

  • CVE-2024-29291 (CVSS 9.8): debug mode RCE via Ignition in productie — directe RCE zonder authenticatie voor applicaties met APP_DEBUG=true.
  • CVE-2024-52301: env unmasking via config caching manipulatie — aanvaller kan gevoelige variabelen (DB_PASSWORD, AWS_SECRET, STRIPE_SECRET) verkrijgen.
  • CVE-2018-15133: deserialisatie laravel_session cookie als APP_KEY uitgelekt — nog steeds actief in 2024.
  • Mass assignment via Eloquent: verkeerde $fillable/$guarded configuratie staat privilege escalation toe (User::create($request->all()) → is_admin=true assignment).
  • Blade SSTI: @php / @eval directieven in template met niet-gesaneerde gebruikersinvoer → RCE; Blade @{{ }} bypass via specifieke encoding.
  • Laravel Sanctum / Passport JWT: misconfiguratie van scopes, accepteren van vervallen tokens, ontbrekende refresh token rotation.
  • Voor Nederlandse applicaties onder DORA Art. 24, NIS2/Cbw of AVG Art. 32 is gedocumenteerde Laravel pentest vereist als bewijs van technische compliance.

Wat we specifiek testen in een Laravel applicatie

  • Debug mode in productie (CVE-2024-29291): verificatie APP_DEBUG=false, afwezigheid van Ignition / Whoops error page, custom error handling die geen stack traces lekt.
  • Mass assignment kwetsbaarheden: audit van $fillable en $guarded in alle Eloquent modellen, verificatie bescherming tegen mass assignment op gevoelige velden (role, is_admin, balance).
  • Blade SSTI: zoeken naar @php / @eval directieven met gebruikersinvoer, test van Blade auto-escape bypass via @{!! !!} ongesaneerd.
  • Authentication: Laravel Sanctum / Passport configuratie audit, JWT signing (geen « alg: none »), session cookie flags, password hashing (bcrypt cost ≥ 12).
  • Authorization: Laravel Gates en Policies, audit voor ontbrekende authorization op API endpoints, IDOR via route model binding.
  • SQL injection via DB::raw / Eloquent: gebruik van raw queries met string concatenation, whereRaw() met gebruikersinvoer, orderBy() met door gebruiker gecontroleerde kolom.
  • File upload beveiliging: server-side mime type validatie, path traversal in filename, PHP file uitvoering in upload directory.
  • CSRF bescherming: @csrf token verificatie in alle forms, VerifyCsrfToken middleware configuratie, exception list.
  • Composition Analysis: composer.lock audit voor CVE in dependencies (laravel/framework, symfony/*, league/*), transitive audit.
  • Queue / Horizon: job serialisatie, exposed Horizon dashboard zonder auth, Redis credentials in plaintext.

Voorbeeldbevinding

Kritiek

Debug Mode actief in productie + Ignition blootgesteld — directe RCE (CVE-2024-29291)

De Laravel 10.x applicatie heeft APP_DEBUG=true in productie en Ignition (Laravel's interactieve error page) blootgesteld. CVE-2024-29291 staat een niet-geauthenticeerde aanvaller toe RCE te verkrijgen via het /_ignition/execute-solution endpoint. De test maakte uitvoering van willekeurige shell commando's mogelijk. De volgende werd verkregen: lezen van de volledige .env (DB password, Stripe secrets), shell toegang via system() voor filesystem discovery, mogelijkheid om persistente webshell te schrijven in storage/framework/views/.

Oplossing: Onmiddellijke actie (prioriteit 1): zet APP_DEBUG=false in productie .env en herbouw containers. Update Facade\Ignition naar gepatchte versie ≥ 2.5.2 (Laravel 8) of ≥ 1.16.16 (Laravel 7). Aanvullende acties: voeg middleware toe dat expliciet toegang tot /_ignition/* in productie blokkeert; roteer onmiddellijk alle potentieel uitgelekte secrets uit de .env (DB password, API keys, JWT secrets); audit access logs van /_ignition/* van laatste 90 dagen om potentiële pre-existing compromise te identificeren.

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

Pentest Laravel: opties vergeleken

Gratis scanMatproof SentinelTraditionele consultancy
Geautomatiseerde scan-engine✓ (3-min preview)✓ Volledige scan✗ Alleen handmatig
OWASP Top 10 dekkingGedeeltelijk✓ Volledig✓ Volledig
Proof-of-exploit bewijs✓ Per bevinding✓ Per bevinding
Regulatorische mapping (DORA/NIS2/ISO 27001)✓ Geautomatiseerd✓ Handmatig
Audit-geschikt PDF-rapport✓ Direct✓ 2–4 weken levertijd
Continue / terugkerende scans✓ Per deploy✗ Jaarlijkse opdracht
Tijd tot eerste resultaat~3 min~30 min volledige scan2–4 weken
Prijs€0Vanaf €149€8.000–€25.000
Broncode-review (SAST)✓ Growth-plan✓ In scope
API-tests (REST/GraphQL)✓ Geautomatiseerd✓ Handmatig

Pentest Laravel pakketten

Losse scan
€149 eenmalig
  • 1 volledige penetratietest-scan
  • AI-geprioriteerde bevindingen met CVSS 3.1
  • Proof-of-exploit per bevinding
  • PDF-rapport (geschikt voor audit)
  • Regulatorische mapping (DORA, NIS2, ISO 27001)
Losse scan kopen
Aanbevolen
Starter
€299 / maand
  • Onbeperkt scannen (tot 3 domeinen)
  • Continue monitoring
  • CI/CD-integratie (GitHub, GitLab)
  • Alle regulatorische mappings
  • Prioriteitsondersteuning
Start met Starter
Growth
€799 / maand
  • Onbeperkt scannen + domeinen
  • Geauthenticeerde / White-Box tests
  • API- en cloud-infrastructuurtests
  • Dedicated security account manager
  • SLA responstijd 24u
Contact voor Growth

Veelgestelde vragen over Laravel pentest

Welke Laravel versies zijn kwetsbaar voor CVE-2024-29291 (debug mode RCE)?

Alle Laravel applicaties met APP_DEBUG=true in productie en niet-gepatchte Facade\Ignition zijn kwetsbaar. De kwetsbaarheid treft Laravel 7.x, 8.x, 9.x, 10.x. Fix vereist: APP_DEBUG=false + Ignition update.

Testen jullie ook Lumen / Symfony / vanilla PHP applicaties?

Ja. Lumen (Laravel mini-framework) deelt bijna alle Laravel aanvalsoppervlakken. Symfony heeft eigen kwetsbaarheden (Twig SSTI, Doctrine ORM deserialisatie). Vanilla PHP testen we OWASP Top 10 standaard + PHP-specifiek.

Wat zijn de meest voorkomende Laravel patronen voor IDOR en privilege escalation?

Drie dominante patronen: (1) Route model binding zonder authorization — Route::get('/posts/{post}', ...) retourneert het bericht zelfs als het van een andere gebruiker is; (2) Mass assignment op User modellen — User::create($request->all()) staat role/is_admin assignment toe; (3) Eloquent relationships query manipulation.

Hoe lang duurt een volledige Laravel pentest?

Volledige geautomatiseerde scan: 60-90 minuten voor typische Laravel applicatie. Voor complexe applicaties: 2-3 uur. Audit-klaar rapport binnen 24 uur.

Kunnen we Matproof Sentinel integreren in onze Laravel pipeline (Forge, Vapor, Envoyer)?

Ja. Voor Laravel Forge: webhook integratie. Voor Laravel Vapor (AWS Lambda): CloudWatch + post-deployment scan. Voor Envoyer: GitHub Actions integratie. Critical/High findings kunnen deploy blokkeren via branch protection rules.

Is het rapport geaccepteerd voor AVG / NIS2 / Cbw audits in Nederland?

Ja. Het technische rapport levert het bewijs van « adequate technische maatregelen » vereist door AVG Art. 32 en UAVG. Voor Autoriteit Persoonsgegevens (AP) inspecties demonstreert het rapport regelmatig testen en remediation tracking.

Gerelateerde onderwerpen

Meer lezen — gerelateerde blogartikelen

Bescherm uw Laravel applicatie nu

Eerste scan in 3 minuten, volledige Laravel pentest in 60-90 minuten met proof-of-exploit voor elke bevinding. Audit-klaar rapport DORA / NIS2 / ISO 27001 vanaf €149.

Start gratis scan