Skip to content

Security: CTOUT/vscode-copilot-sync

SECURITY.md

Security Policy

Supported Versions

vscode-copilot-sync follows Semantic Versioning. Security fixes are applied to the main branch only. There are no separate maintenance branches at this time.

Version Supported
main (latest) Yes
Older releases No

Reporting a Vulnerability

Please do not report security vulnerabilities through public GitHub issues.

Open a GitHub Security Advisory to report a vulnerability privately.

Include in your report:

  • A description of the vulnerability and its potential impact
  • Steps to reproduce or a proof-of-concept
  • Any suggested mitigations if you have them

You can expect:

  • Acknowledgement within 48 hours
  • A status update within 7 days
  • Credit in the release notes if you would like it

We ask that you give us reasonable time to address the issue before any public disclosure.

Scope

This repository contains:

  • PowerShell scripts (configure.ps1, scripts/*.ps1, scripts/lib/*.ps1) that clone/pull from github/awesome-copilot and write files into a target repository's .github/ folder and VS Code user directories
  • POSIX shell wrapper (run.sh) and GitHub Actions automation workflows (.github/workflows/)

Vulnerabilities in any of these are in scope. Areas of particular interest:

  • Remote content execution: the sync scripts fetch file content from a third-party repository and write it directly to your local filesystem. A compromised upstream repository could introduce malicious instruction, agent, or workflow files.
  • Path traversal: filenames sourced from the upstream repository are used to construct destination paths. A crafted filename (e.g. ../../evil.ps1) could attempt to write outside the intended .github/ or prompts directory.
  • gh / git invocations: the scripts shell out to gh or git. Ensure neither is replaced with a malicious binary on your PATH.
  • VS Code user prompts directory: files written to %APPDATA%\Code\User\prompts\ (or the platform equivalent) are picked up by GitHub Copilot for all repositories. A malicious file installed here has broad impact.

Script Security Notes

  • All destination paths are validated using canonical boundary validation (Assert-PathWithin in scripts/lib/Common.ps1) to ensure all write and remove targets remain strictly within authorized directories.

  • Upstream catalogue parsing (llms.txt in scripts/sync-awesome-copilot.ps1) sanitizes and validates relative paths against directory traversal tokens (..).

  • The scripts do not execute any of the content they download — they copy files only.

  • A -DryRun / -Plan flag is available on all scripts to preview changes without writing any files:

    .\configure.ps1 -DryRun
    .\scripts\sync-awesome-copilot.ps1 -Plan
  • A mass-removal safety check is built into sync-awesome-copilot.ps1 to prevent a sudden large-scale deletion of local files being applied silently. Pass -Force only if you have verified the upstream change is intentional.

Verifying Upstream Content

Because the scripts pull directly from github/awesome-copilot, we recommend:

  1. Pin the sync to a specific commit or tag using the -Ref parameter (where supported) rather than always tracking main.

  2. Review the diff of any newly synced files before installing them into a repository:

    # Preview what would be installed without writing anything
    .\configure.ps1 -DryRun
  3. Inspect newly downloaded files in ~/.awesome-copilot/ before running init-repo.ps1 or init-user.ps1.

There aren't any published security advisories