Laravel Voyager
CVE-2020-37214
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify exposed Voyager 1.3.0 instance
-
DeliveryCraft traversal payload in path parameter
-
ExploitRequest /admin/voyager-assets?path=../../.env
-
ExecutionRead arbitrary files (.env, /etc/passwd)
-
PersistHarvest APP_KEY/DB credentials
-
ImpactPivot to deeper compromise
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a deployed instance of Voyager 1.3.0 (the-control-group/voyager Laravel admin package) with the /admin/voyager-assets asset-serving endpoint reachable by the attacker. Per the CVSS vector exploitation is remote and unauthenticated (PR:N, UI:N, AC:L) with no special configuration needed beyond the vulnerable version being present and the voyager-assets route being network-accessible. Limiting factors: impact is read-only file disclosure (no write/RCE directly), and value depends on sensitive files being readable by the web-server user (e.g., Laravel .env typically is). Defenders should verify whether their deployment places the voyager-assets route behind authentication, since the '/admin' path prefix may differ from the stated unauthenticated reachability. |
| Impact | This is a credible, actionable issue despite not reaching emergency status. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) describes a remote, unauthenticated, low-complexity attack with no user interaction, and the impact is confidentiality-only (VC:H, VI:N, VA:N) - consistent with a path-traversal arbitrary-file-read. The EPSS score of 0.30% (53rd percentile) is modest, indicating no sign of broad automated mass-exploitation, but this understates practical risk because a public exploit DOES exist (Exploit-DB 47875) AND a ProjectDiscovery nuclei template (voyager-lfi.yaml) exists, meaning the flaw is trivially scannable at scale by opportunistic actors. It is NOT in CISA KEV, so there is no confirmation of active in-the-wild exploitation. Net: moderate CVSS (8.7) that is a genuine priority wherever Voyager 1.3.0 is internet-exposed, because the combination of unauthenticated access and turnkey tooling lowers the bar considerably; the main thing capping real-world severity is the limited (read-only) impact and the moderate deployment footprint of the product. One nuance to verify: the vulnerable route is /admin/voyager-assets, whose '/admin' prefix might suggest an authenticated area, yet the CVSS vector asserts PR:N (unauthenticated) - this is consistent with Voyager serving static assets through an unauthenticated route, but operators should confirm their deployment does not gate this route behind auth. |
| Exploit ScenarioDerived | A remote attacker with no credentials sends a GET request to /admin/voyager-assets with a traversal sequence in the 'path' parameter (e.g. ../../../../etc/passwd or ../../.env) and the application returns the file contents. Reading the Laravel .env file discloses APP_KEY, database credentials, and API secrets, enabling follow-on compromise. A public exploit (Exploit-DB 47875) and a nuclei detection template exist, making this point-and-shoot against exposed instances. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Oct 01, 2026
Unauthenticated directory traversal in the Laravel Voyager admin package (the-control-group/voyager) version 1.3.0 allows remote attackers to read arbitrary files from the server by manipulating the asset path parameter on the /admin/voyager-assets endpoint, exposing sensitive content such as /etc/passwd and Laravel .env configuration files. Exploitation requires only that a vulnerable instance be deployed with the voyager-assets route reachable over the network; according to the assessed CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/C:H/I:N/A:N), no credentials, user interaction, or special configuration are needed, and the impact is read-only information disclosure with no direct write or code-execution path. Publicly available exploit code exists (Exploit-DB 47875 and a ProjectDiscovery Nuclei template), so weaponized tooling is readily obtainable, though there is no confirmed actively exploited (CISA KEV) status and EPSS is modest at 0.30% (53rd percentile), placing this as a credible, actionable issue rather than an emergency.
Earlier versions of this analysis (1)
Voyager 1.3.0 contains a directory traversal vulnerability that allows attackers to access sensitive system files by manipulating the asset path parameter. Attackers can exploit the path parameter in /admin/voyager-assets to read arbitrary files like /etc/passwd and .env configuration files. [CVSS 7.5 HIGH]
RemediationAI
Patch status is not confirmed from the available data: the references supplied are GitHub release tags (v1.2.7 and v1.3.0) rather than a release explicitly labeled as the security fix, so there is no vendor-released patch version to cite with confidence - upgrade to the latest available Voyager release past 1.3.0 and verify the fix against the advisory at https://www.vulncheck.com/advisories/voyager-directory-traversal before considering the issue closed. Until a fixed version is validated, apply compensating controls: move the /admin/voyager-assets route behind authentication and authorization middleware in Laravel (side effect: the Voyager admin UI's own asset loading must run in an authenticated session, which is normally the case but must be tested), and where that is not feasible, restrict the route at the reverse proxy or WAF - for example an nginx location block on /admin/voyager-assets allowing only trusted admin IP ranges and returning 403 for everything else, or a rule rejecting path parameters containing '../' or encoded traversal sequences (trade-off: an overly broad block breaks admin theme and BREAD asset rendering). Harden the file layer by validating the asset path with realpath() and enforcing that the resolved path remains inside the intended assets directory, and by tightening file permissions so the PHP/web-server user cannot read files it does not need. Because .env disclosure is the primary risk, treat any confirmed exploitation as a credential compromise: rotate APP_KEY, database, mail, and third-party API secrets, and review access logs for requests to /admin/voyager-assets with traversal payloads. The publicly available Exploit-DB entry (https://www.exploit-db.com/exploits/47875) and the Nuclei template at https://github.com/projectdiscovery/nuclei-templates/blob/main/http/vulnerabilities/other/voyager-lfi.yaml can be used to build a safe detection or verification test against your own instances.
Affected ProductsAI
The affected product is the Laravel admin package Voyager (the-control-group/voyager), specifically version 1.3.0, which contains the vulnerable /admin/voyager-assets asset-serving endpoint; any Laravel application that has this package installed at that version and exposes the route to untrusted networks is in scope. The supplied references point to the project's GitHub release tags https://github.com/the-control-group/voyager/releases/tag/v1.3.0 and https://github.com/the-control-group/voyager/releases/tag/v1.2.7 (the latter described in its release notes as the final v1.2 release), plus the project homepage https://voyager.devdojo.com/ and the vendor advisory https://www.vulncheck.com/advisories/voyager-directory-traversal. Because no formal CPE or explicit version-range data was provided, downstream operators should inventory Composer dependencies for the-control-group/voyager and confirm the installed version and route exposure rather than relying on CPE-based scanning alone.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory, i.e. path traversal), implemented here as a local file inclusion vector inside Voyager's asset-serving route. Voyager is a Laravel-based administration/BREAD panel distributed as the Composer package the-control-group/voyager; its /admin/voyager-assets endpoint is designed to serve admin theme assets to the browser and accepts a caller-supplied path value. Because that value is passed to the underlying file-read logic without canonicalization or confinement to an assets directory, sequences such as ../ can escape the intended base path and resolve to arbitrary files on disk that are readable by the PHP/web-server user, which typically includes the application's Laravel .env file and system files like /etc/passwd. The vulnerability class is read-only file disclosure (VC:H with VI:N/VA:N in the assessed vector), so encryption of configuration secrets, database credentials, APP_KEY, and mail/SMTP credentials in .env makes exposure of that single file a meaningful secondary risk. Note that the supplied NVD CVSS 4.0 score is 8.7 while the authoritative internal assessment applies CVSS 3.1 with S:U/C:H/I:N/A:N; both agree on remote, low-complexity, unauthenticated access with high confidentiality impact, and the assessment adds the operational caveat that real-world reachability depends on whether the deployment exposes the voyager-assets route (the '/admin' prefix notwithstanding). No CPE strings were supplied, so affected scope is identified by package name and version rather than formal CPE matching.
Know when Laravel gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Remote unauthenticated path traversal (AV:N/AC:L/PR:N/UI:N) yielding arbitrary file read of sensitive files, so C:H with no integrity or availability impact.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
4DescriptionCVE.org
Voyager 1.3.0 contains a directory traversal vulnerability that allows attackers to access sensitive system files by manipulating the asset path parameter. Attackers can exploit the path parameter in /admin/voyager-assets to read arbitrary files like /etc/passwd and .env configuration files.
Executive ViewAI
Organizations running the third-party Laravel Voyager admin package at version 1.3.0 expose a network-reachable file-read weakness that requires no login, letting anyone who can reach the admin assets route pull server-side files such as .env configuration and /etc/passwd. Because .env files typically hold database credentials, API keys, and application secrets, the practical consequence is not just data exposure but a credible path to broader credential compromise and lateral movement into backend systems. Publicly available exploit code exists, so the skill barrier to abuse is low, though there is no confirmed actively exploited (CISA KEV) status and observed exploitation activity remains modest at an EPSS of 0.30%.
No vendor-released patch identified at time of analysis. Interim mitigations: block or disable the /admin/voyager-assets route at the WAF/reverse proxy; restrict all admin endpoints to VPN or allow-listed source IPs; remove the package if not required; rotate secrets from .env that may have been exposed; confirm .env sits outside the web root; and monitor for traversal patterns against admin asset paths.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
In Laravel framework through 5.5.21, remote attackers can obtain sensitive information (such as externally usable passwo
Laravel Livewire v3 through v3.6.3 contains a critical remote code execution vulnerability (CVE-2025-54068, CVSS 9.8) th
LaRecipe versions prior to 2.8.1 contain a Server-Side Template Injection (SSTI) vulnerability that can lead to Remote C
File upload bypass in FreeScout 1.8.206 — patch bypass for CVE-2026-27636. PoC and patch available. CVSS 10.0.
Remote code execution in FreeScout prior to version 1.8.206 allows authenticated users to upload `.htaccess` files that
In Laravel Framework through 5.5.40 and 5.6.x through 5.6.29, remote code execution might occur as a result of an unseri
Dokans SaaS e-commerce platform v3.9.2 has a CVSS 10.0 authentication bypass allowing unauthenticated attackers to obtai
Predictable password reset tokens in FreeScout help desk before 1.8.206. Weak random number generation allows attackers
Bagisto eCommerce platform before 2.3.10 is vulnerable to server-side template injection (SSTI) through customer address
Bagisto eCommerce platform (2.3 branch before 2.3.10) leaves installation API routes active after setup, allowing unauth
A vulnerability was found in laravel 5.1 and classified as problematic. Rated critical severity (CVSS 9.8), this vulnera
Laravel TokenGuard authentication bypass is a genuine high-priority issue, not an inflated CVSS score: unauthenticated a
NVD
CVE.org
EPSS
Exploit-DB
GitHub
VulDB