# CVE-2023-30094: TotalJS stored cross-site scripting in settings

Source: https://junglewise.ai/threats/cve-2023-30094-totaljs-stored-cross-site-scripting-in-settings  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2023-05-04. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2023-30094 · Severity: low · CVSS 3.1 · Published 2023-05-04

TotalJS is a Node.js framework and platform for building web applications. A stored cross-site scripting (XSS) vulnerability in the settings module allows authenticated users to inject malicious scripts into the platform name field, which are then executed when other users view the settings. This could enable account hijacking, credential theft, or unauthorized actions performed on behalf of affected users.

Technologies: [total4 (npm)](https://junglewise.ai/threats/technologies/total4). Vendors: [npm](https://junglewise.ai/threats/vendors/npm).

## Quick answers

**Is CVE-2023-30094 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2023-30094 being exploited in the wild.

**How severe is CVE-2023-30094?** Low severity, with a CVSS score of 3.1, published 4 May 2023.

**Which products and versions are affected?** total4 (npm) SEMVER:introduced=0,fixed=0.0.81.

**Is there a fix for CVE-2023-30094?** Yes. total4 (npm): upgrade to 0.0.81 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2023-30094 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2023-30094?** Check whether you run total4 (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- total4 (npm): upgrade to 0.0.81 or later

  ```sh
  npm install total4@0.0.81
  ```


## Technical details

The vulnerability is a stored XSS (CWE-79) in TotalJS's settings module, specifically in the platform name field. Malicious JavaScript payloads injected into this field are not properly sanitized or escaped, allowing them to persist in storage and execute in the browsers of all users who subsequently access the settings page. The attack requires authentication to inject the payload and user interaction (viewing the settings page) to trigger execution. Affected versions prior to 0.0.81 of the total4 package are vulnerable; the fix is available in version 0.0.81 and later.

## Affected products

- TotalJS total4 before 0.0.81

## Identifiers

- CVE-2023-30094
- GHSA-jj45-24rw-v6jw

## Timeline

- 2023-05-04: disclosed: Advisory published
- 2023-05-04: patched: Fix available in version 0.0.81

## References

- [https://github.com/totaljs/flow/issues/100](https://github.com/totaljs/flow/issues/100)

## Related threats

- [Total.js CMS privilege escalation via API authorization bypass](https://junglewise.ai/threats/cve-2019-15953-total-js-cms-privilege-escalation-via-api-authorization-bypass)
- [Total.js CMS path traversal in page inclusion](https://junglewise.ai/threats/cve-2019-15952-total-js-cms-path-traversal-in-page-inclusion)
- [Total.js CMS remote code execution in widgets](https://junglewise.ai/threats/cve-2019-15954-total-js-cms-remote-code-execution-in-widgets)
- [total4 code injection in U.set() and U.get()](https://junglewise.ai/threats/cve-2021-23390-total4-code-injection-in-u-set-and-u-get)
