Synopsis
Tenable discovered a vulnerability in Jenkins which allows valid user folders to be migrated. This can be exploited by a remote unauthenticated attacker.
Attempting to authenticate as a valid user (e.g. admin), preceded by a relative path that leads to the same user account folder on the file system (admin, /admin, ./admin, ../users/admin, etc) will force Jenkins to migrate that user's folder to the sanitized version of the relative path used.
This effectively creates a clone of the original user's config file and user account under a new user id, and deletes the user's original folder. The original user's account will persist until the Jenkins service restarts, after which point the original user will no longer be able to login under their original username. This method is a particularly dangerous when combined with the unauthenticated user enumeration possible in 2.121.2 LTS, as the process of migrating all users could be automated.
As a proof of concept, consider the following URL:
http://[ip]:[port]/securityRealm/user/..%2fusers%2fadmin
When visited, the following can be observed in the Jenkins log:
INFO hudson.model.User getOrCreate Migrated user record from C:\Program Files (x86)\Jenkins\users\..\users\admin\config.xml to C:\Program Files (x86)\Jenkins\users\..$002fusers$002fadmin\config.xml
Solution
- Jenkins weekly should be updated to version 2.154
- Jenkins LTS should be updated to version either 2.138.4 or 2.150.1
Disclosure Timeline
All information within TRA advisories is provided “as is”, without warranty of any kind, including the implied warranties of merchantability and fitness for a particular purpose, and with no guarantee of completeness, accuracy, or timeliness. Individuals and organizations are responsible for assessing the impact of any actual or potential security vulnerability.
Tenable takes product security very seriously. If you believe you have found a vulnerability in one of our products, we ask that you please work with us to quickly resolve it in order to protect customers. Tenable believes in responding quickly to such reports, maintaining communication with researchers, and providing a solution in short order.
For more details on submitting vulnerability information, please see our Vulnerability Reporting Guidelines page.
If you have questions or corrections about this advisory, please email [email protected]