Vulnerability · Published Apr 10, 2024 · Assigned by GitHub_M
CVE-2024-31214Traccar's unrestricted file upload vulnerability in device image upload could lead to remote code execution
Critical 9.7
In plain English
A critical-severity unrestricted file upload in traccar from traccar. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 17.6% (higher than 97% of all known vulnerabilities). Ready-made attack tooling exists: Metasploit.
Official description
Traccar is an open source GPS tracking system. Traccar versions 5.1 through 5.12 allow arbitrary files to be uploaded through the device image upload API. Attackers have full control over the file contents, full control over the directory where the file is stored, full control over the file extension, and partial control over the file name. While it's not for an attacker to overwrite an existing file, an attacker can create new files with certain names and attacker-controlled extensions anywhere on the file system. This can potentially lead to remote code execution, XSS, DOS, etc. The default install of Traccar makes this vulnerability more severe. Self-registration is enabled by default, allowing anyone to create an account to exploit this vulnerability. Traccar also runs by default with root/system privileges, allowing files to be placed anywhere on the file system. Version 6.0 contains a fix for the issue. One may also turn off self-registration by default, as that would make most vulnerabilities in the application much harder to exploit by default and reduce the severity considerably.
Affected products (as reported)
Weakness: CWE-434 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
References
- https://github.com/traccar/traccar/security/advisories/GHSA-3gxq-f2qj-c8v9 x_refsource_CONFIRM
- https://github.com/traccar/traccar/commit/3fbdcd81566bc72e319ec05c77cf8a4120b87b8f x_refsource_MISC
- https://github.com/traccar/traccar/blob/master/src/main/java/org/traccar/model/Device.java#L56 x_refsource_MISC
- https://github.com/traccar/traccar/blob/v5.12/src/main/java/org/traccar/api/resource/DeviceResource.java#L191 x_refsource_MISC