Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege user
-
ExploitSubmit encoded ../ traversal to /image/{path}
-
ExecutionBypass prefix check before canonicalization
-
ImpactRead .env and disclose APP_KEY/DB credentials
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 | Exploitation requires an authenticated Lychee account (PR:L) AND the supported but non-default configuration where temporary_image_link_enabled is enabled, temporary_image_link_when_logged_in is disabled, and secure_image_link_enabled is disabled. Under default settings the vulnerable GET /image/{path} path is not reachable in this exploitable mode, which materially limits exposure. The flaw lies in SecurePathController concatenating the attacker-controlled path with the local storage root and running a string-prefix check BEFORE canonicalizing dot segments, so encoded traversal sequences (e.g. '../.env') pass validation and are later resolved by filesystem operations. Impact is bounded to files readable by the web server process (application configuration including APP_KEY/DB credentials, and other users' private images); it is a read-only disclosure with no direct write or availability effect. Fixed in 7.6.4, which adds pre-validation rejecting '..', '%2e', '%2f', and '\\' and canonicalizes via realpath(). |
| Impact | The vendor-supplied CVSS 4.0 score of 8.9 (CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:H) rates this High/Critical, but several signals temper the real-world urgency. The AT:P metric explicitly encodes that exploitation requires a specific non-default configuration (temporary_image_link_enabled on, temporary_image_link_when_logged_in off, secure_image_link_enabled off), and PR:L confirms an authenticated account is required - so this is not a drive-by unauthenticated bug. No EPSS score, no CISA KEV listing, and no public exploit code were provided; a proof-of-concept traversal test case ('../.env') ships inside the vendor's own fix (SecureImageLinksTest.php), which demonstrates the mechanism but is a regression test rather than a weaponized public exploit. The vendor's VI:H/VA:N and subsequent-system SI:H/SA:H ratings appear generous for what is fundamentally an arbitrary file-READ primitive - direct impact is confidentiality (CWE-22 disclosure); the integrity/availability and subsequent-system scores are justified only by the CHAINED consequence that a leaked APP_KEY or database credentials could enable further compromise. Net assessment: a genuine confidentiality flaw worth patching, but its practical priority is moderated by the required authentication AND the required non-default configuration, which together make widespread opportunistic exploitation unlikely. Exploitation status: no public exploit identified at time of analysis. |
| Exploit ScenarioDerived | On a Lychee instance running the specific non-default link configuration, an attacker who holds any low-privilege authenticated account sends a GET /image/{path} request whose path contains encoded directory-traversal segments. Because SecurePathController performs a string-prefix check before canonicalizing dot segments, the request escapes the storage root and the filesystem resolves it to sensitive files such as .env, disclosing the APP_KEY and database credentials as well as other users' private images. A working traversal path ('../.env') is demonstrated in the test added by the fixing commit. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Authenticated path traversal in Lychee photo-management tool prior to 7.6.4 allows any logged-in user to read files accessible to the web process - including the application's .env file with APP_KEY and database credentials, and other users' private images - by sending encoded traversal segments to GET /image/{path}. Exploitation is not unconditional: it requires the supported but non-default configuration with temporary_image_link_enabled on and both temporary_image_link_when_logged_in and secure_image_link_enabled off, so default installations do not expose the vulnerable code path in an exploitable state. The impact is read-only information disclosure (no write or availability effect) and disclosure of APP_KEY or DB credentials can escalate to further compromise; no public exploit was identified at time of analysis, and the vendor fixed the flaw in 7.6.4.
RemediationAI
Vendor-released patch: 7.6.4 - upgrade to Lychee 7.6.4 or later (release https://github.com/LycheeOrg/Lychee/releases/tag/v7.6.4, advisory https://github.com/LycheeOrg/Lychee/security/advisories/GHSA-j5ff-34x8-xxqg), which adds pre-validation rejecting '..', '%2e', '%2f' and '\' plus realpath() canonicalization in SecurePathController. If immediate upgrade is not possible, the most direct compensating control is to keep temporary_image_link_enabled disabled (its default state); the vulnerable code path only becomes exploitable in the non-default combination where temporary image links are on while temporary_image_link_when_logged_in and secure_image_link_enabled are both off, so reverting either setting to its secure value removes the exposure - the trade-off being that clients relying on shareable unauthenticated temporary image links will no longer receive them and must use the normal authenticated image endpoints instead. Because the flaw permits reading files owned/readable by the web process, assume credentials may have leaked in any instance that ran the vulnerable configuration: rotate APP_KEY (its disclosure enables decryption and signed-token/session forgery) and rotate database credentials, then clear the Laravel cache/config cache so old signed artifacts are invalidated. Additionally, run the PHP/web process with the least filesystem privileges and move .env and database files outside the web process's readable set where operationally feasible, and consider edge/WAF rules that reject request paths containing '..', '%2e' or '%2f' on /image/* as a defense-in-depth measure - noting such rules can be bypassed by further encoding variants and are not a substitute for the 7.6.4 patch.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Lychee is a Laravel (PHP) application, and the affected component is SecurePathController, which serves GET /image/{path} for temporally signed image links. The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory, i.e. path traversal): the controller concatenates the attacker-controlled path onto the local storage root returned by Storage::disk(StorageDiskType::LOCAL)->path($path) and performs a string-prefix validation before dot segments are canonicalized. Encoded traversal sequences (for example ../.env, or %2e/%2f encodings) therefore survive the prefix check and are only resolved later by filesystem operations, escaping the intended storage directory. The upstream fix in PR 4465 introduces a prevalidation_path() routine that rejects the literal and encoded sequences '..', '%2e', '%2f' and '\' and wraps the resolved path in Safe\realpath(), throwing a WrongPathException when canonicalization fails, which guarantees the final path is the canonicalized target rather than a lexically-prefixed string; the same PR also adds a testPathTraversalIsForbidden regression test that requests a '../.env' path and expects a 418 response. The vulnerable mode is only reachable when temporary_image_link_enabled is enabled while temporary_image_link_when_logged_in and secure_image_link_enabled are disabled - a supported but non-default combination - which is why the assessed vector is CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N rather than the vendor's higher CVSS 4.0 rating.
Know when Lychee 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:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:H
Authenticated user (PR:L) over the network (AV:N); the required non-default configuration maps to AC:H; read-only file disclosure gives C:H with I:N/A:N and scope unchanged.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Lychee is a free, open-source photo-management tool. Prior to 7.6.4, SecurePathController, which serves GET /image/{path}, concatenates the attacker-controlled path with the local storage root and performs a string-prefix check before canonicalizing dot segments. Under the supported non-default configuration with temporary_image_link_enabled enabled, temporary_image_link_when_logged_in disabled, and secure_image_link_enabled disabled, any authenticated user can submit encoded traversal segments that pass the prefix check and are later resolved by filesystem operations. This permits reading files available to the web process, including application configuration and other users' private images, and disclosed APP_KEY or database credentials can enable further compromise. This issue is fixed in version 7.6.4.
Technical POC Analysis
CWE-22 (Improper Limitation of a Pathname to a Restricted Directory).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Lychee, an open-source photo management platform, is affected by CVE-2026-62679, a high-severity file disclosure flaw that allows any authenticated user to read files the web process can access - including the application's .env file, database credentials, and other users' private images. The vulnerable code path is only reachable on non-default configurations that enable temporary image links while leaving logged-in and secure link protections disabled; no public exploit code has been identified at time of analysis. Leadership should care because leakage of the application key or database credentials can escalate into broader compromise of the platform and unauthorized exposure of private user content, carrying privacy and regulatory consequences.
Apply vendor patch. If immediate upgrade to Lychee 7.6.4 or later is not possible, disable temporary_image_link_enabled or enable secure_image_link_enabled and temporary_image_link_when_logged_in so the vulnerable code path is not reachable, restrict filesystem permissions on the application's .env file, and rotate APP_KEY and database credentials on any instance that ran the exploitable configuration.
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.
Cross-site Request Forgery (CSRF) vulnerability in Lychee version 3.1.6, allows remote attackers to execute arbitrary co
Cross Site Scripting (XSS) vulnerability in Lychee 3.1.6, allows remote attackers to execute arbitrary code and obtain s
Lychee is a free photo-management tool. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable,
Lychee photo management tool versions before 7.1.0 contain an authorization bypass in the album password unlock mechanis
Paid fulfillment bypass in Lychee (Supporter/Pro editions) before 7.7.0: the checkout validators accept any OmnipayProvi
Unauthenticated buyers on Lychee instances running the Supporter/Pro webshop can tamper with the parameters handed to th
Unauthenticated attackers who know the shared identifier of a public, password-protected Lychee album can pull down a ZI
Lychee photo-management instances running versions prior to 7.6.1 expose POST /api/v2/Album::unlock with no throttle, at
Denial of service in Lychee before 7.7.0 allows an authenticated user with upload/import permission to tie up image-proc
Unauthenticated remote attackers can retrieve a complete OpenAPI schema and repeatedly force CPU-intensive schema regene
Lychee-v3 3.2.16 is affected by a Cross Site Scripting (XSS) vulnerability in php/Access/Guest.php. Rated medium severit
Stored cross-site scripting in Lychee photo-management software (all versions prior to 7.6.0) allows an authenticated us
EUVD-2026-102192
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB