# CVE-2026-43947: FUXA Vulnerable to Unauthenticated Remote Code Execution via Script Test Mode Authorization Bypass

> Unauthenticated attackers can execute arbitrary code via script test mode bypass in FUXA SCADA software when secure mode is enabled.

- **Severity:** High 8.9 (`CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:P`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 21 Jul 2026
- **Updated:** 23 Jul 2026
- **Also known as:** GHSA-rg3m-cfq7-g6h6

## What is CVE-2026-43947?

CVE-2026-43947 is a high-severity authentication bypass vulnerability in frangoteam FUXA, published on 21 Jul 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official description

FUXA is a web-based Process Visualization (SCADA/HMI/Dashboard) software. Version 1.3.0 has an unauthenticated Remote Code Execution vulnerability when `secureEnabled` is set to `true`. The `POST /api/runscript` endpoint checks authorization against the stored script's permission by ID, but when `test: true` is set in the request, it compiles and executes attacker-supplied code instead of the stored script's code. An unauthenticated attacker who knows a valid script ID and name may execute arbitrary code via test mode if at least one server-side script exists and is accessible without restrictive permissions. Script IDs and names can be obtained through the unauthenticated information disclosure in `GET /api/project` (reported separately). The only prerequisite is that at least one server-side script exists in the project. Version 1.3.1 fixes the issue.

Weakness: CWE-863 (Incorrect Authorization)

## Which versions are affected by CVE-2026-43947?

2 open source packages ship an affected version, including fuxa-server.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `fuxa-server` | npm | From 1.3.0 | 1.3.1 |
| `fuxa-server` | npm | From 1.3.0 | 1.3.1 |

## How do I fix CVE-2026-43947?

Upgrade fuxa-server to 1.3.1 or later.

## Is CVE-2026-43947 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-43947 exists.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-43947 and fix it if it is affected.

What it is: CVE-2026-43947 is a high-severity authentication bypass vulnerability in frangoteam FUXA, published on 21 Jul 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-43947 exists.

Affected packages and fixed versions:
- fuxa-server (npm): affected from 1.3.0; fixed in 1.3.1
- fuxa-server (npm): affected from 1.3.0; fixed in 1.3.1

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-43947/ (Markdown: https://insights.sbomify.com/CVE-2026-43947/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-43947
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-43947
- OSV: https://osv.dev/vulnerability/CVE-2026-43947

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-43947/
Summaries are generated and may contain mistakes; the official description above is the record.
