CVE-2026-34246 Details
Description
CtrlPanel is open-source billing software for hosting providers. Versions 1.1.1 and prior contain a Stored Cross-Site Scripting (XSS) vulnerability exists in the admin role management interface. In app/Http/Controllers/Admin/RoleController.php, the datatable() method interpolates $role->name and $role->color directly into a <span> element's HTML and style attribute without sanitization, and the chained .rawColumns(['actions', 'name']) call instructs DataTables to render the name column as raw HTML, bypassing automatic output escaping. An admin with role creation or edit permissions can inject a payload such as <img src=x onerror="alert('XSS_POC')"> into the name or color fields, which is persisted to the database and executes in the browser of every admin who loads the /admin/roles page. This enables session hijacking via cookie theft, credential harvesting through fake login prompts or keyloggers, lateral privilege escalation by performing admin actions on behalf of victims, and a persistent backdoor that re-executes on every page load until the malicious role record is removed. This issue has been resolved in version 1.2.0.
A stored cross-site scripting vulnerability has been identified in CtrlPanel billing software for hosting providers, affecting versions through 1.1.1. The issue resides in the admin role management interface, specifically within the 'datatable()' method of the RoleController. Here, role names and color values are directly inserted into a <span> element's HTML and style attribute without proper sanitization. This unescaped data is rendered as raw HTML by DataTables, allowing an admin with the ability to create or edit roles to inject malicious scripts. Once saved, these scripts execute in the browsers of all admins who access the roles page, potentially leading to session hijacking, credential theft, unauthorized admin actions, and a persistent backdoor until the malicious role is deleted.
The vulnerability has been patched in CtrlPanel version 1.2.0. Users should update to this version. For those maintaining a version prior to 1.2.0, the vulnerability can be manually addressed by escaping user-controlled values before embedding them into HTML, using Laravel's 'e()' helper.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
Volerion
Assessed May 19, 2026CISA-ADP
Assessed May 20, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://github.com/Ctrlpanel-gg/panel/security/advisories/GHSA-wpqj-xwhq-2mmh | CISA-ADP | AdvisoryExploitRemedyVendor |
| https://github.com/Ctrlpanel-gg/panel/releases/tag/1.2.0 | [email protected] | BundleRelease NotesVendor |
| https://github.com/Ctrlpanel-gg/panel/security/advisories/GHSA-wpqj-xwhq-2mmh | [email protected] | AdvisoryExploitRemedyVendor |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-116 | Improper Encoding or Escaping of Output | [email protected] |
| CWE-80 | Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS) | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| CtrlPanel | <= 1.1.1 (semver) |
CPE
Remediation
| |
Change History
5 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jul 24, 2026 | CVE Translated | [email protected] |
| Jun 17, 2026 | CVE Modified | [email protected] |
| Jun 17, 2026 | CVE Modified | CISA-ADP |
| May 20, 2026 | CVE Modified | CISA-ADP |
| May 19, 2026 | New CVE Received | [email protected] |
Volerion