Skip to content

Latest commit

 

History

History
400 lines (400 loc) · 60.1 KB

CHANGELOG.md

File metadata and controls

400 lines (400 loc) · 60.1 KB

Features/Bug Fixes

  • fix(provider): keep reasoning effort pass-through consistent (#283) (f0029184)
  • feat(provider): keep reasoning effort consistent across Anthropic paths (#283) (c9809a4c)
  • feat(provider): forward reasoning effort to OpenAI-compatible models (#283) (a2c438e7)
  • fix(analyzer): align file-size guard with character semantics (#284) (494a0ac4)

Features/Bug Fixes

  • fix(analyzer): reduce cupynumeric false positives (b3840e76)
  • fix(analyzer): reduce security-pattern false positives (450f623a)
  • fix(analyzer): scope passwd mount and rm detection (4cb73a29)

Features/Bug Fixes

  • fix: mask release command failures (564870a1)
  • ci: validate default branch pushes (8092a9e7)
  • Fix Sonar finding in YARA rule materialization (a7bb3d4d)
  • feat(provider): allow scoped LLM provider injection (#243) (fa07d56b)
  • fix emoji zwj prompt injection false positive (bd9a6630)
  • fix(analyzer): keep executable doc calls outside suppression (#251) (8b7569fe)
  • fix(analyzer): keep inline block comments out of doc gating (#251) (e87c0896)
  • fix(analyzer): classify docs from the finding line (#251) (5b696557)
  • fix(analyzer): keep config-file findings outside doc gating (#251) (c4a9f0c2)
  • fix(analyzer): gate documentation false positives for PE3/RA1/TM1/AR2 (#251) (7fae683f)
  • fix(cli): preserve full per-skill JSON payload in recursive scans (#228) (624edc35)
  • fix(yara): skip malformed unicode encoded rules (#236) (5d5275ae)
  • fix(yara): reduce packaged malware-signature false positives (#236) (878ee050)
  • fix(sc7): exclude --disable-content-trust=false to keep content-trust-enabled pulls clean (4a4eed7c)
  • fix(analyzer): rely on runner for SC7 example filtering to close executable bypass (79ebb0bb)
  • feat(analyzer): detect untrusted container image pull as SC7 (5af944be)
  • fix(report): preserve exact SARIF severity metadata (#229) (b903836c)
  • fix(report): preserve remaining SARIF finding fields (#229) (b0691ded)
  • fix(report): preserve full finding metadata in SARIF output (#229) (2adabfb2)
  • Format: ruff lint and format fixes (f97ac489)
  • Add unit tests for run_async utility function (32c2b624)
  • Fix: remove unused asyncio import from meta_analyzer.py (d3c48b61)
  • Fix: Allow running in environments with existing event loop (bc27b71d)

Features/Bug Fixes

  • fix: mask release command secrets (d00fa2d5)
  • docs: correct MCP fixture expectations (84da0b8e)
  • fix(mcp): prove stdio initialize compatibility (#199) (59242513)
  • fix: trim batch scan README command whitespace (374a81de)
  • rename contrib/multilingual to contrib/batch_scan and update README usage (ea2b2b48)
  • ci: align GitHub CI with deterministic checks (a76f1319)

Features/Bug Fixes


Features/Bug Fixes

  • refactor: centralize cleanup and risk threshold (f7868378)
  • docs: finalize PR #100 review — docs, tests, world-class polish (18d46dcb)
  • fix: wire ApiKeyPool into llm_analyzer_base graph path (464eaddc)
  • fix: add SPDX headers, from future annotations, conftest.py to all test files - Add SPDX license header to 8 test files - Add from future import annotations to 8 test files - Fix Unicode stdout crash in test_pool_wiring.py on Windows - Add conftest.py with pytest markers registration - 120 tests passing Co-Authored-By: Claude noreply@anthropic.com (59e34c34)
  • docs: reorganize into core guides and process archive (c48ee723)
  • docs: add CONTRIBUTING guide, rejected alternatives, gap-fill selection criteria (0abe875b)
  • fix: add Windows Unicode stdout support for CJK output (319d6618)
  • fix: add SPDX headers, cross-platform cleanup, and comprehensive documentation (5487a8d2)
  • docs: organize documentation, translate to English, add NVIDIA convention audit (39f9f140)
  • fix: suppress asyncio noise, sanitize meta-analyzer output quirks (8f4870fa)
  • fix: resolve LLM race condition, JSON parsing, and connection timeout (7cf7488c)
  • add contrib multilingual batch scanner (29d8d016)

Features/Bug Fixes

  • test: restore LLM-backed graph integration coverage (d32b915a)
  • test: keep graph integration scans offline (5f3ef93f)
  • style: format MCP least-privilege analyzer (9625f495)
  • docs: correct stale analyzer status and dangling references (d4cc4a5a)
  • feat(providers): local agent-CLI providers (claude/codex/gemini), no API key (cc8e82b8)
  • feat(ossf-scorecard): add ossf-scorecard github action integration (63b5f68b)
  • fix(mcp): feed allowed-tools into LP1 under-declaration check (19fc38af)
  • fix(mcp): treat allowed-tools as a permission declaration for LP3 (77bf29e8)
  • test(input): add SSRF gate coverage for scp-extracted hosts (97f3b8fc)
  • fix(cli): preserve empty string from _result_body when sarif_report absent (9261d9b5)
  • Support Python 3.14 (afd19edb)
  • feat(analyzer): detect privileged Kubernetes workload deployment as TM4 (ed78c4f9)
  • test(input): clarify scp_private_ip test covers allowlist gate (f83d375d)
  • fix(cli): write concatenated multi-skill report to --output for non-JSON formats (a029f974)
  • fix(input): support scp-style SSH Git URLs in host validation (ced95dc5)

Features/Bug Fixes

  • style: fix merge-ref lint failures (c2675824)
  • style: format chat model provider warning (2092bcff)
  • fix: address non-blocking reviewer nits from #178 and #179 (25828190)
  • revert: restore provider CI failure policy (b69c59f9)
  • ci: make live provider validation non-blocking (425ebf93)
  • style: complete GitHub PR 194 formatting for PR 125 (7cf23c79)
  • style: complete GitHub PR 194 formatting for PR 122 (fcc7d2bc)
  • style: apply GitHub PR 194 lint fix to PR 178 import (3899f397)
  • style: apply GitHub PR 194 lint fix to PR 172 import (cb2526fa)
  • style: apply GitHub PR 194 lint fix to PR 125 import (58a91564)
  • style: apply GitHub PR 194 lint fix to PR 122 import (97626561)
  • feat: add AWS Bedrock provider for Claude via SigV4 (5bd6b642)
  • fix: address non-blocking reviewer nits from #140, #141, #143 (5a6d2681)
  • feat(analyzer): detect cloud-storage exfiltration as E5 (89c3b6b2)
  • docs(mcp): clarify setup before users choose stdio (8a30c436)
  • feat(analyzer): detect privileged container execution and escape primitives as PE5 (e9f46353)
  • docs(mcp): document HTTP transport trust model (3493632d)
  • fix(report): strip ANSI/control bytes from report output (1d97d455)
  • fix(behavioral): detect builtins.* and importlib.import_module sink evasions (173a56cd)
  • feat: per-slot model env overrides and model validation (4b9e8f91)
  • fix(P2): narrow emoji tag carve-out to ISO-3166-2 codes (close smuggling bypass) (8ebac993)
  • fix(P2): detect Unicode Tag-block "ASCII smuggling" hidden instructions (99481670)
  • feat(analyzer): implement MCP rug-pull detection (RP1-RP3) (348ca12c)
  • fix(scoring): apply 1.3x multiplier only to findings from executable files (78db5356)
  • feat(scripts): add PR review agent automation tooling (8c618e07)

Features/Bug Fixes


Features/Bug Fixes

  • feat(analyzer): detect SSRF (cloud metadata, internal-network, dynamic-host requests) (d5c77535)
  • feat(analyzer): add anti-refusal statement detection (AR1-AR3) (aa676942)
  • address review feedback on #106 (6ca3b023)
  • feat(report): add baseline / false-positive suppression (0767452f)
  • style: format meta analyzer regression test (94579243)
  • test: align meta analyzer drop cases with severity floor (ef192e77)
  • style: format static runner filtering changes (8e96c144)
  • style: format MP2 regex backtracking test (cdfa268b)
  • Fix Windows path separators and console encoding (a80d45f5)
  • fix(llm): isolate batch failures in Stage 2 and keep unanalysed findings (248bc87f)
  • test(scoring): add regression test for input-order-dependent severity sort (d0234c72)
  • fix(scoring): document confidence scaling, sort by severity within rule bucket (e6895df5)
  • fix(patterns): fix lint and whitespace-bearing stuffing false negative (8a5f7d8a)
  • fix(patterns): skip single-char repetitions in MP2 to avoid separator false positives (2bef07a6)
  • fix(patterns): anchor MP2 regex to prevent catastrophic backtracking (c46c389e)
  • ci: fix DCO check bypass and harden the CI workflow (de9aabaa)
  • ci: add GitHub Actions CI/CD workflow (0f395273)
  • fix(static-runner): remove .svg from binary extensions (6de794bc)
  • fix(static-runner): exempt SKILL.md from PE3 .env doc filter (b50edd3e)
  • fix(static-runner): skip binary/PDF files and filter PE3 .env doc references (ddf7d703)
  • fix(security)(skillspector): unsafe deserialization via yaml load (b5c20b9f)
  • fix(security)(skillspector): potential information disclosure via error message (bf2678c8)
  • fix(analyzer): deduplicate PE4 findings per line to avoid double-reporting (cfeabd34)
  • feat(analyzer): detect Docker socket access as PE4 privilege escalation (426a3348)
  • feat(mcp): expose SkillSpector as an MCP server with scan_skill tool (2ad41c29)
  • test(meta_analyzer): add regression tests for static findings with end_line=None (5720122d)
  • fix(supply_chain): scan [build-system].requires in pyproject.toml (34a881d6)
  • security(meta_analyzer): add severity-gated floor to apply_filter (45196904)
  • chore(oss): exclude changelog from public snapshots (a035fb5e)

Features/Bug Fixes

  • test: align agent snooping same-line expectation (e17285ca)
  • test: pin nv_build provider default expectation (d0337d91)
  • style: format behavioral AST getattr detection (8c983330)
  • style: format input handler SSRF changes (c5c091d4)
  • test: remove unused sarif pytest import (5b9cd0f8)
  • style: format meta analyzer fallback tests (dcf2da48)
  • test: avoid duplicate agent snooping test class name (9cec5537)
  • feat(report): add analysis_completeness field to JSON output (befa577e)
  • fix(schemas): normalize confidence from 0-100 scale before Pydantic validation (f42d2062)
  • chore: add perseus-ctx and mimir-mcp to popular PyPI packages (d653513c)
  • feat(pi): add SkillSpector scan tool (d817291f)
  • fix(static-patterns): restrict code-example hard-drop to non-executable files (bfda8a14)
  • fix(multi-skill): address review nits - typing, dead code, help text, findings source (cbd464eb)
  • fix(dedup): apply deduplication to score computation only, preserve all findings in report (664a9742)
  • feat: support uv tool install and document in README (b6e15eea)
  • fix(behavioral-ast): detect reflective exec via getattr() literal (AST9) (bf2142bc)
  • fix(input-handler): disable HTTP redirect following to close SSRF bypass (180e798f)
  • fix(report): filter empty LLM findings and add SARIF rules[] array (39edc051)
  • fix(meta-analyzer): add severity floor, downweight instead of drop, fail-closed on LLM error (3ca60615)
  • fix(static-patterns): filter false positives from documentation and code examples (8ac1a7ca)
  • feat(cli): add --recursive flag for multi-skill directory scanning (261c47ac)
  • fix(findings): deduplicate cross-analyzer findings before scoring (805ba8ec)
  • fix(input-handler): validate git/download URLs against SSRF and add zip-slip protection (c6ff6a91)
  • fix(meta-analyzer): add heuristic fallback filter for --no-llm mode (afb0206b)
  • docs: document the integration contract and trust model (c5535334)
  • fix(supply-chain): exclude pyproject metadata keys from dependency extraction (5f638465)
  • feat: implement MCP rug pull analyzer and unit tests (69fff902)
  • fix(sc4): pass version to OSV for all requirement operators, not just == and <= (96ca0728)
  • fix: use OpenAI default model for OpenAI fallback (718ef1e3)
  • feat(analyzer): detect skills snooping on the agent ecosystem (96f67f0b)
  • docs: correct stale analyzer status and dangling references (01362fff)

Features/Bug Fixes

  • Revert "Merge branch 'keshavp/codex/revert-mr-43' into 'main'" (aff60d73)

Features/Bug Fixes

  • Revert "Merge branch 'github/pr-119' into 'main'" (a89979b4)

Features/Bug Fixes

  • feat(release): auto-generate CHANGELOG.md on each release (9e6f5590)
  • style: format lint fixes for PR 156 (d24fedca)
  • fix(yara): use content hash for rule cache invalidation (a47c7f76)

Features/Bug Fixes

  • fix(scoring): prevent risk score saturation via per-rule diminishing returns (b286cf0f)
  • fix(meta-analyzer): keep LLM-confirmed findings when model returns end_line (47170c06)
  • add openai project header (c7437d2d)
  • fix(yara): reduce remote bootstrap false positives (20fb4045)
  • feat(yara): add agent skill abuse signatures (c77a5e93)

Features/Bug Fixes

  • style: format OSV fallback changes (069e7721)
  • style: format agent snooping analyzer (e07d48a1)
  • style: format taint tracking tests (29a7d77c)
  • style: format supply chain analyzer (128306dd)
  • fix: avoid literal bidi controls in tests (73e14193)
  • style: format anthropic proxy provider (1899b926)
  • fix: reduce anthropic proxy sonar duplication (7a809c1d)
  • feat: drop ge/le schema bounds on LLM finding confidence and start_line (14818cb3)
  • fix(build_context): use forward-slash component paths (cross-platform) (01452ec1)
  • fix(sc4): add global _last_query_ok declaration, validate env var, derive fallback count (d1d65395)
  • fix(sc4): surface OSV.dev fallback warnings and add configurable timeout (1e601ec2)
  • fix(supply-chain): require relative edit distance for SC6 typosquat detection (5b9a5dd3)
  • feat(analyzer): add agent snooping detector (AS1/AS2/AS3) (d3b19633)
  • fix(P2): add bidi control character detection (CVE-2021-42574 / Trojan Source) (2c672795)
  • fix(meta_analyzer): parse stringified findings array from LLM (6d6d684a)
  • fix(mcp): anchor TP3 loopback URL exemption to a host boundary (b9d7415c)
  • fix(analyzers): resolve import aliases in AST and taint analyzers (5de942ec)
  • fix: validate trusted source hosts for SC2 (86ffe27f)
  • fix: restrict Python version to <3.14 due to jsonschema-rs/PyO3 incompatibility (6d2952f3)
  • feat(provider): add anthropic_proxy provider for Vertex-style raw-predict endpoints (cc7bc744)

Features/Bug Fixes

  • chore: refresh uv lock for python 3.14 (0f544153)

Features/Bug Fixes

  • chore: widen python range to <3.15 and bump version to 2.2.1 (156dac75)

Features/Bug Fixes

  • Fixing â Release failed: uv.lock exists, but is not installed or is not on PATH (295f0539)
  • Create native LangChain chat models per provider (3f1182f8)

Features/Bug Fixes

  • Revert "test: preserve default graph invocation in PR 45 import" (95e90724)
  • test: preserve default graph invocation in PR 45 import (b4f94617)
  • Reject invalid skill paths (c327071a)
  • fix: add explicit returns in docker smoke test functions (69600455)
  • docs: fix model registry path (f368b3f5)
  • ci: extract Docker smoke suite (ec75bf3b)
  • ci: add Docker GitHub URL smoke test (94ae8438)
  • fix(docker): install git for repository scans (2311abc9)

Features/Bug Fixes

  • ci: add Docker smoke test (23d86bde)
  • chore: add Docker build ignore file (832cbf29)
  • docs: simplify Docker usage examples (71635d6a)
  • fix: use official Python Docker base (6e619356)
  • feat: adds dockerfile to run it without installing python (ea1f5de1)

Features/Bug Fixes

  • Revert "chore: bump version to 2.1.3" (e5eddfb4)
  • Constrain supported Python versions (926bd038)
  • Fix uv venv py-version (e010aada)
  • fix: refresh uv lock during release (040cf3e0)
  • Add contribution flow diagrams (6461595d)
  • Make contribution sync flows explicit (276b3217)
  • Remove copy-pr-bot references (50a877b7)
  • Clarify external PR import docs (f7f233cc)
  • Reorganize GitHub release docs (82c34f16)
  • Add GitHub PR import skill (a314914e)

Features/Bug Fixes

  • Revert "chore: bump version to 2.1.2" (0ad91c2b)
  • fix(mcp): make TP3 (and parameter-scoped TP1/TP2) reachable on real scans (ae7999c9)
  • Add SkillSpector GitHub release skill (a19a79b3)

Features/Bug Fixes

  • Revert "chore: bump version to 2.1.1" (1f5f95b8)
  • Enforce non-mutating lint checks in CI (39d8b7e9)

Features/Bug Fixes

  • Skip eval dataset prose in static scans (f88878f2)
  • chore: add security policy (ad4306ff)
  • chore: drop guardrail integration files (4f4ced8b)
  • chore(oss): strip OSS_RELEASE.md and the release script from snapshots (2a77d9a4)
  • chore(oss): switch release script to orphan branch (b1469aa8)
  • Revert "docs(cli): drop nv_inference from scan --help" (403a0e30)
  • docs(cli): drop nv_inference from scan --help (815a7ffa)
  • docs(oss): sanitize internal references from user-facing files (424814d0)
  • chore(oss): drop broken make typecheck target (138a601e)

Features/Bug Fixes

  • test(oss): mark SDI fixture tests as integration; fix nv_inference detection (461966f8)
  • docs(oss): trim OSS_RELEASE.md to the how-to section only (fa6a4c85)
  • chore(oss): rename make-public.sh to create-oss-release.sh, auto-name + pull main (2fe3be79)
  • chore(oss): split Makefile + consolidate internal-only files (eff85296)
  • feat(providers): selectable provider + per-provider model defaults (3a2735d9)
  • refactor(providers): per-package layout with bundled YAML registries (f718d112)
  • chore: remove agent metadata from OSS config (daf46789)
  • refactor(providers): isolate NVIDIA-specific code behind a single registration (0d0bbbb9)
  • chore(oss): prepare branch for public OSS release (ef9af648)
  • feat(llm): generalize credential resolution for OSS-default endpoints (d3585465)
  • refactor(metadata): introduce ModelMetadataProvider abstraction (cc3d8a5b)
  • feat(tracing): support LANGCHAIN_TAGS_EXTRA env var for LangSmith tags (2ba416cb)

Features/Bug Fixes

  • feat(tracing): support LANGCHAIN_TAGS_EXTRA env var for LangSmith tags (b4a1f07a)

Features/Bug Fixes

  • feat(mcp): MCP analyzers, Apache 2.0 license migration, and OSS compliance (b365956c)

Features/Bug Fixes

  • LangSmith Tracing + Integration Test Fixes (4338a727)

Features/Bug Fixes

  • docs(mcp): address review nitpicks on B.3.1 and B.3.2 docs (ea356a7e)
  • docs(mcp): add detailed documentation for B.3.1 and B.3.2 analyzers (fb91c3d4)
  • fix(mcp): move noqa directive to correct line for ruff S603 suppression (33f4b56f)
  • fix(mcp): address CodeRabbit review feedback (79b46a9e)
  • test(mcp): add full-pipeline integration tests for SARIF and end-to-end (92b2fd6b)
  • feat(mcp): implement B.3.2 TP4 LLM description-behavior mismatch (f01eff3b)
  • feat(mcp): implement B.3.2 TP1-TP3 static metadata poisoning detection (385fc1dd)
  • feat(mcp): implement B.3.1 mcp_least_privilege (LP1-LP4) (af966514)
  • feat(mcp): add MCP pattern categories, LP/TP rule registry entries, and test fixtures (d1b5aa0c)

Features/Bug Fixes

  • Detects markdown code blocks (```), code-comment indicators (// â, // â, // GOOD:, // BAD:), and documentation keywords (2693ce1f)

Features/Bug Fixes

  • Reduce false positives for Dockerfile idioms and CI/CD docs (21d63934)

Features/Bug Fixes


Features/Bug Fixes

  • TM1 (Tool Parameter Abuse) - 19 false positives fixed: (0f89749a)

Features/Bug Fixes

  • Move skillspector-specific safe patterns and LLM key checks from nv-base into skillspector (881fb4c8)

Features/Bug Fixes

  • feat: added yara based analyzer (c86747d6)
  • feat: implement data-flow analyzer: sources -> sinks (20415b6c)
  • Implement semantic_developer_intent analyzer (SADD B.4.2) (f8033c91)
  • Replace hardcoded CVE lists with live OSV.dev vulnerability lookups (SC4) (40bdf9d6)
  • Implement semantic_security_discovery analyzer (SADD B.4.1) (8515f36a)
  • Implement semantic_quality_policy analyzer (SADD B.4.3) and fix meta_analyzer finding duplication bug (80e921aa)
  • Implement static analyzers (EA, OH, P6-P8, MP, TM, RA) and extend supply chain (SC4-SC6, TR1-TR3) (6bc171b6)

Features/Bug Fixes

  • Ignore .claude/ (84260e98)
  • Revert "chore: bump version to 0.3.1" (29c367de)
  • Revert "chore: bump version to 0.3.2" (04e681ed)
  • feat: LLMAnalyzerBase — reusable base class for LLM-powered analyzer nodes (14e611ff)
  • feat: implemented analyzer for dangerous execution chains (b14945cc)
  • Restore dev changes: guardrails, typer compatibility, docs, and finding output shape (2743a7b0)
  • Revert to state at d74cbf9: undo merge keshavp/dev, guardrail update, typer downgrade, docs, finding output (10265b5b)
  • Update guardrail version (d8ee92b6)
  • downgrade typer version for compatibility with nv-base (6b6b6cb2)
  • docs: clarify venv setup and uv/pip fallback in Makefile and docs (542b20d0)
  • feat: full finding output shape and Finding model cleanup (b3a21d51)
  • Revert "chore: bump version to 0.4.0" (3bdd8037)
  • add Skillspector v2 LangGraph workflow scaffold (e2fd3849)

Features/Bug Fixes

  • Replace generic LLM unavailable message with pattern-specific explanations (43d93a4b)

Features/Bug Fixes

  • Unify LLM access via NVIDIA Inference Hub (6acbbeae)
  • docs: condense RELEASE.md for clarity (3924841e)
  • Integration with NV-BASE (7bc31c25)

Features/Bug Fixes

  • docs: update installation and release management instructions (afbb25bb)
  • chore: add Makefile with development and build targets (23d82b78)
  • feat: add Poetry auth.toml credential support to release script (2a1ca938)
  • feat: add release script for nv-shared-pypi publishing (a508243f)
  • Update GitLab Issues link to new demos space (f2eaad9a)
  • Initial commit (ebf1418d)
  • Add all 15 vulnerability patterns and author info (4d79c612)
  • Initial commit: SkillSpector security scanner for AI agent skills (d2940d39)
  • Initial commit (558c5be3)