Arbitrary code execution when opening a malicious workspace
Impact
If an attacker can get a user to open a specially prepared directory tree as a workspace in Visual Studio Code with the CodeQL extension active, arbitrary code of the attacker's choosing may be executed on the user's behalf.
Patches
This is fixed in version 1.0.1 of the extension by https://github.com/github/vscode-codeql/pull/174. Users should upgrade to this version using Visual Studio Code Marketplace's upgrade mechanism.
After upgrading, the codeQL.cli.executablePath setting can only be set in the per-user settings, and not in the per-workspace settings. More information about VS Code settings can be found [here](https://code.visualstudio.com/docs/getstarted/settings).
Workarounds
Manually review the workspace settings for any workspace obtained from an external source. These settings can be found in the .vscode/settings.json file within the workspace directory. Remove the configuration values for the codeQL.cli.executablePath, codeQL.cli.owner, and codeQL.cli.repository settings for the workspace.
If you wish to use the codeQL.cli.executablePath setting to indicate the location of a CodeQL CLI executable, then move this to your user settings, and check that you trust the configured path. You can access the user settings by choosing Preferences: Open User Settings from the Command Palette.
References
-...
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| vscode-codeql Product | < 1.0.1 | 1.0.1 |
Details and references
### Impact If an attacker can get a user to open a specially prepared directory tree as a workspace in Visual Studio Code with the CodeQL extension active, arbitrary code of the attacker's choosing may be executed on the user's behalf. ### Patches This is fixed in version 1.0.1 of the extension by https://github.com/github/vscode-codeql/pull/174. Users should upgrade to this version using Visual Studio Code Marketplace's upgrade mechanism. After upgrading, the `codeQL.cli.executablePath` setting can only be set in the per-user settings, and not in the per-workspace settings. More information about VS Code settings can be found [here](https://code.visualstudio.com/docs/getstarted/settings). ### Workarounds Manually review the workspace settings for any workspace obtained from an external source. These settings can be found in the `.vscode/settings.json` file within the workspace directory. Remove the configuration values for the `codeQL.cli.executablePath`, `codeQL.cli.owner`, and `codeQL.cli.repository` settings for the workspace. If you wish to use the `codeQL.cli.executablePath` setting to indicate the location of a CodeQL CLI executable, then move this to your user settings, and check that you trust the configured path. You can access the user settings by choosing `Preferences: Open User Settings` from the Command Palette. ### References - https://code.visualstudio.com/docs/getstarted/settings ### For more information If you have any questions or comments about this advisory, open an issue in [github/vscode-codeql](https://github.com/github/vscode-codeql).
- Severity from
- GitHub (reviewed advisory)