feat: add Glassworm supply-chain byte-level scanner#74
feat: add Glassworm supply-chain byte-level scanner#74ignaciosantise wants to merge 3 commits intomasterfrom
Conversation
Deterministic scanner that runs before code review to catch invisible Unicode obfuscation, malicious install hooks, eval-based payload decoders, and byte-count anomalies associated with the Glassworm supply-chain attack campaign. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Claude finished @ignaciosantise's task in 3s —— View job Review
Found 5 issue(s)Issue 1: External domain URL in reportID: action-external-domain-a3c1 Context:
Recommendation: Replace with an internal wiki/docs link, or remove the attribution URL entirely and keep just the inline label text: echo "This PR contains patterns associated with the Glassworm supply-chain attack campaign."Issue 2: Hardcoded
|
f3a9635 to
4b13a94
Compare
- Remove external aikido.dev URL from report output - Add base-ref input instead of hardcoded main fallback - Fix dead if logic in zero-width character check - Add PR comment deduplication (edit existing instead of spamming) - Fix filename word-splitting with mapfile -t - Extend install-hook detection to Rust (build.rs), CocoaPods (script_phase/prepare_command), Gradle (buildscript/plugins), Python (setup.py inline code), and Go (go:generate) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@claude review |
|
Claude finished @ignaciosantise's task in 2m 7s —— View job Review
🔄 Incremental Review: Verifying fixes from previous review + checking for new issues Previously Reported Issues
Found 2 issue(s)Issue 1: Hardcoded
|
- Move base-ref default to YAML input using github.base_ref || github.event.repository.default_branch, eliminating hardcoded "main" fallback in bash - Add python3 fallback for zero-width char detection when grep -Pc (PCRE) is unavailable on macOS runners Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary
glassworm-check/composite action — a deterministic byte-level scanner for the Glassworm supply-chain attack campaigngit diff, two-tier severity (critical vs warning), posts/updates PR comment on critical findingsChanges from initial draft
Addresses all 5 review findings:
base-refinput instead of hardcodedmainfallbackiflogic in zero-width character checkmapfile -tExtended install-hook detection beyond npm to 6 ecosystems (Rust, CocoaPods, Gradle, Python, Go).
Test plan
package.jsonadding apostinstallhook → should report WARNINGbuild.rsaddition → should report WARNING*.podspeccontainingscript_phase→ should report WARNINGfail-on-warning: true→ warnings should cause failure🤖 Generated with Claude Code