circle-ir-ai 2.94.0 → 2.96.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -125,6 +125,39 @@ export const NON_TRUST_BOUNDARY_SOURCE_TYPES = new Set([
125
125
  'plugin_param',
126
126
  'constructor_field',
127
127
  ]);
128
+ /**
129
+ * HTTP-family trust-boundary types subject to the #264 Defect-3 corroboration
130
+ * gate. When one of these is claimed on a *bare method parameter* (as opposed to
131
+ * an HTTP call site like `request.getParameter(...)`), the parameter must earn
132
+ * the trust boundary via controller-class or param-annotation evidence — else it
133
+ * is a mis-tag (the pre-3.214 Rust-extractor `Path`→`http_param`, or LLM
134
+ * free-form discovery) and is demoted to `LIBRARY_API`. Non-HTTP boundary types
135
+ * (`url_param`, `dom_input`, `file_upload`, `io_input`, `user_input`, …) are not
136
+ * gated — they aren't produced by the method-param mis-tag path.
137
+ */
138
+ const HTTP_BOUNDARY_TYPES = new Set([
139
+ 'http_param',
140
+ 'http_query',
141
+ 'http_path',
142
+ 'http_header',
143
+ 'http_cookie',
144
+ 'http_body',
145
+ 'http_request',
146
+ 'request_param',
147
+ 'request_body',
148
+ ]);
149
+ /**
150
+ * Internal `NON_TRUST_BOUNDARY_SOURCE_TYPES` that classify to a capped bucket
151
+ * directly (#264). Without this, a `plugin_param` / `config_param` source fell
152
+ * through to `UNKNOWN`, where `SINK_SHAPE_SUFFICIENT_CWES` (sql/code/deser/…)
153
+ * passes the verifier's critical straight through — the Flyway schema-history
154
+ * `plugin_param → CWE-89` critical FP class. `interprocedural_param` /
155
+ * `constructor_field` / the second-order `*_input` types are deliberately NOT
156
+ * mapped here: they can carry real cross-method / second-order taint and must
157
+ * keep their existing fall-through behaviour to preserve recall.
158
+ */
159
+ const INTERNAL_CONFIG_SOURCE_TYPES = new Set(['env_input', 'env_var', 'cli_arg', 'config_param']);
160
+ const INTERNAL_PLUMBING_SOURCE_TYPES = new Set(['plugin_param']);
128
161
  /**
129
162
  * Annotations on the enclosing method's parameters that mark a
130
163
  * trust-boundary source — even when the source-line code itself
@@ -286,14 +319,42 @@ function annotationsInclude(annotations, targets) {
286
319
  export function classifySource(source, types) {
287
320
  if (!source)
288
321
  return 'UNKNOWN';
289
- // ---- Signal 1: source type tag (cheapest, most specific) ------------
290
322
  const sourceType = (source.type ?? '').toString();
291
- if (TRUST_BOUNDARY_SOURCE_TYPES.has(sourceType))
292
- return 'TRUST_BOUNDARY';
293
- // ---- Signal 2: AST context — enclosing class + method ---------------
323
+ // ---- AST context — enclosing class + method (hoisted; used below) ----
294
324
  const scope = findEnclosingScope(types, source.line);
295
325
  const enclosingType = scope.type;
296
326
  const enclosingMethod = scope.method;
327
+ // ---- Signal 1: source type tag (cheapest, most specific) ------------
328
+ if (TRUST_BOUNDARY_SOURCE_TYPES.has(sourceType)) {
329
+ // #264 Defect 3 — an HTTP-family tag on a bare method PARAMETER must earn
330
+ // the trust boundary via corroboration (controller class or a param
331
+ // annotation like @RequestParam / @QueryParam). Without it — a library /
332
+ // build-time param the Rust extractor mis-tagged `http_param` (pre-3.214),
333
+ // or an LLM free-form discovery — demote to LIBRARY_API (≤ medium). This
334
+ // only fires when the tagged source *is* an enclosing-method parameter;
335
+ // call-based sources (`request.getParameter(...)` → local var) and no-AST
336
+ // plugins don't match a parameter, so they keep TRUST_BOUNDARY unchanged.
337
+ if (HTTP_BOUNDARY_TYPES.has(sourceType) && types && source.variable) {
338
+ const param = enclosingMethod?.parameters?.find((p) => p.name === source.variable);
339
+ if (param) {
340
+ const corroborated = (!!enclosingType &&
341
+ annotationsInclude(enclosingType.annotations, CONTROLLER_CLASS_ANNOTATIONS)) ||
342
+ annotationsInclude(param.annotations, TRUST_BOUNDARY_ANNOTATIONS);
343
+ if (!corroborated)
344
+ return 'LIBRARY_API';
345
+ }
346
+ }
347
+ return 'TRUST_BOUNDARY';
348
+ }
349
+ // ---- Signal 1b: internal-plumbing source types (#264) ---------------
350
+ // Explicitly non-boundary types map straight to their capped bucket rather
351
+ // than falling to UNKNOWN (where SINK_SHAPE_SUFFICIENT_CWES would pass a
352
+ // verifier `critical` through). See INTERNAL_*_SOURCE_TYPES for the scoping
353
+ // rationale (interprocedural / constructor_field / second-order excluded).
354
+ if (INTERNAL_CONFIG_SOURCE_TYPES.has(sourceType))
355
+ return 'CONFIG';
356
+ if (INTERNAL_PLUMBING_SOURCE_TYPES.has(sourceType))
357
+ return 'LIBRARY_API';
297
358
  // 2a. Controller class — handler params are trust-boundary even when
298
359
  // not individually annotated.
299
360
  if (enclosingType &&
@@ -1 +1 @@
1
- {"version":3,"file":"source-classifier.js","sourceRoot":"","sources":["../../src/security-scan/source-classifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source-classifier.js","sourceRoot":"","sources":["../../src/security-scan/source-classifier.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,11 @@
19
19
  * - api_base_url_hijack (#38) — rewrites ANTHROPIC_BASE_URL / apiBaseUrl to a relay
20
20
  * - pretrust_hook_injection (#39) — writes a SessionStart hook that curl|bash from network
21
21
  * - suspicious_archive_download (#26) — fetch password-protected archive → extract → run
22
+ * - credential_exfiltration (#3) — reads ~/.aws / ~/.ssh / gh hosts → network egress
23
+ * - config_injection (#14) — writes .cursor/mcp.json / claude_desktop_config.json
24
+ * - invisible_characters (#5) — zero-width / invisible unicode in SKILL.md
25
+ * - bidi_override (#5) — bidirectional-override unicode in SKILL.md
26
+ * - repository_hijacking (#15) — ownership discontinuity / abandoned-repo claim (manifest)
22
27
  *
23
28
  * Design rules:
24
29
  * - Every detector requires a *combination* of signals (e.g. an archive step
@@ -1 +1 @@
1
- {"version":3,"file":"code-threat-patterns.d.ts","sourceRoot":"","sources":["../../src/skills/code-threat-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAoB,MAAM,YAAY,CAAC;AAgd9E;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,EAAE,CAa5E"}
1
+ {"version":3,"file":"code-threat-patterns.d.ts","sourceRoot":"","sources":["../../src/skills/code-threat-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAoB,MAAM,YAAY,CAAC;AAqmB9E;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,EAAE,CAiB5E"}
@@ -19,6 +19,11 @@
19
19
  * - api_base_url_hijack (#38) — rewrites ANTHROPIC_BASE_URL / apiBaseUrl to a relay
20
20
  * - pretrust_hook_injection (#39) — writes a SessionStart hook that curl|bash from network
21
21
  * - suspicious_archive_download (#26) — fetch password-protected archive → extract → run
22
+ * - credential_exfiltration (#3) — reads ~/.aws / ~/.ssh / gh hosts → network egress
23
+ * - config_injection (#14) — writes .cursor/mcp.json / claude_desktop_config.json
24
+ * - invisible_characters (#5) — zero-width / invisible unicode in SKILL.md
25
+ * - bidi_override (#5) — bidirectional-override unicode in SKILL.md
26
+ * - repository_hijacking (#15) — ownership discontinuity / abandoned-repo claim (manifest)
22
27
  *
23
28
  * Design rules:
24
29
  * - Every detector requires a *combination* of signals (e.g. an archive step
@@ -89,6 +94,36 @@ const META = {
89
94
  severity: 'critical',
90
95
  title: 'Password-protected archive bootstrap (fetch → extract with password → run)',
91
96
  },
97
+ credential_exfiltration: {
98
+ type: 'credential_exfiltration',
99
+ cwe: 'CWE-522', // insufficiently protected credentials
100
+ severity: 'critical',
101
+ title: 'Credential exfiltration (reads ~/.aws / ~/.ssh / gh hosts → network egress)',
102
+ },
103
+ config_injection: {
104
+ type: 'config_injection',
105
+ cwe: 'CWE-829', // inclusion of functionality from an untrusted control sphere
106
+ severity: 'high',
107
+ title: 'Host-agent config injection (writes .cursor/mcp.json / claude_desktop_config.json)',
108
+ },
109
+ invisible_characters: {
110
+ type: 'invisible_characters',
111
+ cwe: 'CWE-451', // UI misrepresentation of critical information
112
+ severity: 'high',
113
+ title: 'Invisible / zero-width unicode in the instruction file',
114
+ },
115
+ bidi_override: {
116
+ type: 'bidi_override',
117
+ cwe: 'CWE-451',
118
+ severity: 'high',
119
+ title: 'Bidirectional-override unicode in the instruction file (Trojan-Source style)',
120
+ },
121
+ repository_hijacking: {
122
+ type: 'repository_hijacking',
123
+ cwe: 'CWE-345', // insufficient verification of data authenticity (trusted-channel takeover)
124
+ severity: 'high',
125
+ title: 'Repository hijacking / ownership discontinuity (abandoned-repo claim under an official source)',
126
+ },
92
127
  };
93
128
  // ---------------------------------------------------------------------------
94
129
  // Shared signal helpers
@@ -337,6 +372,43 @@ function scanFile(path, content) {
337
372
  });
338
373
  }
339
374
  }
375
+ // ---- SR#3 credential_exfiltration ------------------------------------
376
+ // Reads a credential/secret file (~/.aws/credentials, ~/.ssh/id_rsa, gh
377
+ // hosts, .netrc) AND ships it out. A skill that reads credentials without
378
+ // egress, or has egress without a credential read, does not fire.
379
+ {
380
+ const CRED_FILE = /\.aws\/credentials|\.ssh\/id_(rsa|ed25519|dsa)\b|\.config\/gh\/hosts|\.netrc\b|\/etc\/(shadow|passwd)\b|\bcredentials\.json\b|\.docker\/config\.json/i;
381
+ if (CRED_FILE.test(content) && fileHasEgress) {
382
+ const at = firstLineMatching(lines, CRED_FILE);
383
+ hits.push({
384
+ key: 'credential_exfiltration',
385
+ line: at.n,
386
+ snippet: at.text,
387
+ confidence: 0.9,
388
+ detail: 'reads local credential files and sends them to a network endpoint',
389
+ });
390
+ }
391
+ }
392
+ // ---- SR#14 config_injection ------------------------------------------
393
+ // Writes an agent MCP/host config (.cursor/mcp.json, Claude Desktop
394
+ // claude_desktop_config.json, .claude/settings) — planting untrusted MCP
395
+ // servers or settings. Requires a WRITE to a recognized config path; a skill
396
+ // that only documents MCP config in prose (safe-SR-B14-mcp-docs, no code)
397
+ // stays clean.
398
+ {
399
+ const CONFIG_PATH = /claude_desktop_config\.json|\.cursor\/mcp\.json|\bmcp\.json\b|\.claude\/settings\.json|mcpServers/i;
400
+ const WRITE_OP = /\.write_text\s*\(|\bwriteFileSync\b|\bfs\.writeFile\b|\bopen\s*\([^)]*['"][wa]\+?['"]|>\s*[^>\n]*\.(json)\b|\becho\b[^\n]*>\s*\S+\.json/i;
401
+ if (CONFIG_PATH.test(content) && WRITE_OP.test(content)) {
402
+ const at = firstLineMatching(lines, /claude_desktop_config|\.cursor\/mcp|\.claude\/settings|mcpServers/i);
403
+ hits.push({
404
+ key: 'config_injection',
405
+ line: at.n,
406
+ snippet: at.text,
407
+ confidence: 0.85,
408
+ detail: 'writes host-agent MCP/settings config (planting untrusted servers)',
409
+ });
410
+ }
411
+ }
340
412
  return hits.map((h) => hitToFinding(path, h));
341
413
  }
342
414
  // ---------------------------------------------------------------------------
@@ -428,6 +500,82 @@ function scanArchiveBootstrap(artifact, text) {
428
500
  ];
429
501
  }
430
502
  // ---------------------------------------------------------------------------
503
+ // SR#5 — invisible / bidi unicode in the instruction file
504
+ // ---------------------------------------------------------------------------
505
+ //
506
+ // Legitimate SKILL.md prose is plain text. Zero-width / invisible codepoints
507
+ // (used to smuggle hidden instructions past a human reviewer) and
508
+ // bidirectional-override codepoints (Trojan-Source, reorders visible text) are
509
+ // high-signal steganographic-instruction markers the LLM pass alone misses.
510
+ // Zero-width / invisible: ZWSP..ZWJ, WJ..invisible-ops, BOM, Mongolian vowel
511
+ // sep, soft hyphen, combining grapheme joiner.
512
+ const INVISIBLE_CHARS = /[​-‍⁠-⁤᠎­͏]/;
513
+ const INVISIBLE_CHARS_G = /[​-‍⁠-⁤᠎­͏]/g;
514
+ // Bidi override/isolate: LRE/RLE/PDF/LRO/RLO, LRI/RLI/FSI/PDI.
515
+ const BIDI_OVERRIDE = /[‪-‮⁦-⁩]/;
516
+ function scanUnicode(skillMd) {
517
+ if (!skillMd)
518
+ return [];
519
+ const out = [];
520
+ if (INVISIBLE_CHARS.test(skillMd)) {
521
+ const meta = META.invisible_characters;
522
+ const count = (skillMd.match(INVISIBLE_CHARS_G) || []).length;
523
+ out.push({
524
+ type: meta.type, severity: meta.severity, artifact: 'SKILL.md', title: meta.title,
525
+ description: `${meta.title}: ${count} zero-width/invisible codepoint(s) in the instruction text.`,
526
+ evidence: { detector: 'invisible_characters', detail: `${count} invisible codepoints` },
527
+ confidence: 0.9, cwe: meta.cwe, location: { line: 1 },
528
+ });
529
+ }
530
+ if (BIDI_OVERRIDE.test(skillMd)) {
531
+ const meta = META.bidi_override;
532
+ out.push({
533
+ type: meta.type, severity: meta.severity, artifact: 'SKILL.md', title: meta.title,
534
+ description: `${meta.title}: bidirectional-override codepoint(s) that can reorder the visible instruction text.`,
535
+ evidence: { detector: 'bidi_override', detail: 'bidi override codepoints present' },
536
+ confidence: 0.9, cwe: meta.cwe, location: { line: 1 },
537
+ });
538
+ }
539
+ return out;
540
+ }
541
+ // ---------------------------------------------------------------------------
542
+ // SR#15 — repository hijacking / ownership discontinuity
543
+ // ---------------------------------------------------------------------------
544
+ //
545
+ // Trusted-channel takeover: the manifest keeps an official `source` URL but the
546
+ // `author` changed from `previous_author`, or declares an `ownership` that
547
+ // signals an abandoned-repo claim / unverified transfer. Consistent ownership
548
+ // (`ownership: stable`, author == previous_author) stays clean. Manifests with
549
+ // no ownership fields need registry history and are out of scope (an accepted
550
+ // FN, per the SR-C11-history-only pin).
551
+ function scanOwnership(skillMd) {
552
+ const fm = /^---\r?\n([\s\S]*?)\r?\n---/.exec(skillMd ?? '');
553
+ if (!fm)
554
+ return [];
555
+ const block = fm[1];
556
+ const field = (k) => (new RegExp(`^\\s*${k}\\s*:\\s*(.+?)\\s*$`, 'im').exec(block)?.[1] || '').trim();
557
+ const ownership = field('ownership').toLowerCase();
558
+ const author = field('author').toLowerCase();
559
+ const prevAuthor = field('previous_author').toLowerCase();
560
+ const hijackOwnership = /abandon|takeover|unverified|transferred|reclaim|\bclaimed\b/.test(ownership);
561
+ const authorDiscontinuity = !!prevAuthor && !!author && prevAuthor !== author;
562
+ if (!hijackOwnership && !authorDiscontinuity)
563
+ return [];
564
+ const meta = META.repository_hijacking;
565
+ const detail = hijackOwnership
566
+ ? `ownership declared "${ownership}"${authorDiscontinuity ? ` with an author change (${prevAuthor} → ${author})` : ''}`
567
+ : `author changed (${prevAuthor} → ${author}) under an unchanged source URL`;
568
+ return [
569
+ {
570
+ type: meta.type, severity: meta.severity, artifact: 'SKILL.md', title: meta.title,
571
+ description: `${meta.title} in SKILL.md: ${detail}.`,
572
+ evidence: { detector: 'repository_hijacking', detail },
573
+ confidence: hijackOwnership && authorDiscontinuity ? 0.92 : 0.8,
574
+ cwe: meta.cwe, location: { line: 1 },
575
+ },
576
+ ];
577
+ }
578
+ // ---------------------------------------------------------------------------
431
579
  // Public API
432
580
  // ---------------------------------------------------------------------------
433
581
  /**
@@ -448,6 +596,10 @@ export function detectCodeThreatPatterns(bundle) {
448
596
  findings.push(...scanDynamicContext(bundle.skillMd ?? ''));
449
597
  // SR#26 — password-archive bootstrap, usually a fenced block in SKILL.md.
450
598
  findings.push(...scanArchiveBootstrap('SKILL.md', bundle.skillMd ?? ''));
599
+ // SR#5 — invisible / bidi unicode smuggling in the instruction file.
600
+ findings.push(...scanUnicode(bundle.skillMd ?? ''));
601
+ // SR#15 — repository hijacking / ownership discontinuity in the manifest.
602
+ findings.push(...scanOwnership(bundle.skillMd ?? ''));
451
603
  return findings;
452
604
  }
453
605
  //# sourceMappingURL=code-threat-patterns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-threat-patterns.js","sourceRoot":"","sources":["../../src/skills/code-threat-patterns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-threat-patterns.js","sourceRoot":"","sources":["../../src/skills/code-threat-patterns.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,23 @@
1
1
  /**
2
2
  * Instruction Safety Classifier
3
3
  *
4
- * Dedicated LLM pass that reads SKILL.md (or any instruction text) and
5
- * directly classifies for the 6 threat categories relevant to LLM agent
6
- * skill registries. This is a separate concern from NaturalLanguageExtractor,
7
- * which builds a CircleIR for capability mismatch detection.
4
+ * Dedicated LLM pass that reads SKILL.md (including its YAML frontmatter
5
+ * `description:` field) and directly classifies for the LLM-agent instruction
6
+ * threat categories relevant to skill registries. This is a separate concern
7
+ * from NaturalLanguageExtractor, which builds a CircleIR for capability
8
+ * mismatch detection.
8
9
  *
9
- * Threat → CWE mapping (per Runics scoring pipeline):
10
- * PROMPT_INJECTION → CWE-94 (Code Injection)
11
- * DATA_EXFILTRATION → CWE-200 (Information Exposure)
12
- * HIDDEN_URL → CWE-601 (URL Redirection to Untrusted Site)
13
- * HARDCODED_CREDENTIAL → CWE-798 (Hardcoded Credentials)
14
- * CAPABILITY_ESCALATION → CWE-345 (Insufficient Verification of Data Authenticity)
15
- * SOCIAL_ENGINEERING → CWE-74 (Injection)
10
+ * Base six (per Runics scoring pipeline): PROMPT_INJECTION (CWE-94),
11
+ * DATA_EXFILTRATION (CWE-200), HIDDEN_URL (CWE-601), HARDCODED_CREDENTIAL
12
+ * (CWE-798), CAPABILITY_ESCALATION (CWE-345), SOCIAL_ENGINEERING (CWE-74).
13
+ *
14
+ * SR-A instruction-safety detectors (skillsregistry #6,#7,#11,#22,#28,#31,#32,#37):
15
+ * SYSTEM_PROMPT_LEAK, MULTI_AGENT_INFECTION, THIRD_PARTY_CONTENT_INJECTION,
16
+ * GOAL_HIJACKING, CONTENT_MANIPULATION, CONTEXTUAL_DUAL_USE_EXFIL,
17
+ * DESCRIPTION_INJECTION, INDIRECT_INJECTION, CONDITIONAL_INSTRUCTION,
18
+ * SAFETY_SUBVERSION, DEFERRED_EXECUTION, SCANNER_DIRECTED_INJECTION,
19
+ * CROSS_SKILL_INTERFERENCE. All ride the single existing LLM call — no new
20
+ * call sites (P4).
16
21
  */
17
22
  import type { SkillFinding } from './types.js';
18
23
  import type { LLMConfig } from '../llm/config.js';
@@ -1 +1 @@
1
- {"version":3,"file":"instruction-safety.d.ts","sourceRoot":"","sources":["../../src/skills/instruction-safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAuElD;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC7B,OAAO,CAAC,YAAY,EAAE,CAAC,CA6FzB"}
1
+ {"version":3,"file":"instruction-safety.d.ts","sourceRoot":"","sources":["../../src/skills/instruction-safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAuJlD;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC7B,OAAO,CAAC,YAAY,EAAE,CAAC,CAkOzB"}