Headline
CVE-2023-42819: Playbook file uploads cause directory crossing and remote command execution.
JumpServer is an open source bastion host. Logged-in users can access and modify the contents of any file on the system. A user can use the ‘Job-Template’ menu and create a playbook named 'test’. Get the playbook id from the detail page, like 'e0adabef-c38f-492d-bd92-832bacc3df5f’. An attacker can exploit the directory traversal flaw using the provided URL to access and retrieve the contents of the file. https://jumpserver-ip/api/v1/ops/playbook/e0adabef-c38f-492d-bd92-832bacc3df5f/file/?key=../../../../../../../etc/passwd
a similar method to modify the file content is also present. This issue has been addressed in version 3.6.5. Users are advised to upgrade. There are no known workarounds for this vulnerability.
Impact
Logged-in users can access and modify the contents of any file on the system.
The affected versions:
v3.0.0 - v3.6.4
Details
The user ‘foo’ click ‘Job-Template’ menu and create a playbook named 'test’. Get the playbook id from the detail page, like 'e0adabef-c38f-492d-bd92-832bacc3df5f’.
An attacker can exploit the directory traversal flaw using the provided URL to access and retrieve the contents of the file.
https://jumpserver-ip/api/v1/ops/playbook/e0adabef-c38f-492d-bd92-832bacc3df5f/file/?key=../../../../../../../etc/passwd
And It has a similar method to modify the file content.
Patches
Update to safe versions:
v2 version: >= v2.28.20
v3 version: >= v3.7.1
Workarounds
It is recommended to upgrade the safe versions.
After upgrade, visit the api like https://jumpserver-ip/api/v1/ops/playbook/e0adabef-c38f-492d-bd92-832bacc3df5f/file/?key=…/…/…/…/…/…/…/etc/passwd, the expected response content below:
{ msg: "Invalid file path" }
References
Thanks for lawliet & zhiniang peng(@edwardzpeng) with Sangfor report this bug