Skip to main content

Deserialization of Untrusted Data

CVE-2024-55555

Severity High
Score 8.8/10

Summary

Invoice Ninja 5.8.22 through 5.10.10 allows remote code execution from a pre-authenticated route when an attacker knows the ''APP_KEY". This is exacerbated by ".env" files, available from the product's repository, that have default "APP_KEY" values. The "route/{hash}" route defined in the "invoiceninja/routes/client.php" file can be accessed without authentication. The parameter "{hash}" is passed to the function decrypt that expects a Laravel ciphered value containing a serialized object. (Furthermore, Laravel contains several gadget chains usable to trigger remote command execution from arbitrary deserialization.) Therefore, an attacker in possession of the "APP_KEY" is able to fully control a string passed to an "unserialize" function.

  • LOW
  • NETWORK
  • HIGH
  • UNCHANGED
  • NONE
  • LOW
  • HIGH
  • HIGH

CWE-502 - Deserialization of Untrusted Data

Deserialization of untrusted data vulnerabilities enable an attacker to replace or manipulate a serialized object, replacing it with malicious data. When the object is deserialized at the victim's end the malicious data is able to compromise the victim’s system. The exploit can be devastating, its impact may range from privilege escalation, broken access control, or denial of service attacks to allowing unauthorized access to the application's internal code and logic which can compromise the entire system.

Advisory Timeline

  • Published