Executive brief
lamp-cloud is a Java microservices framework for rapid backend development. The chunk-check endpoint, used for file upload handling, contains a path traversal vulnerability that allows remote attackers to discover whether arbitrary files exist on the server and determine their exact file sizes—a form of information disclosure that could help attackers identify sensitive files or system configurations.
Technical details
The FileChunkController.java endpoint /chunk/check accepts a POST request with a `name` parameter that is directly concatenated into a file path without validation or canonicalization. An attacker can supply path traversal sequences (../) or absolute paths in the `name` field to escape the intended upload directory. The vulnerable code calls `Paths.get(uploadFolder, info.getName(), chunkIndex)` and then invokes `chunkCheck()`, which returns a boolean indicating both file existence and whether the supplied size matches the actual file size. This acts as an oracle for both file discovery and size disclosure. The endpoint is marked @Deprecated and @Hidden (excluded from Swagger docs) but remains reachable and unprotected by authorization checks, making it easy to overlook in deployments. An attacker can iterate over size values to binary-search and recover the exact length of any accessible file on the server.
Affected products
- dromara lamp-cloud up to 5.10.0
Timeline
- 2026-06-25: disclosed: Issue reported to project via GitHub issue #413
- 2026-08-14: advisory: CVE-2026-19758 published