Skip to content

SD-002: emoji ZWJ sequences are graded as invisible-character prompt injectionΒ #36

Description

@velzepooz

What happens

A SKILL.md whose only notable content is a family emoji (πŸ‘¨β€πŸ‘©β€πŸ‘§, a ZWJ sequence) fires SD-002 (Prompt Injection) as critical: "invisible Unicode character(s) detected". Because grading is worst-finding-wins, the skill's security axis drops to F. Meanwhile plain-text override phrasing in the same fixture produces no finding, so the outcome reads as inverted.

Repro: a skill directory with

---
name: emoji
description: d
---
Family: πŸ‘¨β€πŸ‘©β€πŸ‘§ and flag πŸ³οΈβ€πŸŒˆ are fine.

Proposal

Do not count U+200D (ZERO WIDTH JOINER) as an invisible character when it sits inside a valid emoji ZWJ sequence β€” between two emoji code points, or per emoji-zwj-sequences.txt. Keep U+200B, U+200C, U+2060, mid-text U+FEFF and tag characters U+E0000–U+E007F as they are. The rule's documented accepted false positive ("legitimate emoji sequences near the bounded zero-width joiner heuristic") stays true for edge cases; the common case stops grading F.

Downstream: needs a release and the usual pin bumps in consumers.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions