☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 9.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N 🐛 CWE-215
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-102628

CVE-2026-102628 Vulnerability in Laravel
📅 PUBLISHED: 2026-10-01 00:00 UTC 🔄 UPDATED: 2026-10-02 05:00 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: Unknown (Cadmos LTI application, cadmos.eummena.io; debug configuration present as of 2026-09-02)
CVSS VECTOR BREAKDOWN 9.3
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: C Scope Changed
C: H Confidentiality High
I: L Integrity Low
A: N Availability None
9.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-102628 is a configuration-exposure vulnerability in the Cadmos LTI application hosted at cadmos.eummena.io, where the Laravel framework was deployed with debug mode enabled (APP_DEBUG=true, APP_ENV=local) in a publicly accessible, internet-facing environment. An unauthenticated attacker can send a GET request crafted to trigger an unhandled exception, causing Laravel to render a detailed error page that discloses the full server environment — including all .env configuration variables — in plaintext. With a CVSS v3.1 base score of 9.3 (Critical), the flaw is trivially exploitable (AV:N/AC:L/PR:N/UI:N) and carries a scope change (S:C) because the leaked secrets can compromise systems beyond the vulnerable application itself.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The vulnerability class is CWE-215: Insertion of Sensitive Information Into Debugging Code. Laravel, like many PHP web frameworks, distinguishes between production and development execution contexts through environment variables. When APP_DEBUG is set to true, Laravel's exception handler renders verbose diagnostic output rather than a generic error page. Under the Ignition/Whoops-style error handler historically bundled with Laravel, that output includes:

  • The full stack trace of the exception, with file paths and code excerpts
  • The framework and PHP version
  • Request and server metadata
  • Environment variables loaded from the .env file

Critically, the NVD description states that the exposed environment includes "all .env configuration variables" rendered "in plaintext." The .env file in a Laravel deployment typically holds high-value secrets: APP_KEY (the application encryption key), database credentials (DB_USERNAME, DB_PASSWORD, DB_HOST), mail/SMTP credentials, third-party API keys, cache and session driver credentials (Redis/Memcached), and cloud storage keys. Disclosure of APP_KEY alone is severe: Laravel uses it for encryption, cookie signing, and password-reset token generation, so leakage can enable session forgery or decryption of protected data.

The simultaneous presence of APP_ENV=local compounds the issue. Laravel uses the local environment designation to enable developer-oriented behavior, and pairing it with a publicly reachable host indicates a staging or misconfigured production deployment that was never hardened. The attack surface is the public HTTP endpoint: no authentication is required, and no special tooling is needed — only a request that induces an unhandled exception (for example, malformed input, an invalid route parameter, or a type error surfaced to the exception handler). Because the exception handler is invoked on error paths rather than normal request paths, exploitation requires little more than identifying an input that the application fails to handle gracefully.

The specific request pattern, parameter, and endpoint that trigger the exception are not disclosed in the available data, and no public proof-of-concept exists. The precise URI, parameter name, and code path are therefore not asserted here.

Exploitation Scenarios

The following chain is inferred from the vulnerability class (CWE-215 / debug-mode information exposure). The exact trigger request and endpoint are not specified in available intelligence; no public PoC is available.

  1. Reconnaissance / target identification. An attacker enumerates internet-facing Laravel applications. Fingerprinting can rely on distinctive framework artifacts (e.g., cookies, error page structure, response headers) or targeted queries against internet-wide scan services. The Cadmos LTI host at cadmos.eummena.io is publicly reachable, so no internal access is required.

  2. Triggering the flaw class. Because debug mode is enabled, any request that produces an unhandled exception causes the framework to return a verbose error response. The attacker submits a GET request designed to break normal handling — for example, supplying input that fails type validation, references a missing resource, or otherwise raises an exception the application does not catch. On a properly configured production deployment (APP_DEBUG=false), the same request would yield a generic error with no sensitive content.

  3. Payload / execution (vulnerability-class level). The "payload" here is not code execution but a malformed request that induces the exception. The server's verbose error output then reveals the environment block, including every variable from .env. The attacker captures this response and parses it for secrets.

  4. Post-exploitation impact. With leaked credentials and keys, the attacker can pivot beyond the web app — consistent with the CVSS scope change (S:C) and High confidentiality (C:H). Typical follow-on actions include authenticating to the backend database, accessing third-party services with stolen API keys, decrypting or forging Laravel-encrypted data/cookies using the leaked APP_KEY, and moving laterally to systems those secrets protect. Integrity impact is scored Low (I:L), reflecting that the primary effect is disclosure that enables further compromise rather than direct, guaranteed modification of the application.

