Skip to content

feat: add detect-invisible-unicode action#29

Open
KlausNie wants to merge 1 commit intomainfrom
feat/detect-invisible-unicode
Open

feat: add detect-invisible-unicode action#29
KlausNie wants to merge 1 commit intomainfrom
feat/detect-invisible-unicode

Conversation

@KlausNie
Copy link
Member

@KlausNie KlausNie commented Mar 16, 2026

Examples:

Summary

  • Adds detect-invisible-unicode composite action to scan source files for invisible Unicode characters used in supply chain attacks
  • Detects GlassWorm vectors (Variation Selectors U+FE00–U+FE0F, U+E0100–U+E01EF) and Trojan Source bidirectional control characters
  • Also covers zero-width chars, hidden BOM, Tags block, and Private Use Area characters
  • Skips binary files automatically; emits GitHub Actions annotations with file and line number per finding

Test plan

  • Call the action on a repo with a file containing a variation selector character — should fail with ::error annotation
  • Call the action on a clean repo — should exit 0 with "No invisible Unicode characters detected"
  • Verify exclude-dirs and exclude-patterns inputs correctly skip matching paths
  • Verify fail-on-found: false reports findings without failing the job

Adds a composite action that scans source files for invisible Unicode
characters used in supply chain attacks (GlassWorm, Trojan Source).
Detects variation selectors, zero-width chars, bidirectional controls,
BOM, Tags block, and Private Use Area characters via grep PCRE patterns.
@KlausNie KlausNie force-pushed the feat/detect-invisible-unicode branch from 36f157b to 50e3df3 Compare March 17, 2026 06:16
@KlausNie KlausNie self-assigned this Mar 17, 2026
@KlausNie KlausNie requested a review from nasirky March 17, 2026 07:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant