← Back to Feed CACHED · 2026-08-04 12:14:11 · CACHE_KEY CVE-2026-58048
CVE-2026-58048 · CWE-89 · Disclosed 2026-07-31

Improper preservation of SQL mode when renaming databases in cPanel

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

A hotel guest who can clone every room key from the front-desk terminal

CVE-2026-58048 is an SQL injection in cPanel & WHM's database rename functionality. When a cPanel user renames a database, the system fails to preserve the active SQL mode context, allowing a crafted rename request to break out of the intended operation and execute arbitrary SQL statements as the MySQL/MariaDB root user. This affects all supported release branches: 11.110.x (before .0.137), 11.118.x (before .0.71), 11.126.x (before .0.78), 11.134.x (before .0.48), 11.136.x (before .0.32), and WP Squared 138.x (before 1.6). The flaw was disclosed on 2026-07-31 and discovered by researcher Vincent55 Yang.

There is no official vendor CVSS score from cPanel/WebPros. Third-party databases like VulDB assigned a CVSS 4.0 score of 9.4 (Critical), which reflects the raw technical severity — network-accessible, low privilege required, high impact across confidentiality, integrity, and availability. However, the 9.4 overstates the risk for most enterprise defenders because it ignores the authenticated-access prerequisite and the fact that cPanel is predominantly a shared-hosting tool, not a component found on typical enterprise endpoints. For hosting providers, the 9.4 is closer to reality; for enterprise teams managing internal infrastructure, HIGH at 8.0 better captures the actual risk.

"Authenticated cPanel user can run SQL as MySQL root — every tenant's database on the box is exposed."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Obtain cPanel account credentials

The attacker needs a valid cPanel account on the target server. In shared hosting, this is trivially obtained by purchasing a hosting plan. In enterprise environments, this requires compromising an existing account or being an insider. The MySQL/MariaDB database feature must be enabled for the account, which is the default on virtually all hosting plans.
Conditions required:
  • Valid cPanel account on target server
  • MySQL/MariaDB feature enabled for account
Where this breaks in practice:
  • Enterprise environments rarely run cPanel — exposure is concentrated in hosting providers
  • Account acquisition in enterprise context requires prior compromise or insider access
Detection/coverage: Login audit logs in WHM; failed authentication attempts visible in /usr/local/cpanel/logs/access_log
STEP 02

Initiate crafted database rename

The attacker uses the cPanel database management interface (or its API endpoint) to rename a database. The rename request is crafted to exploit the SQL mode preservation flaw — by injecting SQL syntax that becomes valid when the mode context is dropped during the rename operation. No special tooling beyond cURL or the cPanel web UI is needed.
Conditions required:
  • Authenticated session to cPanel
  • At least one existing database under the account
Where this breaks in practice:
  • No public proof-of-concept exists yet, requiring the attacker to independently discover the injection point
  • The rename API endpoint may have WAF rules in some managed hosting configurations
Detection/coverage: Database rename operations logged in cPanel action logs; anomalous SQL patterns in MySQL general query log if enabled
STEP 03

Execute arbitrary SQL as MySQL root

The injected SQL executes in the MySQL root context, bypassing the per-account database privilege boundaries that cPanel normally enforces. The attacker can now read, modify, or delete any database on the server — including those belonging to other tenants. This includes dumping password hashes, API keys, session tokens, and application secrets from every hosted site's database.
Conditions required:
  • Successful injection from Step 2
Where this breaks in practice:
  • MySQL general query logging is off by default, making forensic detection harder
  • Some hardened configurations use AppArmor/SELinux profiles that limit MySQL root's filesystem access
Detection/coverage: Database access anomaly detection; cross-tenant query patterns in slow query log; unexpected GRANT or CREATE USER statements
STEP 04

Cross-tenant data exfiltration or persistence

With MySQL root access, the attacker exfiltrates sensitive data from co-hosted databases, creates backdoor database users, or injects malicious stored procedures/triggers into other tenants' applications. In some configurations, MySQL root can also write files to the filesystem via SELECT INTO OUTFILE or load plugins, potentially escalating to OS-level access.
Conditions required:
  • MySQL root SQL execution from Step 3
  • FILE privilege not revoked from MySQL root (default)
Where this breaks in practice:
  • secure_file_priv limits OUTFILE paths in modern MySQL/MariaDB defaults
  • Plugin directory permissions may prevent UDF-based OS command execution