Impact Assessment

  • Confidentiality: High (C:H). The full .env contents — database credentials, mail credentials, API keys, and the application encryption key — are exposed to an unauthenticated attacker. This is a complete loss of confidentiality for the application's secret material.
  • Integrity: Low (I:L). Exposure does not by itself alter data, but the stolen APP_KEY and database credentials materially raise the risk of downstream tampering and forged tokens.
  • Availability: None (A:N). No availability impact is described.
  • Scope: Changed (S:C). The vulnerable component is the web application, but the disclosed secrets grant access to other components (databases, third-party services, session infrastructure), so impact crosses a security-authority boundary.
  • Base score: 9.3 (Critical), vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N. Exploitation requires no privileges, no user interaction, and only network access, and the attack complexity is low.

Blast radius. Any system reachable with the leaked credentials is in scope — most notably the application database, external APIs tied to leaked keys, and any Laravel-signed sessions or encrypted data. Because secrets are long-lived, the exposure persists until they are rotated. EPSS has not yet been assigned by FIRST.org, and the CVE is not listed in CISA KEV; there is no confirmed exploit-in-the-wild evidence at this time.

Detection Guidance

Sigma Rule

title: Laravel Debug Mode Information Exposure via Unhandled Exception
id: 7c9f3a2e-1b64-4d21-9e77-cadmos-lti-2026
status: experimental
description: Detects HTTP responses from Laravel applications that leak debug/stack-trace
  content and .env environment variables, consistent with APP_DEBUG=true (CVE-2026-102628).
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2026-102628
author: valtersit.com
date: 2026-09-02
logsource:
  category: webserver
detection:
  selection_status:
    cs-method: 'GET'
  selection_debug_markers:
    response_body|contains:
      - 'APP_DEBUG'
      - 'APP_KEY'
      - 'APP_ENV'
      - 'Ignore this error and continue'
  selection_trace_markers:
    response_body|contains:
      - 'Whoops'
      - 'Laravel'
      - 'Stack trace'
  condition: selection_status and (selection_debug_markers or selection_trace_markers)
fields:
  - c-ip
  - cs-uri
  - sc-status
falsepositives:
  - Internal development/staging hosts not exposed to untrusted networks
  - Security scanners and penetration testing in authorized scopes
level: high
tags:
  - attack.t1190
  - cve.2026-102628
  - cwe.215

YARA Rule

rule CVE_2026_102628_Laravel_Debug_Env_Disclosure
{
    meta:
        description = "Detects Laravel debug/exception pages leaking .env environment variables (CVE-2026-102628)"
        author = "valtersit.com"
        date = "2026-09-02"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-102628"
        cve = "CVE-2026-102628"
        cwe = "CWE-215"

    strings:
        $env1 = "APP_DEBUG" ascii wide nocase
        $env2 = "APP_KEY" ascii wide nocase
        $env3 = "APP_ENV" ascii wide nocase
        $env4 = "DB_PASSWORD" ascii wide nocase
        $env5 = "DB_USERNAME" ascii wide nocase
        $trace1 = "Whoops" ascii nocase
        $trace2 = "Stack trace" ascii nocase
        $trace3 = "Ignore this error and continue" ascii nocase

    condition:
        filesize < 5MB and
        (
            (2 of ($env*)) and
            (1 of ($trace*))
        )
}

