Executive brief
Flight, a lightweight PHP web framework, contains a flaw where it automatically displays detailed error information to any user when a system error occurs. This information includes private server file paths, internal code structures, and potentially sensitive data like database passwords or API keys if they are included in error messages. Attackers can use these details to better understand the server's internal setup and launch more sophisticated attacks against the application.
Technical details
A sensitive information disclosure vulnerability exists in the Flight PHP framework's default error handler, Engine::_error(). Prior to version 3.18.1, the framework lacked 'debug gating,' meaning it would unconditionally write the full exception message, exception code, and stack trace (including absolute filesystem paths) directly into HTTP 500 responses. This behavior occurs in production environments, allowing unauthenticated remote attackers to trigger errors and harvest internal metadata. This leaked data can include interpolated secrets (like credentials in exception strings) and full module structures, which can be used to weaponize other vulnerabilities such as Local File Inclusion (LFI). The issue is resolved in version 3.18.1 by introducing a 'flight.debug' setting that defaults to false.
Affected products
- flightphp Flight < 3.18.1
Timeline
- 2026-04-29: advisory: GitHub Security Advisory published
- 2026-05-13: disclosed: CVE published to NVD