CVE-2024-55556
moderateUnauthenticated RCE in Crater Invoice via Laravel APP_KEY and tampered session cookie
Crater Invoice, a self-hosted Laravel-based invoicing application, contains a deserialization flaw (CWE-502) that allows an unauthenticated attacker to achieve remote command execution. The attack requires knowledge of the application's Laravel APP_KEY: with it, the attacker can decrypt the laravel_session cookie, alter the serialized data inside it, re-encrypt the value, and send it back, causing the server to deserialize attacker-controlled data and execute commands. Successful exploitation yields full remote command execution on the host, consistent with the critical 9.8 CVSS score covering confidentiality, integrity, and availability. Any internet-reachable Crater instance whose APP_KEY is known, guessed, or leaked is exposed; related reporting indicates over 600 Laravel apps have leaked APP_KEYs committed on GitHub. No public proof-of-concept or confirmed in-the-wild exploitation is known, but EPSS assigns a 44.1% probability of exploitation within 30 days, so preemptive mitigation is warranted.
What to do: Check whether your Crater deployment's APP_KEY has ever been committed to a repository or otherwise disclosed, and rotate it if so, noting that rotation invalidates existing sessions. Limit internet exposure of the instance (restrict access or place it behind a VPN/reverse proxy with access controls) until patched, and apply the vendor's update as soon as a fixed release is published, since no fixed version is specified in the available data.
| Crater (open-source project) Crater Invoice | — |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
A vulnerability in Crater Invoice allows an unauthenticated attacker with knowledge of the APP_KEY to achieve remote command execution on the server by manipulating the laravel_session cookie, exploiting arbitrary deserialization through the encrypted session data. The exploitation vector of this vulnerability relies on an attacker obtaining Laravel's secret APP_KEY, which would allow them to decrypt and manipulate session cookies (laravel_session) containing serialized data. By altering this data and re-encrypting it with the APP_KEY, the attacker could trigger arbitrary deserialization on the server, potentially leading to remote command execution (RCE). The vulnerability is primarily exploited by accessing an exposed cookie and manipulating it using the secret key to gain malicious access to the server.
- Weakness
- CWE-502
- Vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H