From 6b68fbf116cac04d9b903cb849cb89cf57975c93 Mon Sep 17 00:00:00 2001 From: keshavp <32313895+keshprad@users.noreply.github.com> Date: Sat, 15 Aug 2026 03:01:06 -0700 Subject: [PATCH] release: SkillSpector 2.9.5 Signed-off-by: keshavp <32313895+keshprad@users.noreply.github.com> --- CHANGELOG.md | 10 +++++ docs/release/skillspector-2.9.5.md | 61 ++++++++++++++++++++++++++++++ pyproject.toml | 6 ++- uv.lock | 4 +- 4 files changed, 78 insertions(+), 3 deletions(-) create mode 100644 docs/release/skillspector-2.9.5.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 447d1558..cdb7dccd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +### 2.9.5 (Friday, August 14, 2026) +### Features/Bug Fixes +* Scope the locality guard to the namespace (#365) +* Use byte offsets for YARA line lookup (#364) +* feat(cli): opt-in discovery of an author-shipped baseline (#278) (#286) +* feat: add Ollama, Azure OpenAI, and generic OpenAI-compatible providers (#179) +* fix: bound MCP extra to supported major version (#339) +* fix(analyzers): reduce false positives for negated safety constraints (#254) +* feat(analyzer): detect insecure deserialization (AST10, TT6, DS1–DS4) (#246) +--- ### 2.9.4 (Wednesday, August 12, 2026) ### Features/Bug Fixes * fix(mcp): reject local targets over HTTP transport (#196) diff --git a/docs/release/skillspector-2.9.5.md b/docs/release/skillspector-2.9.5.md new file mode 100644 index 00000000..5e64f2f6 --- /dev/null +++ b/docs/release/skillspector-2.9.5.md @@ -0,0 +1,61 @@ +# SkillSpector v2.9.5 + +Released: 2026-08-14 + +## Summary + +SkillSpector 2.9.5 expands provider support, adds opt-in author-shipped baselines, and strengthens static detection for insecure deserialization. It also improves analyzer accuracy and compatibility across safety-pattern, MCP dependency, and YARA scanning paths. + +## Highlights + +- Add Ollama, Azure OpenAI, and generic OpenAI-compatible providers. +- Add static detection coverage for insecure deserialization patterns. +- Improve scan accuracy with opt-in shipped baselines, lower false positives, and more precise YARA source locations. + +## Added + +- Add Ollama support for local OpenAI-compatible inference, Azure OpenAI deployment routing, and a configurable provider for other OpenAI-compatible endpoints. +- Add opt-in discovery of a top-level `.skillspector-baseline.yaml` while keeping explicitly supplied baselines authoritative. +- Add analyzer coverage for insecure deserialization patterns represented by AST10, TT6, and DS1–DS4 findings. + +## Changed + +- Use byte offsets when mapping YARA matches back to source lines so non-ASCII content is reported accurately. +- Scope the destructive-autonomy YARA post-filter to SkillSpector's built-in rule namespace and preserve deterministic built-in rule precedence. + +## Fixed + +- Reduce false positives when safety-sensitive language explicitly negates unsafe behavior. +- Bound the optional MCP dependency to the supported major version. + +## Security + +- Expand static analysis for insecure deserialization behavior and prevent custom YARA rules that reuse a built-in rule name from being incorrectly post-filtered. + +## Breaking Changes and Migration + +- None. + +## Deprecations + +- None. + +## Validation + +- Targeted and regression suites for provider selection, shipped baselines, deserialization analysis, safety-pattern controls, MCP packaging, and YARA analysis passed for the prepared imports. +- Ruff lint, Ruff formatting checks, and `git diff --check` passed for every prepared import. +- Required CI lint, unit, integration, Docker smoke, and Sonar checks passed for all seven imported changes. + +## Known Limitations + +- Ollama support requires a reachable local Ollama service; Azure OpenAI and generic OpenAI-compatible providers require their provider-specific endpoint and credential configuration. + +## References + +- [GitHub PR #246](https://github.com/NVIDIA/SkillSpector/pull/246) +- [GitHub PR #254](https://github.com/NVIDIA/SkillSpector/pull/254) +- [GitHub PR #339](https://github.com/NVIDIA/SkillSpector/pull/339) +- [GitHub PR #179](https://github.com/NVIDIA/SkillSpector/pull/179) +- [GitHub PR #286](https://github.com/NVIDIA/SkillSpector/pull/286) +- [GitHub PR #364](https://github.com/NVIDIA/SkillSpector/pull/364) +- [GitHub PR #365](https://github.com/NVIDIA/SkillSpector/pull/365) diff --git a/pyproject.toml b/pyproject.toml index 780ee367..f0ccac3b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "skillspector" -version = "2.9.4" +version = "2.9.5" description = "SkillSpector: Security scanner for AI agent skills (Claude Code, Cursor, and similar). Scans skills for vulnerabilities, malicious patterns, and security risks before installation. Supports Git repos, URLs, zips, and local directories; runs static pattern checks and optional LLM semantic analysis; outputs terminal, JSON, and Markdown reports with risk scoring." readme = "README.md" license = "Apache-2.0" @@ -81,8 +81,12 @@ Issues = "https://github.com/NVIDIA/skillspector/issues" [tool.hatch.build] exclude = [".claude/", ".cursor/", ".agents/"] +[tool.hatch.build.targets.sdist] +core-metadata-version = "2.4" + [tool.hatch.build.targets.wheel] packages = ["src/skillspector"] +core-metadata-version = "2.4" [tool.ruff] line-length = 100 diff --git a/uv.lock b/uv.lock index 263c6f23..633483f8 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 3 +revision = 2 requires-python = ">=3.12, <3.15" resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'win32'", @@ -2675,7 +2675,7 @@ wheels = [ [[package]] name = "skillspector" -version = "2.9.4" +version = "2.9.5" source = { editable = "." } dependencies = [ { name = "boto3" },