mediumCVSS 4.3Vulnerability

GHSA-q4rm-m6xh-5pv7

## Summary The `Mysqls.add` API command (`lib/Froxlor/Api/Commands/Mysqls.php`) accepts a customer-controlled `mysql_server` parameter and only validates that the value is numeric and that the server index exists in `userdata.inc.php`. It never checks the value against the calling customer's `allowed_mysqlserver` allowlist. A customer can therefore create a database, plus a MySQL user with a password they choose, on any MySQL server the operator has configured — including servers that were explicitly excluded from that customer (e.g. a separate cluster, premium-tier host, or another tenant pool). The same `allowed_mysqlserver` check is correctly enforced in `MysqlServer::get()` / `MysqlServer::listing()` and in the customer-facing UI (`customer_mysql.php`), confirming the omission is a bug, not by-design. ## Details **Vulnerable code path** — `lib/Froxlor/Api/Commands/Mysqls.php:69-99` (`add()`): ```php public function add() { if (($this->getUserDetail('mysqls_used') < $this->getUserDetail('mysqls') || ...) { ... $customer = $this->getCustomerData('mysqls'); // line 80 $dbserver = $this->getParam('mysql_server', true, // line 81 — user-controlled $this->getDefaultMySqlServer($customer)); ... $dbserver = Validate::validate($dbserver, ..., '/^[0-9]+$/', ...); // line 92 — numeric only Database::needRoot(true, $dbserver, false); // line 93 — root ctx for ANY index Database::needSqlData(); $sql_root = Database::getSqlData(); Database::needRoot(false); if (!is_array($sql_root)) { // line 97 — only existence check throw new Exception("Database server with index #" . $dbserver . " is unknown", 404); } ... $username = $dbm->createDatabase($newdb_params['loginname'], $password, $dbserver, ...);

Properties

ghsa_id
GHSA-q4rm-m6xh-5pv7
severity
medium
summary
Froxlor customer can create MySQL databases on disallowed servers via Mysqls.add API
cvss_score
4.3
cve_id
GHSA-q4rm-m6xh-5pv7
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
is_ghsa_only
true
ghsa_published
2026-07-02T19:23:49Z
source_url
https://github.com/advisories/GHSA-q4rm-m6xh-5pv7
ghsa_updated
2026-07-02T19:23:52Z

Related Entities (4)

VULNERABLE_TO (1)

[Software]composer/froxlor/froxlor

AFFECTS (1)

[Software]composer/froxlor/froxlor

HAS_WEAKNESS (1)

[Weakness]Improper Authorization

REPORTED_BY (1)

[Source]GitHub Advisory Database

Explore deeper with Ninja Signal's threat intelligence graph

GHSA-q4rm-m6xh-5pv7 (CVSS 4.3) — Ninja Signal Threat Intelligence | Ninja Signal