fix(llm-security): misc scanner correctness — reflog FP, diff exact-pass, hex dedupe, SARIF version (#20,#22,#50,#54,#56)

#20 git-forensics' reflog force-push detector had a redundant bare 'reset' term subsuming 'reset:', so any commit subject containing 'reset' tripped it; removed. #22 diff-engine's per-current moved-fallback greedily consumed a baseline candidate a later byte-exact match needed (mislabeling unchanged as new/moved on duplicate fingerprints); a global exact pass now runs before the moved-fallback. #54 memory-poisoning double-reported a 64+ char hex token as both base64 and hex; the base64 check now skips pure-hex tokens.

#56 SARIF output hardcoded driver.version 6.0.0 because the orchestrator called toSARIF() without a version; it now passes the real plugin version from package.json. #50 the VS Code known-malicious blocklist was empty with no explanation (unlike the JetBrains file's 'empty by design' note); added a matching blocklist_note. Suite 2004/0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01TcQyMTQfyrsAapaCMPxTtQ
This commit is contained in:
Kjell Tore Guttormsen 2026-07-18 10:36:51 +02:00
commit 66e8ce2740
10 changed files with 340 additions and 9 deletions

View file

@ -3,7 +3,8 @@
"source": "VS Code Marketplace 'Most Popular' snapshot 2026-04-17. Manually curated from Marketplace and Koi/ExtensionTotal research.",
"count": 100,
"last_updated": "2026-04-17",
"purpose": "Typosquat detection seed. IDs are lowercase publisher.name."
"purpose": "Typosquat detection seed. IDs are lowercase publisher.name.",
"blocklist_note": "Empty by design — the Koi/ExtensionTotal research cited in source informed the allowlist curation, not confirmed-malicious IDs; no publicly confirmed-malicious VS Code Marketplace extension IDs curated as of 2026-04-17. Enterprise policy.json can seed private entries with form {id, version_range, reason, source}."
},
"vscode": [
"ms-python.python",