{"id":"CVE-2019-15954","aliases":["EUVD-2022-5259","GHSA-v287-9w3v-x5c5"],"status":"published","title":"Total.js CMS RCE Vulnerability","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: \u003cscript total\u003eglobal.process.mainModule.require(child_process).exec(RCE);\u003c/script\u003e","severity":{"version":"3.1","score":9.9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-12","score":0.78691,"percentile":0.99595,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":false},"cwes":["CWE-77","CWE-862"],"published":"2019-09-05T18:31:43Z","modified":"2026-06-17T02:21:24Z","exploits":[{"source":"metasploit","id":"exploit/multi/http/totaljs_cms_widget_exec","title":"Total.js CMS 12 Widget JavaScript Code Injection","type":"exploit","platform":"Linux,OSX","date":"2019-08-30","verified":true,"url":"https://www.rapid7.com/db/modules/exploit/multi/http/totaljs_cms_widget_exec"},{"source":"exploitdb","id":"EDB-47531","title":"Total.js CMS 12 - Widget JavaScript Code Injection (Metasploit)","type":"remote","platform":"multiple","date":"2019-10-22","verified":true,"url":"https://www.exploit-db.com/exploits/47531"}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"total4","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"12.0.0"},{"last_affected":"12.0.0"}]}],"versions":["12.0.0"]},{"source":"osv","ecosystem":"npm","package":"total4","versions":["12.0.0"]}],"products":[{"vendor":"totaljs","product":"total.js_cms"}],"references":[{"url":"https://github.com/beerpwn/CVE/blob/master/Totaljs_disclosure_report/report_final.pdf","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","web"]},{"url":"https://seclists.org/fulldisclosure/2019/Sep/5","tags":["x_refsource_MISC","x_transferred","Exploit","Mailing List","Third Party Advisory","web"]},{"url":"http://packetstormsecurity.com/files/154924/Total.js-CMS-12-Widget-JavaScript-Code-Injection.html","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","VDB Entry","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2019-15954","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-v287-9w3v-x5c5"},{"url":"https://github.com/totaljs/cms","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2019-15954","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: \u003cscript total\u003eglobal.process.mainModule.require(child_process).exec(RCE);\u003c/script\u003e","status":"published","published":"2019-09-05T18:31:43Z","modified":"2024-08-05T01:03:32.574Z","updated_at":"2026-11-02T14:20:21.059499Z"}],"euvd":[{"id":"EUVD-2022-5259","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: \u003cscript total\u003eglobal.process.mainModule.require(child_process).exec(RCE);\u003c/script\u003e","status":"published","published":"2019-09-05T18:31:43Z","modified":"2024-08-05T01:03:32Z","updated_at":"2026-11-03T02:40:34.136734Z"}],"ghsa":[{"id":"GHSA-v287-9w3v-x5c5","title":"Total.js CMS RCE Vulnerability","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: `\u003cscript total\u003eglobal.process.mainModule.require(child_process).exec(RCE);\u003c/script\u003e`","status":"published","published":"2022-05-24T16:55:31Z","modified":"2023-07-17T23:14:58Z","cvss":[{"version":"3.1","score":9.9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-77","CWE-862"],"updated_at":"2026-11-02T14:36:57.310051Z"}],"nvd":[{"id":"CVE-2019-15954","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: \u003cscript total\u003eglobal.process.mainModule.require(child_process).exec(RCE);\u003c/script\u003e","status":"published","published":"2019-09-05T19:16:32.037Z","modified":"2026-06-17T02:21:24.72Z","cvss":[{"version":"3.1","score":9.9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"2.0","score":9,"vector":"AV:N/AC:L/Au:S/C:C/I:C/A:C","level":"high","assessor":"primary"}],"cwes":["CWE-862"],"updated_at":"2026-11-02T14:05:25.691233Z"}],"osv":[{"id":"GHSA-v287-9w3v-x5c5","title":"Total.js CMS RCE Vulnerability","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: `\u003cscript total\u003eglobal.process.mainModule.require(child_process).exec(RCE);\u003c/script\u003e`","status":"published","published":"2022-05-24T16:55:31Z","modified":"2023-11-08T04:01:15.614045Z","cvss":[{"version":"3.1","score":9.9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-77","CWE-862"],"updated_at":"2026-11-02T15:46:56.639206Z"}]}}
