Opencast versions prior to 9.10 allow HTTP method spoofing, allowing to change the assumed HTTP method via URL parameter. This allows attackers to turn HTTP GET requests into PUT requests or an HTTP form to send DELETE requests. This bypasses restrictions otherwise put on these types of requests and aids in cross-site request forgery (CSRF) attacks, which would otherwise not be possible.
The vulnerability allows attackers to craft links or forms which may change the server state. For example, the following GET request would create a new user:
% curl -i -u admin:opencast \
'https://legacy.opencast.org/admin-ng/users/test.json?_method=PUT&username=test&password=attack'
HTTP/2 200
ā¦
If an admin is logged in to legacy.opencast.org and accidentally clicks this link, a user will silently be created.
This issue is fixed in Opencast 9.10 and 10.0.
You can mitigate the problem by setting the SameSite=Strict
attribute for your cookies. If this is a viable option for you depends on your integrations. We strongly recommend updating in any case.
If you have any questions or comments about this advisory:
github.com/opencast/opencast
github.com/opencast/opencast/commit/59cb6731067283e54f15462be38b6117d8b9ea8b#diff-9c5fb3d1b7e3b0f54bc5c4182965c4fe1f9023d449017cece3005d3f90e8e4d8
github.com/opencast/opencast/commit/8f8271e1085f6f8e306c689d6a56b0bb8d076444
github.com/opencast/opencast/security/advisories/GHSA-j4mm-7pj3-jf7v
nvd.nist.gov/vuln/detail/CVE-2021-43807