CVE-2026-46394
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedHAX CMS helps manage microsite universe with PHP or NodeJs backends. Prior to version 26.0.0, an OS command injection vulnerability exists in the Git.php library of the HAXcms PHP backend. The application constructs shell command strings using unsanitized input and executes them via proc_open(). An attacker who can control parameters passed into Git operations can execute arbitrary OS commands with the privileges of the web server. Out of 17 functions that invoke shell commands only 1 function (`commit()`) correctly uses `escapeshellarg()`. When combined with another vulnerability that allows configuration manipulation, this issue can lead to full remote code execution and complete system compromise. Version 26.0.0 patches the issue.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceOS command injection vulnerability in HAXcms PHP backend's Git.php library where 16 of 17 shell command functions fail to sanitize input before passing to proc_open(). An attacker with control over Git operation parameters can execute arbitrary OS commands with web server privileges, potentially achieving full RCE when chained with a configuration manipulation vulnerability.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- High
- Privileges
- Low
- Authentication
- X
- User interaction
- None
- Scope
- X
CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Confirm HAXcms installationLocate the HAXcms installation by checking for the main index.php or autoloader file in the web root directory. Common paths include /var/www/html/haxcms or similar web-accessible directories.Affected if HAXcms is present on the server
-
Identify Git.php library locationFind the Git.php file in the HAXcms codebase, typically located in a /system/lib/ or /libraries/ directory. Search for files named Git.php containing proc_open() calls.Affected if The Git.php file exists in the HAXcms installation
-
Check HAXcms versionOpen the version file or composer.json in the HAXcms root directory to read the installed version number. Compare it against the fixed version 26.0.0.Affected if The installed version is below 26.0.0
-
Inspect vulnerable Git functionsExamine the Git.php file and look for shell command functions that use proc_open() without proper input sanitization (such as escapeshellarg or escapeshellcmd). Check functions like gitAdd, gitCommit, gitPush, gitPull, gitClone, gitBranch, gitStatus, gitLog, gitDiff, gitFetch, gitMerge, gitRebase, gitTag, gitCheckout, gitReset, and gitStash.Affected if The Git.php functions pass user-controlled input to proc_open() without sanitization
-
Verify Git operations are accessibleCheck if the Git functionality is enabled and accessible to users through the HAXcms API endpoints or web interface. Look for routes or endpoints that trigger Git.php functions.Affected if Git operations are exposed and accessible to users or attackers
If HAXcms is installed with the Git.php library present and the version is below 26.0.0 with unsanitized Git function inputs accessible to users, the environment is vulnerable to command injection.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scopedUpgrade to HAXcms version 26.0.0 which patches the issue by implementing proper input sanitization across all Git library functions.
26.0.0
- 1. Identify the current installed version of HAXcms PHP backend by examining the version file or composer.json
- 2. If running a version prior to 26.0.0, plan for upgrade to version 26.0.0 or later
- 3. Backup the entire HAXcms installation including database and configuration files
- 4. Download HAXcms version 26.0.0 or the latest stable release from the official repository
- 5. Replace the existing installation files with the new version, preserving custom configurations
- 6. Verify the Git.php library has been updated - it should now use escapeshellarg() for all shell command invocations
- 7. Test Git-related operations (clone, pull, push, commit, etc.) to confirm functionality
- 8. Monitor logs for any command injection attempts that may have occurred prior to patching
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation3.0 h
- Implementation8.0 h
- Testing4.0 h
- Review / QA3.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $5,088.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2026-46394 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2026-46394 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data