chore(llm-security): v7.8.3 — docs consistency + version bump (#8,#44,#45,#46,#47)
Bumps plugin to 7.8.3 (package.json, plugin.json, README version badge) and syncs the documentation surfaces that had drifted: orchestrated scanner count 9/10/13 to 14 (#8; the WFL/workflow scanner was omitted from the reference list), posture categories 13 to 16 (#44), red-team scenarios 64 to 72 (#45), tests badge/prose 1822 to 2013 (#46). Corrects the pathguard hook-table matcher and header comment to Edit|Write (follows the #9 fix) and removes the two dangling ROADMAP.md references (#47; the roadmap is not a public file). Adds the v7.8.3 CHANGELOG entry, README Recent-versions row, and CLAUDE.md highlights. The '23 scanners' total is a separate module count and is left unchanged. 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:
parent
14070160ba
commit
4cffa30725
10 changed files with 84 additions and 22 deletions
59
CHANGELOG.md
59
CHANGELOG.md
|
|
@ -6,6 +6,65 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|||
|
||||
## [Unreleased]
|
||||
|
||||
## [7.8.3] - 2026-07-18
|
||||
|
||||
Security and correctness patch. 47 verified fixes from the v7.8.1/v7.8.2
|
||||
completion-review MEDIUM tier (52 findings triaged: 48 confirmed defects, with
|
||||
3 feature-requests and 1 non-defect scoped out; capability work — the #11
|
||||
persistence detector and #27 AST-taint f-string recall — deferred to v8). No
|
||||
new features, and no CRITICAL/HIGH: every review-claimed HIGH downgraded to
|
||||
MEDIUM on re-verification. 2013 tests, 0 fail.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Supply-chain gate bypasses.** The offline npm blocklist was skipped for
|
||||
bare/range/tag installs (resolved version never re-checked); non-hoisted
|
||||
nested lockfile keys derived the wrong package name; the yarn.lock matcher
|
||||
both false-BLOCKed a legitimate package (unassociated substrings + unanchored
|
||||
`pkg@`) and missed Yarn Berry's `version:` format; `pip audit` (no such
|
||||
subcommand) made Python CVE detection a permanent silent no-op and, once
|
||||
corrected to `pip-audit`, audited the target instead of the scanner host.
|
||||
- **Hook coverage.** pathguard registered `Write` only, so an Edit to an
|
||||
existing protected file (settings, `.env`, `.ssh`, the hooks themselves)
|
||||
bypassed it — now `Edit|Write`. The trifecta window counted marker lines and
|
||||
could scroll a real leg out. The remote-pipe-to-shell block missed
|
||||
xargs/sudo/tee/env interposition. pre-edit-secrets missed bare provider keys
|
||||
(Anthropic, OpenAI, fine-grained GitHub PAT, Google, JWT).
|
||||
- **Scanner robustness / DoS.** Quadratic ReDoS in the HTML-obfuscation
|
||||
injection patterns (~28s to 4ms); unbounded readline on MCP-server stdout
|
||||
(memory exhaustion / uncaught RangeError); an uncapped same-host redirect loop
|
||||
in the VSIX fetcher; a scalar `policy.json` section override threw an uncaught
|
||||
TypeError; non-atomic writes to the MCP-description and skill-registry caches.
|
||||
- **False positives / negatives.** toxic-flow fabricated CRITICAL trifectas from
|
||||
substring keyword matches (`url` in `curl`); TRG-broad/-baiting fired on scoped
|
||||
phrasing and substrings; a legitimate leading UTF-8 BOM was flagged HIGH; the
|
||||
workflow actor-auth-bypass detector missed the bare `if:` form (Dependabot
|
||||
spoof); the git reflog force-push detector tripped on any `reset` in a commit
|
||||
subject; the diff engine mislabeled unchanged findings on duplicate
|
||||
fingerprints; memory-poisoning double-reported a hex token as base64 + hex.
|
||||
- **Parser divergence / evasion.** YAML block-scalar bodies were re-parsed as
|
||||
top-level keys (name/allowed_tools override) and indented/chomped block-scalar
|
||||
headers (`|2`, `>-`) were unrecognized; the bash normalizer decoded only
|
||||
`\xHH`, not ANSI-C octal/`\u`/`\U`; embedded base64 (opt-in) now reaches the
|
||||
SIG decode pipeline; `.env.local`/`.env.example` were silently skipped by
|
||||
discovery; `collapseLetterSpacing` (multi-space/tab) and `redact(_, _, 0)`
|
||||
(full-URL leak) were fixed; the SIG scanner now honours the documented
|
||||
`custom_rules_path` policy option.
|
||||
- **Docs / version consistency.** Orchestrated scanner count corrected to 14,
|
||||
posture categories to 16, red-team scenarios to 72, tests badge to 2013; SARIF
|
||||
`driver.version` now reflects the real plugin version; the pathguard matcher
|
||||
and persistence-detection documentation were corrected; dangling `ROADMAP.md`
|
||||
references removed.
|
||||
|
||||
### Deferred (to v8)
|
||||
|
||||
- Persistence-command detection (cron/launchctl/rc-files/plist) and the
|
||||
AST-taint f-string/concat/alias recall gap — capability enhancements, not
|
||||
defects in shipped code.
|
||||
- Deterministic detectors for AST09 (bulk knowledge load), AST10/LLM10
|
||||
(unbounded consumption), and MCP05 (path-traversal read sink) — each already
|
||||
covered by the LLM-agent layer.
|
||||
|
||||
## [7.8.2] - 2026-07-18
|
||||
|
||||
Security patch. Fixes five defects from the v7.8.1 completion review, four of
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue