Codebase: c:\Users\user\Downloads\18.0.0\package\product Product: AltumCode 66Audit v18.0.0 Scan Date: 2026-04-16
---
The codebase contains four distinct licensing/tracking mechanisms that connect to the author's servers (api2.altumcode.com / api.altumcode.com). Additionally, a fifth and highly suspicious mechanism — AcmHandler.php — is secretly injected into Composer's autoloader and executes on every PHP bootstrap.
---
File: vendor/phpmailer/phpmailer/src/AcmHandler.php Registered in: vendor/composer/autoload_files.php (line 20)
[!CAUTION]
This file is disguised as part of the PHPMailer vendor package, but it has nothing to do with PHPMailer. It is injected via Composer'sautoload_filesmechanism, meaning it runs automatically on every PHP request whenvendor/autoload.phpis included — i.e., on every page load of the application.
When $_POST['license_key'] and $_POST['installation_url'] are both present (e.g., during installation), OR when $_POST['new_license'] and $_POST['type'] are present (e.g., during a license update):
license_key + a nonce + issued_at timestamp using a hardcoded 2048-bit RSA public key owned by AltumCode.altumcode:<base64url_blob>.`` ROOT_PATH . '/uploads/main/10effa491dee66fba6d54d49ac5854e2c164.svg' ` It is injected as: - An HTML comment inside <metadata> tags - A comment at the top of the SVG - An invisible <text> element (opacity:0, pointer-events:none, user-select:none`)
This creates a cryptographically signed watermark of the license key embedded in an SVG file on the server filesystem. The encrypted payload can only be decrypted by AltumCode (they hold the private key). This appears to be a software forensics / piracy detection mechanism. The SVG asset bearing the mark is altumcode.svg from the theme.
Runs on every PHP request because it is in autoload_files. However, it only writes the file when POST data contains license fields — so it fires during installation and license-change flows. It silently swallows all exceptions.
| Field | Source |
|---|---|
license_key | $_POST['license_key'] or $_POST['new_license'] |
nonce | Randomly generated per invocation |
issued_at | Current server datetime |
No outbound HTTP call is made from this file. Data stays local in the SVG.
---
File: install/install.php (lines 27, 77–88) Endpoint: POST https://api2.altumcode.com/validate Trigger: When a user submits the installer form
[ 'type' => 'installation', 'license_key' => $_POST['license_key'], 'installation_url' => $_POST['installation_url'], 'product_key' => PRODUCT_KEY, // '66audit' 'product_name' => PRODUCT_NAME, 'product_version' => '18.0.0', 'server_ip' => $_SERVER['SERVER_ADDR'], // ⚠️ Server's IP 'client_ip' => get_ip(), // ⚠️ Installer's IP 'newsletter_email' => $_POST['newsletter_email'], 'newsletter_name' => $_POST['newsletter_name'],]The author's server returns the full SQL database dump (via $response->body->sql) which is then executed directly against the local database. Installation cannot proceed without this response.
[!WARNING]
The SQL is retrieved from and controlled by the author's server at install time. The server can return arbitrary SQL.
---
File: update/update.php (lines 37, 41–52) Endpoint: POST https://api2.altumcode.com/validate-update Trigger: When an admin runs the /update wizard
[ 'version_code' => $product_info->code, 'requested_version_code' => NEW_PRODUCT_CODE, 'license_key_obfuscated' => $license->license, // obfuscated license from DB 'license_type' => $license->type, 'installation_url' => url(), 'product_key' => PRODUCT_KEY, 'product_name' => PRODUCT_NAME, 'product_version' => $product_info->version, 'server_ip' => $_SERVER['SERVER_ADDR'], // ⚠️ Server's IP 'client_ip' => get_ip(), // ⚠️ Client's IP]Same as installation — the author's server returns SQL migrations, which are executed directly.
---
File: app/controllers/admin/AdminSettings.php (lines 1941–1978) Endpoint: POST https://api2.altumcode.com/validate Trigger: Admin submits a new license key via Admin > Settings > License
[ 'type' => 'license-update', 'license_key' => $_POST['new_license'], 'installation_url' => url(), 'product_key' => PRODUCT_KEY, 'product_name' => PRODUCT_NAME, 'product_version' => PRODUCT_VERSION, 'server_ip' => $_SERVER['SERVER_ADDR'], 'client_ip' => get_ip(),]Response can include arbitrary SQL that is executed ($response->body->sql).
---
File: app/controllers/Cron.php (lines 428–468) Endpoint: POST https://api2.altumcode.com/get-support-status Trigger: Every cron run of cron/reset, but only when:
ALTUMCODE == 66 (always true in this build)[ 'support_key_obfuscated' => settings()->support->key, 'installation_url' => url(),]/* Run external SQL if needed */if(!empty($response->body->sql)) { database()->query($response->body->sql);}[!CAUTION]
On a successful response, arbitrary SQL sent by the author's server is executed against the local database.
---
File: app/controllers/admin/AdminSettings.php (lines 1981–2022) Endpoint: POST https://api.altumcode.com/validate-support-extension Trigger: Admin submits a new support key via Admin > Settings > Support
[ 'support_key' => $_POST['new_key'], 'license_type' => settings()->license->type, 'installation_url' => url(), 'product_key' => PRODUCT_KEY, 'product_name' => PRODUCT_NAME, 'product_version' => PRODUCT_VERSION, 'server_ip' => $_SERVER['SERVER_ADDR'], 'client_ip' => get_ip(),]Response can also include arbitrary SQL.
---
| # | Endpoint | When Triggered | Data Sent | Risk |
|---|---|---|---|---|
| 1 | api2.altumcode.com/validate | Installation | License key, server IP, client IP, site URL, newsletter email | 🔴 Critical |
| 2 | api2.altumcode.com/validate-update | Update wizard | License (obfuscated), server IP, client IP, version | 🟠 High |
| 3 | api2.altumcode.com/validate | Admin license change | License key, server IP, client IP | 🟡 Medium |
| 4 | api2.altumcode.com/get-support-status | Automated cron | Support key, site URL | 🟡 Medium |
| 5 | api.altumcode.com/validate-support-extension | Admin support key entry | Support key, license type, server IP, client IP | 🟡 Medium |
---
In four of the five server calls (#1, #2, #3, #4, #5), the author's API response can contain a sql field that is directly executed on your database with no sanitization or restriction:
$dump = array_filter(explode('-- SEPARATOR --', $response->body->sql));foreach($dump as $query) { $database->query($query);}This gives the author's server the ability to read, modify, or delete any data in your database during installation, update, license changes, or cron runs — as long as the server responds with a status: success and a sql payload.
---
| File | Role |
|---|---|
vendor/phpmailer/phpmailer/src/AcmHandler.php | Hidden watermarking handler, auto-loaded on every request |
vendor/composer/autoload_files.php | Registers AcmHandler in Composer autoload |
vendor/composer/autoload_static.php | Same autoload registration |
install/install.php | License validation during install, executes remote SQL |
update/update.php | License re-validation during update, executes remote SQL |
app/controllers/admin/AdminSettings.php | Admin license and support key re-validation |
app/controllers/Cron.php | Automated support status check, executes remote SQL |