{"id":"CVE-2026-35163","aliases":["EUVD-2026-64043","GHSA-p6qx-ghxm-389h","PYSEC-2026-2688"],"status":"published","title":"OctoPrint: XSS in Suppressed Command Notifications","description":"OctoPrint provides a web interface for controlling consumer 3D printers. Prior to 1.11.8 and 2.0.0rc3, Suppressed Command notification popups use PNotify rendering for printer-controlled payload.command and payload.message values in src/octoprint/static/js/app/viewmodels/terminal.js without HTML escaping. An attacker who convinces a victim to print a crafted file can inject HTML and JavaScript into the notification, disrupt prints, read information available to the victim including sensitive settings when permitted, or perform actions in the victim's OctoPrint session. This issue is fixed in versions 1.11.8 and 2.0.0rc3.","severity":{"version":"4.0","score":4.6,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:L/SC:L/SI:L/SA:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00199,"percentile":0.09884,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-80"],"published":"2026-06-23T17:15:14Z","modified":"2026-11-11T02:48:51Z","fixes":[{"ecosystem":"PyPI","package":"octoprint","fixed_in":["1.11.8","2.0.0rc3"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"octoprint","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"1.11.7"},{"fixed":"1.11.8"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"octoprint","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0rc1"},{"last_affected":"2.0.0rc2"},{"fixed":"2.0.0rc3"}]}]},{"source":"osv","ecosystem":"PyPI","package":"octoprint","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.8"}]}],"versions":["1.10.0","1.10.0rc1","1.10.0rc2","1.10.0rc3","1.10.0rc4","1.10.1","1.10.2","1.10.3","1.11.0","1.11.0rc1","1.11.0rc2","1.11.0rc3","1.11.0rc4","1.11.0rc5","1.11.0rc6","1.11.0rc7","1.11.1","1.11.2","1.11.3","1.11.4","1.11.5","1.11.6","1.11.7","1.3.11","1.3.12","1.3.12rc1","1.3.12rc3","1.4.0","1.4.0rc1","1.4.0rc2","1.4.0rc3","1.4.0rc4","1.4.0rc5","1.4.0rc6","1.4.1","1.4.1rc1","1.4.1rc2","1.4.1rc3","1.4.1rc4","1.4.2","1.5.0","1.5.0rc1","1.5.0rc2","1.5.0rc3","1.5.1","1.5.2","1.5.3","1.6.0","1.6.0rc1","1.6.0rc2","1.6.0rc3","1.6.1","1.7.0","1.7.0rc1","1.7.0rc2","1.7.0rc3","1.7.1","1.7.2","1.7.3","1.8.0","1.8.0rc1","1.8.0rc2","1.8.0rc3","1.8.0rc4","1.8.0rc5","1.8.1","1.8.2","1.8.3","1.8.4","1.8.5","1.8.6","1.8.7","1.9.0","1.9.0rc1","1.9.0rc2","1.9.0rc3","1.9.0rc4","1.9.0rc5","1.9.0rc6","1.9.1","1.9.2","1.9.3"]},{"source":"osv","ecosystem":"PyPI","package":"octoprint","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0rc1"},{"fixed":"2.0.0rc3"}]}],"versions":["2.0.0rc1","2.0.0rc2"]},{"source":"osv","ecosystem":"PyPI","package":"octoprint","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.8"},{"introduced":"2.0.0rc1"},{"fixed":"2.0.0rc3"}]}],"versions":["1.10.0","1.10.0rc1","1.10.0rc2","1.10.0rc3","1.10.0rc4","1.10.1","1.10.2","1.10.3","1.11.0","1.11.0rc1","1.11.0rc2","1.11.0rc3","1.11.0rc4","1.11.0rc5","1.11.0rc6","1.11.0rc7","1.11.1","1.11.2","1.11.3","1.11.4","1.11.5","1.11.6","1.11.7","1.3.11","1.3.12","1.3.12rc1","1.3.12rc3","1.4.0","1.4.0rc1","1.4.0rc2","1.4.0rc3","1.4.0rc4","1.4.0rc5","1.4.0rc6","1.4.1","1.4.1rc1","1.4.1rc2","1.4.1rc3","1.4.1rc4","1.4.2","1.5.0","1.5.0rc1","1.5.0rc2","1.5.0rc3","1.5.1","1.5.2","1.5.3","1.6.0","1.6.0rc1","1.6.0rc2","1.6.0rc3","1.6.1","1.7.0","1.7.0rc1","1.7.0rc2","1.7.0rc3","1.7.1","1.7.2","1.7.3","1.8.0","1.8.0rc1","1.8.0rc2","1.8.0rc3","1.8.0rc4","1.8.0rc5","1.8.1","1.8.2","1.8.3","1.8.4","1.8.5","1.8.6","1.8.7","1.9.0","1.9.0rc1","1.9.0rc2","1.9.0rc3","1.9.0rc4","1.9.0rc5","1.9.0rc6","1.9.1","1.9.2","1.9.3","2.0.0rc1","2.0.0rc2"]}],"products":[{"vendor":"octoprint","product":"octoprint"}],"references":[{"url":"https://github.com/OctoPrint/OctoPrint/security/advisories/GHSA-p6qx-ghxm-389h","tags":["x_refsource_CONFIRM","advisory","web"]},{"url":"https://github.com/OctoPrint/OctoPrint/commit/42e0f9863935e136f04ed3c560cb96483a580d1b","tags":["x_refsource_MISC","fix"]},{"url":"https://github.com/OctoPrint/OctoPrint/commit/6e3db9096f8a94f7c2249be24b6d03a7d9c12bc7","tags":["x_refsource_MISC","fix"]},{"url":"https://github.com/OctoPrint/OctoPrint/releases/tag/1.11.8","tags":["x_refsource_MISC","web"]},{"url":"https://github.com/OctoPrint/OctoPrint/releases/tag/2.0.0rc3","tags":["x_refsource_MISC","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-35163","tags":["advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/octoprint/PYSEC-2026-2688.yaml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-p6qx-ghxm-389h","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/35xxx/CVE-2026-35163.json","tags":["advisory"]},{"url":"https://github.com/OctoPrint/OctoPrint","tags":["package"]},{"url":"https://pypi.org/project/octoprint","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-35163","title":"OctoPrint: XSS in Suppressed Command Notifications","description":"OctoPrint provides a web interface for controlling consumer 3D printers. Prior to 1.11.8 and 2.0.0rc3, Suppressed Command notification popups use PNotify rendering for printer-controlled payload.command and payload.message values in src/octoprint/static/js/app/viewmodels/terminal.js without HTML escaping. An attacker who convinces a victim to print a crafted file can inject HTML and JavaScript into the notification, disrupt prints, read information available to the victim including sensitive settings when permitted, or perform actions in the victim's OctoPrint session. This issue is fixed in versions 1.11.8 and 2.0.0rc3.","status":"published","published":"2026-08-21T18:25:49.564Z","modified":"2026-08-21T19:53:55.905Z","cvss":[{"version":"4.0","score":4.6,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:L/SC:L/SI:L/SA:N","level":"medium","assessor":"cna"}],"cwes":["CWE-80"],"updated_at":"2026-11-02T14:20:05.505362Z"}],"euvd":[{"id":"EUVD-2026-64043","description":"OctoPrint provides a web interface for controlling consumer 3D printers. Prior to 1.11.8 and 2.0.0rc3, Suppressed Command notification popups use PNotify rendering for printer-controlled payload.command and payload.message values in src/octoprint/static/js/app/viewmodels/terminal.js without HTML escaping. An attacker who convinces a victim to print a crafted file can inject HTML and JavaScript into the notification, disrupt prints, read information available to the victim including sensitive settings when permitted, or perform actions in the victim's OctoPrint session. This issue is fixed in versions 1.11.8 and 2.0.0rc3.","status":"published","published":"2026-08-21T18:25:49Z","modified":"2026-08-21T19:53:55Z","cvss":[{"version":"4.0","score":4.6,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:L/SC:L/SI:L/SA:N","level":"medium"}],"updated_at":"2026-11-02T18:01:36.844009Z"}],"ghsa":[{"id":"GHSA-p6qx-ghxm-389h","title":"OctoPrint has XSS in its Suppressed Command Notifications","description":"### Impact\n\nOctoPrint versions up to and including 1.11.7 as well as 2.0.0rc1 and 2.0.0rc2 are affected by a vulnerability that allows injection of arbitrary HTML and JavaScript into Suppressed Command notifications popups generated by the printer.\n\nAn attacker who successfully convinces a victim to print a specially crafted file could exploit this issue to disrupt ongoing prints, extract information (including sensitive configuration settings, if the targeted user has the necessary permissions for that), or perform other actions on behalf of the targeted user within the OctoPrint instance.\n\n### Patches\n\nThe vulnerability has been patched in version 1.11.8 and 2.0.0rc3.\n\n### Workaround\n\nOctoPrint administrators can mitigate the risk by disabling popups:\n- for Action Command notifications, set _OctoPrint Settings -\u003e Serial Connection -\u003e Behaviour -\u003e Sanity Checking -\u003e Display notifications for suppressed commands_ to _Never show notifications_\n\nIt is also strongly recommended to ensure that files being printed originate from trusted sources, and, whenever possible, are sliced with an application's own slicer.\n\n### Credits\n\nThis vulnerability was discovered and responsibly disclosed to OctoPrint by [Jacopo Tediosi](https://github.com/jacopotediosi).\n\n### Timeline\n\n2026-03-18: Report received\n2026-04-01: Report verified\n2026-04-01: Fix ready for 2.0.0\n2026-06-22: Fix backported to 1.11.x\n2026-06-23: Fix released with 1.11.8 and 2.0.0rc3","status":"published","published":"2026-06-23T17:15:14Z","modified":"2026-08-21T18:26:51Z","cvss":[{"version":"4.0","score":4.6,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:L/SC:L/SI:L/SA:N","level":"medium"}],"cwes":["CWE-80"],"updated_at":"2026-11-02T14:41:04.755504Z"}],"nvd":[{"id":"CVE-2026-35163","description":"OctoPrint provides a web interface for controlling consumer 3D printers. Prior to 1.11.8 and 2.0.0rc3, Suppressed Command notification popups use PNotify rendering for printer-controlled payload.command and payload.message values in src/octoprint/static/js/app/viewmodels/terminal.js without HTML escaping. An attacker who convinces a victim to print a crafted file can inject HTML and JavaScript into the notification, disrupt prints, read information available to the victim including sensitive settings when permitted, or perform actions in the victim's OctoPrint session. This issue is fixed in versions 1.11.8 and 2.0.0rc3.","status":"published","published":"2026-08-21T19:17:01.17Z","modified":"2026-10-14T19:10:00.297Z","cvss":[{"version":"4.0","score":4.6,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:L/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"medium","assessor":"secondary"}],"cwes":["CWE-80"],"updated_at":"2026-11-02T14:12:40.665005Z"}],"osv":[{"id":"CVE-2026-35163","title":"OctoPrint: XSS in Suppressed Command Notifications","description":"OctoPrint provides a web interface for controlling consumer 3D printers. Prior to 1.11.8 and 2.0.0rc3, Suppressed Command notification popups use PNotify rendering for printer-controlled payload.command and payload.message values in src/octoprint/static/js/app/viewmodels/terminal.js without HTML escaping. An attacker who convinces a victim to print a crafted file can inject HTML and JavaScript into the notification, disrupt prints, read information available to the victim including sensitive settings when permitted, or perform actions in the victim's OctoPrint session. This issue is fixed in versions 1.11.8 and 2.0.0rc3.","status":"published","published":"2026-08-21T18:25:49.564Z","modified":"2026-11-11T10:47:20.29284523Z","cvss":[{"version":"4.0","score":4.6,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:L/SC:L/SI:L/SA:N","level":"medium"}],"cwes":["CWE-80"],"updated_at":"2026-11-11T03:22:00.901153Z"},{"id":"GHSA-p6qx-ghxm-389h","title":"OctoPrint has XSS in its Suppressed Command Notifications","description":"### Impact\n\nOctoPrint versions up to and including 1.11.7 as well as 2.0.0rc1 and 2.0.0rc2 are affected by a vulnerability that allows injection of arbitrary HTML and JavaScript into Suppressed Command notifications popups generated by the printer.\n\nAn attacker who successfully convinces a victim to print a specially crafted file could exploit this issue to disrupt ongoing prints, extract information (including sensitive configuration settings, if the targeted user has the necessary permissions for that), or perform other actions on behalf of the targeted user within the OctoPrint instance.\n\n### Patches\n\nThe vulnerability has been patched in version 1.11.8 and 2.0.0rc3.\n\n### Workaround\n\nOctoPrint administrators can mitigate the risk by disabling popups:\n- for Action Command notifications, set _OctoPrint Settings -\u003e Serial Connection -\u003e Behaviour -\u003e Sanity Checking -\u003e Display notifications for suppressed commands_ to _Never show notifications_\n\nIt is also strongly recommended to ensure that files being printed originate from trusted sources, and, whenever possible, are sliced with an application's own slicer.\n\n### Credits\n\nThis vulnerability was discovered and responsibly disclosed to OctoPrint by [Jacopo Tediosi](https://github.com/jacopotediosi).\n\n### Timeline\n\n2026-03-18: Report received\n2026-04-01: Report verified\n2026-04-01: Fix ready for 2.0.0\n2026-06-22: Fix backported to 1.11.x\n2026-06-23: Fix released with 1.11.8 and 2.0.0rc3","status":"published","published":"2026-06-23T17:15:14Z","modified":"2026-08-21T18:30:08.073169678Z","cvss":[{"version":"4.0","score":4.6,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:L/SC:L/SI:L/SA:N","level":"medium"}],"cwes":["CWE-80"],"updated_at":"2026-11-02T15:46:52.891208Z"},{"id":"PYSEC-2026-2688","title":"OctoPrint has XSS in its Suppressed Command Notifications","description":"### Impact\n\nOctoPrint versions up to and including 1.11.7 as well as 2.0.0rc1 and 2.0.0rc2 are affected by a vulnerability that allows injection of arbitrary HTML and JavaScript into Suppressed Command notifications popups generated by the printer.\n\nAn attacker who successfully convinces a victim to print a specially crafted file could exploit this issue to disrupt ongoing prints, extract information (including sensitive configuration settings, if the targeted user has the necessary permissions for that), or perform other actions on behalf of the targeted user within the OctoPrint instance.\n\n### Patches\n\nThe vulnerability has been patched in version 1.11.8 and 2.0.0rc3.\n\n### Workaround\n\nOctoPrint administrators can mitigate the risk by disabling popups:\n- for Action Command notifications, set _OctoPrint Settings -\u003e Serial Connection -\u003e Behaviour -\u003e Sanity Checking -\u003e Display notifications for suppressed commands_ to _Never show notifications_\n\nIt is also strongly recommended to ensure that files being printed originate from trusted sources, and, whenever possible, are sliced with an application's own slicer.\n\n### Credits\n\nThis vulnerability was discovered and responsibly disclosed to OctoPrint by [Jacopo Tediosi](https://github.com/jacopotediosi).\n\n### Timeline\n\n2026-03-18: Report received\n2026-04-01: Report verified\n2026-04-01: Fix ready for 2.0.0\n2026-06-22: Fix backported to 1.11.x\n2026-06-23: Fix released with 1.11.8 and 2.0.0rc3","status":"published","published":"2026-07-13T15:46:23.299816Z","modified":"2026-07-13T16:32:54.587962771Z","cvss":[{"version":"4.0","score":4.6,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:L/SC:L/SI:L/SA:N","level":"medium"}],"updated_at":"2026-11-02T15:52:55.961245Z"}]}}