Suricata IDS Rule

alert http any any -> any any (msg:"CVE-2026-102628 Laravel Debug Mode Environment Disclosure"; flow:established,to_client; http.method; content:"GET"; http.response_body; content:"APP_DEBUG"; http.response_body; content:"APP_KEY"; http.response_body; content:"Laravel"; classtype:attempted-recon; reference:cve,2026-102628; reference:url,nvd.nist.gov/vuln/detail/CVE-2026-102628; metadata:affected_product Laravel, cve CVE_2026_102628; sid:2026102628; rev:1;)

Elastic Detection

sequence by source.ip with maxspan=5m
  [ network where http.request.method == "GET" and
      http.response.status_code >= 500 ]
  [ network where http.response.body : ("APP_DEBUG" and "APP_KEY") ]

Splunk SPL Query

index=web sourcetype=access_combined OR sourcetype=laravel
| eval body=_raw
| search (body="APP_DEBUG" AND body="APP_KEY")
         OR (body="Whoops" AND body="Laravel" AND body="Stack trace")
| stats count min(_time) as first_seen max(_time) as last_seen
        values(uri) as uris values(src_ip) as src_ips by host
| where count > 0

Wazuh OSSEC Rule

<group name="web,laravel,cve_2026_102628,">
  <rule id="2026102628" level="12">
    <decoded_as>json</decoded_as>
    <match>APP_DEBUG|APP_KEY|APP_ENV</match>
    <match>Whoops|Laravel|Stack trace|Ignore this error and continue</match>
    <description>CVE-2026-102628: Laravel debug page leaking .env environment variables</description>
    <mitre>
      <id>T1190</id>
    </mitre>
    <group>cve_2026_102628,information_disclosure,</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source). The vendor reportedly disabled debug mode on the Cadmos LTI host on or before 2026-09-02, but no versioned fix, advisory, or CVE-specific patch is available. Treat any deployment with debug mode enabled in a public environment as affected.

  1. Immediate mitigations

    • Set APP_DEBUG=false on every internet-facing deployment. Set APP_ENV=production for public hosts; local must never be exposed publicly.
    • Ensure error responses return generic messages and never render stack traces or environment data. Verify via a deliberately induced exception that no .env content appears.
    • Because exploitation only requires a GET request, assume any publicly exposed instance with debug mode enabled has already leaked its secrets. Rotate all secrets in the .env immediately: APP_KEY, database credentials, mail/SMTP credentials, cache/session credentials, and third-party API keys. Rotating APP_KEY invalidates signed cookies and tokens; plan for user session invalidation.
    • Restrict direct public reachability of administrative/staging hosts behind authentication or network allowlists.
  2. Patch / upgrade steps

    • No CVE-specific patch exists. Apply the operational fix: set APP_DEBUG=false, APP_ENV=production, clear the config cache (php artisan config:clear / php artisan config:cache), and redeploy so the new environment values take effect.
    • Update Laravel and its dependencies to a current supported release and review the framework's exception-handling configuration for safe defaults.
  3. Long-term hardening

    • Enforce environment configuration through CI/CD policy checks that fail builds when APP_DEBUG=true is detected for any public tier.
    • Externalize secrets to a managed secrets store rather than a plaintext .env file, limiting what a single disclosure can yield.
    • Apply least privilege to database and API credentials so leaked keys have minimal reach.
    • Continuously monitor for framework debug signatures and 5xx responses containing environment markers; alert on any occurrence.
    • Since no public PoC, Nuclei template, or exploit code is currently known, prioritize detection of the exposure itself over signature-based exploit matching.

References

No threat actor campaigns or exploit-in-the-wild evidence are associated with this CVE in the available data. The CVE is not listed in CISA KEV.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

product:"Laravel"
title:"Laravel"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-102628/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.