feat(ci): GitHub security pipeline (OWASP LLM Top 10 + secrets + LaTeX injection)#18
Merged
Merged
Conversation
Adds a 5-job security workflow triggered on PR open, synchronize, and reopen events — covering secret scanning (Gitleaks), npm dependency audit, TypeScript/React SAST via Semgrep, LaTeX shell-escape injection detection, and a personal data leak gate that hard-fails if gitignored profile files are accidentally tracked. Includes custom Semgrep rules targeting OWASP LLM Top 10 risks relevant to a Claude Code plugin: LLM01 prompt injection, LLM02 insecure output handling, LLM05 supply chain hooks, LLM06 credential disclosure, and LLM08 excessive agency (eval/exec). Findings upload as SARIF to the GitHub Security tab. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.
Summary
.github/workflows/security.yml— 5-job security pipeline triggered on every PR (open, synchronize, reopen).github/semgrep/llm-owasp.yaml— custom Semgrep rules for OWASP LLM Top 10 risks specific to a Claude Code pluginJobs
npm auditresumes/web-builder(skips if not committed yet)grep\write18andshell_escapein.textemplates (arbitrary shell execution)git ls-filesPERSONAL_PROFILE.md,.backup.files, or compiled resumes are accidentally trackedOWASP LLM Top 10 custom rules
innerHTML =,document.write,dangerouslySetInnerHTMLpreinstall/postinstallhooks inpackage.jsoneval(),new Function(), dynamicchild_process.execTest plan
GITLEAKS_LICENSEsecret can be left unset (public repo — Gitleaks works without it)resumes/web-builderis committed\write18present)🤖 Generated with Claude Code