GHSA-9wj4-8h85-pgrw
OctoPrint Vulnerable to Denial of Service through malformed HTTP request in OctoPrint
Details
### Impact
OctoPrint versions up until and including 1.11.1 contain a vulnerability that allows any unauthenticated attacker to send a manipulated broken `multipart/form-data` request to OctoPrint and through that make the web server component become unresponsive. This could be used to effectively run a denial of service attack on the OctoPrint server.
### Patches
The vulnerability has been patched in version 1.11.2.
### Workaround
OctoPrint administrators are once more reminded to not make OctoPrint available on hostile networks (e.g. the internet), regardless of whether this vulnerability is patched or not.
### Details
The issue can be triggered by a broken `multipart/form-data` request lacking an end boundary to any of OctoPrint's endpoints implemented through the `octoprint.server.util.tornado.UploadStorageFallbackHandler` request handler. The request handler will get stuck in an endless busy loop, looking for a part of the request that will never come. As Tornado is single-threaded, that will effectively block the whole web server.
The fix adds detection of invalid requests like that and ensures they are handled gracefully with an HTTP 400 Bad Request response.
### Credits
This vulnerability was discovered and responsibly disclosed to OctoPrint by Jacopo Tediosi.
Are you affected?
Enter the version of the package you're using.