chore: update DocGuard extension to v0.21.1#2707
Open
raccioly wants to merge 1 commit into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Updates the community extensions catalog metadata to reflect a new docguard release and refreshes the catalog timestamps.
Changes:
- Bumped
docguardextension version and updated its release download URL. - Updated
updated_attimestamps for the catalog and thedocguardentry.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+853
to
+854
| "version": "0.21.1", | ||
| "download_url": "https://github.com/raccioly/docguard/releases/download/v0.21.1/spec-kit-docguard-v0.21.1.zip", |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DocGuard Community Extension Update
Updates the DocGuard community extension catalog entry.
Changes
spec-kit-docguard-v0.21.1.zipRelease Notes
Security patch — closes issue #190. Command injection vulnerability in
docguard initvia theaifield of.specify/init-options.jsonis fixed.Security
Issue What command should we execute in the VS Code terminal after navigating to the project directory using cd <project_name> if we want to use Git Copilot? #190: command injection in
cli/commands/init.mjsandcli/ensure-skills.mjs. ThedetectAIAgent()helper returned theaifield from.specify/init-options.jsonwithout validation, andthat value was then shell-interpolated into an
execSyncinvocation:A local attacker with file-system write access to a victim's repo
could plant
{"ai": "claude; touch /tmp/pwned;"}and triggerarbitrary command execution on the victim's next
docguard init.Severity: Medium (requires local file-system access; pre-fix
detectAIAgentconsumed configs from any project DocGuard ran in).Discovered: 23 duplicate auto-generated draft PRs from the
"Sentinel" AI agent flagged this during the v0.19 cleanup sweep.
The drafts were closed as noise but the underlying finding was
tracked in What command should we execute in the VS Code terminal after navigating to the project directory using cd <project_name> if we want to use Git Copilot? #190 — fixed properly here.
Fix (two layers, defense in depth):
getDetectedAgent()now allowlist-validates theaifield against/^[a-zA-Z0-9_-]{1,32}$/. Anything else (shell metacharacters,non-strings, oversized values) returns
null.safeSpawnSpecify(args, opts)helper usesexecFileSyncwithargs passed as an array — no shell interpolation possible. Both
unsafe call sites (
init.mjsandensure-skills.mjs) now usethis helper. Cross-platform (POSIX direct exec / Windows
cmd.exe /c specify.cmd).Tests
tests/security-init-injection.test.mjspinsboth defense layers. Tests every shell metacharacter (
;, backtick,$(),|,&&, newline), oversized values, non-string types,malformed JSON, missing config files. Asserts the legitimate
allowlist (claude, cursor-agent, gemini, agy, copilot, windsurf,
codex, roo, amp, kiro-cli, tabnine, underscore-bearing future names).
Audit
grep -rn execSync cli/was re-run; remaining call sites are allhardcoded literals (no attacker-influenced interpolation): freshness
git probes, score's git probe, setup/doc-quality
which-styledetection. Documented in commit message.
This PR was automatically generated by the DocGuard release pipeline.