Detection/coverage: New database user creation alerts; file write attempts outside expected paths; IDS signatures for INTO OUTFILE patterns
03 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationNo confirmed in-the-wild exploitation as of 2026-08-04. Not listed on CISA KEV.
Proof-of-ConceptNo public PoC available. No exploit code found on GitHub, Exploit-DB, or researcher blogs. The injection mechanics have not been publicly detailed beyond the advisory description.
EPSS Score0.00503 (approximately 50th percentile) — indicates low predicted exploitation probability in the near term.
KEV StatusNot listed. No CISA Known Exploited Vulnerabilities catalog entry as of 2026-08-04.
CVSS VectorThird-party (VulDB): CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H → 9.4. No official vendor score published.
Affected VersionscPanel/WHM 11.110.x (<.0.137), 11.118.x (<.0.71), 11.126.x (<.0.78), 11.134.x (<.0.48), 11.136.x (<.0.32), WP Squared 138.x (<1.6)
Fixed Versions11.110.0.137, 11.118.0.71, 11.126.0.78, 11.134.0.48, 11.136.0.32, WP2 138.1.6
Internet ExposureShodan/Censys data shows approximately 1.5 million cPanel instances exposed to the internet. cPanel holds ~22% of the hosting control panel market.
Disclosure Date2026-07-31 (reserved 2026-06-27)
ResearcherVincent55 Yang
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to HIGH (8.0/10)

The single most decisive factor is the cross-tenant blast radius on production database servers — MySQL root execution means every database on the box is compromised, not just the attacker's own. This is tempered by the authenticated-access prerequisite (valid cPanel account required), which narrows the attacker population but does not eliminate it, especially in shared hosting where accounts are commercially available.

HIGH Vulnerability existence and impact mechanics
MEDIUM Exploit complexity and real-world weaponization timeline
LOW Enterprise-specific exposure (cPanel deployment prevalence in enterprise networks varies widely)

Why this verdict

  • Cross-tenant database breach: MySQL root SQL execution breaks tenant isolation — one compromised or malicious account can dump every database on the server, including credentials, PII, and application secrets for all co-hosted sites.
  • Authenticated but low-bar: The prerequisite is a valid cPanel account, which in shared hosting is purchasable for a few dollars. This is not 'stolen admin credentials' friction — it is commercially available access.
  • Role multiplier: cPanel servers are *by definition* multi-tenant production database hosts. The blast radius of MySQL root on a shared hosting server is tenant → all tenants (potentially hundreds of sites). For hosting providers, ≥90% of cPanel installations occupy this high-value multi-tenant role. For enterprise defenders, cPanel is rare on internal infrastructure, but where it exists it typically hosts production web properties. The floor is HIGH based on the canonical multi-tenant database role.
  • No PoC or active exploitation: No public exploit code, no KEV listing, EPSS at 0.5%. This significantly reduces immediate urgency and prevents an upgrade to CRITICAL.
  • 1.5M exposed instances: The internet-facing population is large, making this an attractive future target once exploitation details emerge.

Why not higher?

A CRITICAL rating would require either active exploitation, a public PoC lowering the exploitation bar, or an unauthenticated attack vector. None of these conditions exist today. The authenticated requirement — while low-friction in hosting — still requires the attacker to possess or obtain valid credentials, which is a meaningful gate. Additionally, for enterprise defenders (the primary audience), cPanel is uncommon on internal infrastructure, limiting the likely exposure population.

Why not lower?

Despite the authenticated prerequisite, the blast radius is too severe for MEDIUM. MySQL root execution on a multi-tenant server is not a single-account compromise — it is a mass-breach enabler affecting every co-hosted customer. The 1.5 million internet-facing instances represent a large vulnerable population, and the absence of a PoC today does not mean one won't emerge given the straightforward CWE-89 classification. The canonical deployment role of cPanel (multi-tenant production hosting) sets a HIGH floor.

05 · Compensating Control

What to do — in priority order.

  1. Disable MySQL/MariaDB feature for untrusted accounts — In WHM → Feature Manager, disable the 'MySQL Databases' and 'MySQL Database Wizard' features for account packages assigned to low-trust or external-facing tenants. This removes the attack surface entirely for those accounts. Deploy within 30 days per noisgate mitigation SLA for HIGH severity.
  2. Enable MySQL general query logging temporarily — Set general_log = ON in MySQL/MariaDB to capture all SQL statements, enabling detection of anomalous cross-tenant queries. This has performance impact — use it as a short-term detection measure while patching is underway, not as a permanent control.
  3. Restrict cPanel API access via IP allowlisting — In WHM → Security Center → Host Access Control, restrict access to cPanel and WHM interfaces to known management IPs. This limits who can reach the vulnerable rename endpoint.
  4. Audit and rotate database credentials — After patching, rotate all MySQL user passwords and application database credentials on affected servers. If the vulnerability was exploited, attacker-created database users or modified grants may persist.
