title: Rapid7 Velociraptor directory traversal in client ID parameter
description: Rapid7 Velociraptor did not properly sanitize the client ID parameter to the CreateCollection API, allowing a directory traversal in where the collection task could be written. It was possible to provide a client id of "../clients/server" to schedule the collection for the server (as a server artifact), but only require privileges to schedule collections on the client.
Normally, to schedule an artifact on the server, the COLLECT_SERVER permission is required. This permission is normally only granted to "administrator" role. Due to this issue, it is sufficient to have the COLLECT_CLIENT privilege, which is normally granted to the "investigator" role.
To exploit this vulnerability, the attacker must already have a Velociraptor user account at least "investigator" level, and be able to authenticate to the GUI and issue an API call to the backend. Typically, most users deploy Velociraptor with limited access to a trusted group, and most users will already be administrators within the GUI.
This issue affects Velociraptor versions before 0.6.7-5. Version 0.6.7-5, released January 16, 2023, fixes the issue.
problem types: CWE-22 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
affected:
{
collectionURL: https://github.com/Velocidex/velociraptor/releases
defaultStatus: unaffected
modules: CreateCollection API
packageName: Velociraptor
platforms: [Windows, Linux, MacOS, 64 bit, 32 bit]
product: Velociraptor
programFiles: https://github.com/Velocidex/velociraptor/blob/master/services/launcher/launcher.go
programRoutines:
name: ScheduleArtifactCollection()
repo: https://github.com/Velocidex/velociraptor/
vendor: Rapid7
versions:
changes: [at: 5, status: unaffected], lessThan: 0.6.7-5, status: affected, version: 0, versionType: semver
}
solutions: Upgrade to 0.6.7-5