TC-2025-0042 · GH · LURE

rules-file-backdoor/[email protected]

Rules File Backdoor: hides invisible Unicode tag/bidirectional characters inside .cursorrules and .github/copilot-instructions.md to force coding agents to inject backdoors into generated application code.

Signed ledger verdict

TC-2025-0042
Known bad (exit 2) gh:rules-file-backdoor/cursorrules-unicode-poison

IOC & scope: gh:rules-file-backdoor/cursorrules-unicode-poison (.cursorrules / .github/copilot-instructions.md). Verified by human review and signed into the CC-BY 4.0 OSV v1.6.0 feed.

Credited finder
Pillar Security ↗
Recorded timestamp
2025-03-19
Canonical SHA-256
5560a06bffab05e7…
Local hook action
Block (exit 2)
01 8-Vector Capability X-Ray (ABOM) & OWASP Agentic Crosswalk

Deterministic capability profile and taxonomy mapping.

Every artifact in the threat.cafe ledger is profiled across eight execution vectors and mapped to the OWASP Top 10 for Agentic Applications (ASI01-ASI10) and Agentic Skills & Tools (AST01-AST10).

8-Vector Capability X-Ray (ABOM)

  1. 1. Filesystem
    Sensitive paths touched: .cursorrules, .github/copilot-instructions.md, CLAUDE.md
  2. 2. Environment
    Variables harvested: None observed
  3. 3. Network
    Outbound egress domains: None observed
  4. 4. Subprocess
    Process execution primitives: None observed
  5. 5. Lifecycle
    Install / startup hooks: None observed
  6. 6. OAuth / MCP
    Declared scopes: None observed
  7. 7. Obfuscation
    Encoding / steganography: unicode_bidi_tags_u202e_ue0001
  8. 8. Provenance
    Attestation status: poisoned_repo_rules_file

Governance & detector mapping

  1. OWASP Agentic ASI (2026): ASI01 (Agent Goal Hijack), ASI05 (Unexpected Code Execution (RCE))
  2. OWASP Agentic AST (2026): AST01 (Malicious MCP Servers), AST04 (Covert Channel Exfiltration)
  3. Deterministic rules matched: RULE_01_GLASSWORM_UNICODE, RULE_02_PROMPT_OVERRIDE

Version scoping & related records

  • No other versions of this package are currently listed on the board. Unlisted versions evaluate to unknown under local policy.yml.

Local CLI verification

$ threat-cafe-hook check "gh:rules-file-backdoor/cursorrules-unicode-poison"
[threat.cafe] known_bad: gh:rules-file-backdoor/cursorrules-unicode-poison (TC-2025-0042)
  Reason: Rules File Backdoor: hides invisible Unicode tag/bidirectional characters inside .cursorru
  Source: https://www.pillar.security/blog/new-vulnerability-in-github-copilot-and-cursor-how-hackers-can-weaponize-code-agents (credited to Pillar Security)

OSV v1.6.0 machine-readable record

Included in /feed.json under CC-BY 4.0 license and verified by /feed.json.sig.

{
  "schema_version": "1.6.0",
  "id": "TC-2025-0042",
  "modified": "2025-03-19T12:00:00Z",
  "published": "2025-03-19T12:00:00Z",
  "summary": "Rules File Backdoor: hides invisible Unicode tag/bidirectional characters inside .cursorrules and .github/copilot-instructions.md to force coding agents to inject backdoors into generated application code.",
  "affected": [
    {
      "package": {
        "ecosystem": "gh",
        "name": "rules-file-backdoor/cursorrules-unicode-poison"
      },
      "versions": [
        "1.0.0"
      ]
    }
  ],
  "credits": [
    {
      "name": "Pillar Security",
      "type": "FINDER"
    }
  ],
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://www.pillar.security/blog/new-vulnerability-in-github-copilot-and-cursor-how-hackers-can-weaponize-code-agents"
    },
    {
      "type": "WEB",
      "url": "https://threat.cafe/incidents/tc-2025-0042/"
    }
  ],
  "database_specific": {
    "target": "gh:rules-file-backdoor/cursorrules-unicode-poison",
    "kind": "lure",
    "verdict": "known_bad",
    "ioc": "gh:rules-file-backdoor/cursorrules-unicode-poison (.cursorrules / .github/copilot-instructions.md)",
    "artifact_sha256": "5560a06bffab05e7b22706c8613aa80e2e7339cf7804dcab878681d12c79ee9d",
    "owasp_asi": [
      "ASI01",
      "ASI05"
    ],
    "owasp_ast": [
      "AST01",
      "AST04"
    ],
    "rules_matched": [
      "RULE_01_GLASSWORM_UNICODE",
      "RULE_02_PROMPT_OVERRIDE"
    ],
    "abom": {
      "fs_sensitive": [
        ".cursorrules",
        ".github/copilot-instructions.md",
        "CLAUDE.md"
      ],
      "env_harvest": [],
      "net_egress": [],
      "proc_exec": [],
      "install_hooks": [],
      "oauth_scopes": [],
      "obfuscation": [
        "unicode_bidi_tags_u202e_ue0001"
      ],
      "provenance": "poisoned_repo_rules_file"
    },
    "license": "CC-BY-4.0",
    "record_digest": "sha256:6f44e9ba87f0a4225ad0b86f60e7137e4440de8248a372a7043570f30f2fb5e8",
    "release_signature_url": "https://threat.cafe/feed.json.sig"
  }
}

Have additional IOCs or a maintainer remediation update for TC-2025-0042?

Maintainer disputes and version-scoping updates are reviewed by a human within our 48-hour dispute SLA.