","datePublished":"2019-09-05T19:16:32.037","dateModified":"2026-06-17T02:21:24.720","url":"https://o3.security/vulnerability/CVE-2019-15954","inLanguage":"en","author":{"@id":"https://o3.security/#organization"},"publisher":{"@id":"https://o3.security/#organization"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://o3.security/vulnerability/CVE-2019-15954"},"speakable":{"@type":"SpeakableSpecification","cssSelector":["h1",".vuln-summary",".vuln-severity",".vuln-mitigation"]},"about":[{"@type":"SoftwareApplication","name":"total.js cms","author":{"@type":"Organization","name":"totaljs"}}],"citation":[]}","url":"https://o3.security/vulnerability/CVE-2019-15954","identifier":"CVE-2019-15954","datePublished":"2019-09-05T19:16:32.037","dateModified":"2026-06-17T02:21:24.720","inLanguage":"en","license":"https://creativecommons.org/licenses/by/4.0/","keywords":["CVE-2019-15954","CRITICAL severity","CWE-862","CVE","vulnerability","security advisory"],"creator":{"@id":"https://o3.security/#organization"},"isAccessibleForFree":true,"variableMeasured":[{"@type":"PropertyValue","name":"CVSS Base Score","value":9.9,"description":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H"},{"@type":"PropertyValue","name":"Severity","value":"CRITICAL"}]}"}},{"@type":"Question","name":"How severe is CVE-2019-15954?","acceptedAnswer":{"@type":"Answer","text":"CVE-2019-15954 has a CVSS score of 9.9/10, rated CRITICAL. Immediate patching is strongly recommended."}},{"@type":"Question","name":"Which products are affected by CVE-2019-15954?","acceptedAnswer":{"@type":"Answer","text":"Affected package information for CVE-2019-15954 is not yet fully mapped. Check the official advisory links for details."}},{"@type":"Question","name":"How do I patch CVE-2019-15954?","acceptedAnswer":{"@type":"Answer","text":"No patch has shipped for CVE-2019-15954 yet — track the totaljs total.js cms advisory for a fixed release and apply the workarounds below in the meantime."}},{"@type":"Question","name":"How do I detect CVE-2019-15954 across my infrastructure?","acceptedAnswer":{"@type":"Answer","text":"Inventory every totaljs total.js cms deployment and check each version against the affected-products list above. Because the exploit targets the running system rather than your application code, also watch for remote code execution at the network and runtime layer — O3 flags the exploit behaviour from runtime telemetry and egress traffic even before a vulnerable build is confirmed."}},{"@type":"Question","name":"How do I mitigate CVE-2019-15954 if there is no patch (or I can't update yet)?","acceptedAnswer":{"@type":"Answer","text":"Cut exposure now: restrict the management/admin interface to trusted networks, segment the device, and apply the vendor's recommended configuration mitigations and any WAF/IPS signature. O3's runtime protection blocks the exploit chain at execution, holding the line on unpatched or end-of-life systems until you can patch."}},{"@type":"Question","name":"How does O3 Security protect against CVE-2019-15954?","acceptedAnswer":{"@type":"Answer","text":"O3 detects and blocks CVE-2019-15954 exploitation at runtime: eBPF exploit-chain detection, plus L7 egress monitoring that catches the post-exploitation callback and severs the attacker's outbound channel."}},{"@type":"Question","name":"Is CVE-2019-15954 actively exploited in the wild?","acceptedAnswer":{"@type":"Answer","text":"Yes. There are 5 known exploit references for CVE-2019-15954, including 1 documented proof-of-concept exploit on Exploit-DB and 4 in-the-wild exploitations observed on GitHub and other sources. Treat this as actively exploitable and prioritize patching immediately. All exploit code should only be run in an isolated sandbox environment for research or authorized testing — never against production systems without explicit written authorization."}},{"@type":"Question","name":"What type of vulnerability is CVE-2019-15954?","acceptedAnswer":{"@type":"Answer","text":"CVE-2019-15954 is classified as CWE-862 (CWE-862). This weakness type describe the underlying flaw category, which helps determine the potential impact and the right class of mitigation."}},{"@type":"Question","name":"Which products and versions are affected by CVE-2019-15954?","acceptedAnswer":{"@type":"Answer","text":"CVE-2019-15954 affects totaljs total.js cms (1 version, e.g. 12.0.0). Check the affected-products list on this page against your deployed version to confirm exposure."}},{"@type":"Question","name":"Is there exploit tooling available for CVE-2019-15954?","acceptedAnswer":{"@type":"Answer","text":"A Metasploit module references CVE-2019-15954, which lowers the barrier to weaponization. Public exploit tooling significantly increases real-world risk — prioritize patching and ensure detection coverage. Exploit tooling should only ever be used in isolated, authorized testing environments."}},{"@type":"Question","name":"When was CVE-2019-15954 published, and has it been updated?","acceptedAnswer":{"@type":"Answer","text":"CVE-2019-15954 was published on September 5, 2019 and was last updated on June 17, 2026. Advisory data evolves as severity scores, affected ranges, and exploit intelligence are revised — always check the latest version of the advisory before acting."}}]}
Your RSA-2048 keys break in 2030. Find every one of them before attackers do.

CVE-2019-15954

CRITICAL

CVE-2019-15954 is a critical-severity (CVSS 9.9) CWE-862 vulnerability in totaljs total.js cms. 5 public exploit references exist, so weaponization risk is real. O3 Security detects and blocks CVE-2019-15954 exploitation at runtime via eBPF exploit-chain detection and L7 egress monitoring, even on unpatched systems.

An issue was discovered in Total.js CMS 12.0.0. An authenticated user with the widgets privilege can gain achieve Remote Command Execution (RCE) on the remote server by creating a malicious…

Published
Sep 5, 2019
Updated
Jun 17, 2026
Affected
0 pkgs
Patched
None yet
Exploits
5 known

Description

An issue was discovered in Total.js CMS 12.0.0. An authenticated user with the widgets privilege can gain achieve Remote Command Execution (RCE) on the remote server by creating a malicious widget with a special tag containing JavaScript code that will be evaluated server side. In the process of evaluating the tag by the back-end, it is possible to escape the sandbox object by using the following payload: <script total>global.process.mainModule.require(child_process).exec(RCE);</script>

Affected Products

1 product · 1 configurations
Application
total.js cmstotaljs
1 version
12.0.0
Exploits & PoCs
5

Research use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.

EDB-47531remotemultiple✓ Verified

Total.js CMS 12 - Widget JavaScript Code Injection (Metasploit)

by Metasploit · Oct 22, 2019

Detection & mitigation playbook

Vendor / appliance
  1. Detect

    Inventory every totaljs total.js cms deployment and check each version against the affected-products list above. Because the exploit targets the running system rather than your application code, also watch for remote code execution at the network and runtime layer — O3 flags the exploit behaviour from runtime telemetry and egress traffic even before a vulnerable build is confirmed.

  2. Remediation status

    No patch has shipped for CVE-2019-15954 yet — track the totaljs total.js cms advisory for a fixed release and apply the workarounds below in the meantime.

  3. Mitigate without a patch

    Cut exposure now: restrict the management/admin interface to trusted networks, segment the device, and apply the vendor's recommended configuration mitigations and any WAF/IPS signature. O3's runtime protection blocks the exploit chain at execution, holding the line on unpatched or end-of-life systems until you can patch.

  4. How O3 protects you

    O3 detects and blocks CVE-2019-15954 exploitation at runtime: eBPF exploit-chain detection, plus L7 egress monitoring that catches the post-exploitation callback and severs the attacker's outbound channel.

Tailored to CVE-2019-15954. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.

Frequently Asked Questions

An issue was discovered in Total.js CMS 12.0.0. An authenticated user with the widgets privilege can gain achieve Remote Command Execution (RCE) on the remote server by creating a malicious widget with a special tag containing JavaScript code that will be evaluated server side. In the process of evaluating the tag by the back-end, it is possible to escape the sandbox object by using the following payload: <script total>global.process.mainModule.require(child_process).exec(RCE);</script>
O3 Security · Runtime Protection

Is CVE-2019-15954 being exploited in your environment?

O3's eBPF runtime sensors and L7 egress monitoring detect and block the CVE-2019-15954 exploit chain at execution — protecting unpatched and end-of-life systems until the vendor patch is applied.