What doesn't work
  • WAF rules on the web server — the SQL injection occurs in cPanel's own Perl/API backend, not in a customer's web application. ModSecurity rules on Apache/Nginx will not intercept cPanel API calls.
  • MySQL secure_file_priv — while this limits filesystem writes via SELECT INTO OUTFILE, it does nothing to prevent cross-tenant database reads, which is the primary impact.
  • Per-database user privilege restrictions — cPanel normally enforces these, but the vulnerability bypasses them entirely by executing as MySQL root, so existing privilege boundaries are irrelevant.
06 · Verification

Crowdsourced verification payload.

Run this script on each cPanel/WHM server as root. It checks the installed cPanel build number against the patched versions for each release branch. Usage: sudo bash check_cve_2026_58048.sh

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# CVE-2026-58048 Patch Verification
# Checks cPanel/WHM build against patched versions
# Run as root on the target cPanel server
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN

set -euo pipefail

if [[ $EUID -ne 0 ]]; then
  echo "UNKNOWN - must run as root"
  exit 2
fi

VERSION_FILE="/usr/local/cpanel/version"
if [[ ! -f "$VERSION_FILE" ]]; then
  echo "UNKNOWN - cPanel not installed (no $VERSION_FILE)"
  exit 2
fi

VER=$(cat "$VERSION_FILE" 2>/dev/null | tr -d '[:space:]')
if [[ -z "$VER" ]]; then
  echo "UNKNOWN - could not read cPanel version"
  exit 2
fi

echo "Detected cPanel version: $VER"

# version_gte: returns 0 if $1 >= $2 using sort -V
version_gte() {
  [[ "$(printf '%s\n%s' "$1" "$2" | sort -V | head -n1)" == "$2" ]]
}

# Patched versions per branch
declare -A PATCHED=(
  ["11.110"]="11.110.0.137"
  ["11.118"]="11.118.0.71"
  ["11.126"]="11.126.0.78"
  ["11.134"]="11.134.0.48"
  ["11.136"]="11.136.0.32"
  ["11.138"]="11.138.1.6"
)

BRANCH=$(echo "$VER" | grep -oP '^11\.\d+')
if [[ -z "$BRANCH" ]]; then
  echo "UNKNOWN - unrecognized version branch: $VER"
  exit 2
fi

if [[ -z "${PATCHED[$BRANCH]+x}" ]]; then
  echo "UNKNOWN - branch $BRANCH not in known affected list"
  exit 2
fi

FIXED="${PATCHED[$BRANCH]}"
if version_gte "$VER" "$FIXED"; then
  echo "PATCHED - $VER >= $FIXED (CVE-2026-58048)"
  exit 0
else
  echo "VULNERABLE - $VER < $FIXED (CVE-2026-58048)"
  exit 1
fi
07 · Bottom Line

If you remember one thing.

TL;DR
If you run cPanel/WHM anywhere in your environment, update to the patched builds (11.110.0.137, 11.118.0.71, 11.126.0.78, 11.134.0.48, 11.136.0.32, or WP2 138.1.6) within the noisgate remediation SLA of 180 days for HIGH severity. As an interim measure under the noisgate mitigation SLA of 30 days, disable the MySQL Databases feature for untrusted tenant accounts via WHM Feature Manager and restrict cPanel interface access to management IPs only. If your organization uses managed shared hosting from a provider running cPanel, contact them Monday morning to confirm they have applied the patch — your data is only as safe as your hosting provider's patch cadence. No active exploitation or public PoC exists today, but the 1.5 million internet-facing instances and straightforward SQL injection mechanics make weaponization a matter of time, not effort.

Sources

  1. THREATINT CVE-2026-58048 Entry
  2. CyberPress — cPanel WHM Database Privilege Escalation
  3. GBHackers — cPanel Database Privilege Escalation Flaw
  4. VulDB — CVE-2026-58048
  5. Censys — cPanel Internet Exposure Analysis
  6. Datanyze — cPanel Market Share
  7. SecurityOnline — cPanel WHM Patch Advisory
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.