Broken Access Control
The FarCry Core platform includes an access control check in the /webtop/Application.cfc file, which verifies whether users are authorised to access files within the /webtop directory. However, a subdirectory, /facade, includes its own Application.cfc file that overrides this behaviour. This version lacks access controls, effectively bypassing authentication and authorisation checks. As a result, attackers can access files under /webtop/facade without being authenticated.
Unrestricted File Upload
Within the unprotected /facade directory, a file called upload.cfm accepts direct browser access. Due to verbose error messages, attackers can easily learn what parameters are required to perform a successful file upload. These include typename, property, fieldname, and current. Despite existing file upload restrictions elsewhere in FarCry, no allowlist is enforced here, enabling attackers to upload arbitrary files, such as a ColdFusion web shell, to server directories like /files/dmfile.
By uploading a file and accessing it through a browser, an attacker can gain unauthenticated remote code execution on the server.
Proof of Concept
A simple HTTP request or command-line tool like curl can be used to upload a test file to the server, demonstrating the exploitability of the issue. These uploads bypass authentication due to the lack of access control in the /facade directory.
Potential Impact
These issues allow an unauthenticated attacker to execute arbitrary code on the server, potentially resulting in complete compromise of the application and underlying infrastructure.
How to Fix
Users are strongly encouraged to upgrade to the latest version of FarCry Core (7.2.14). More details can be found on the FarCry Core master branch hosted on GitHub.
Vulnerability Disclosure Timeline
- 18 Oct 2023 – Issues disclosed to vendor
- 27 Oct 2023 – Patches committed to the master branch
- 29 May 2024
- – CVEs assigned:
+ CVE-2024-35526 (Broken Access Control)
+ CVE-2024-35527 (Unrestricted File Upload)
- 31 May 2024 – Advisory publicly published