Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
is still reported, as its own signal rather than as a change, through
the `authority` block per-capability `provenance_class`. Gate outcomes,
severity capping, and exit codes are unchanged.
Thanks to [@tyza66](https://github.com/tyza66) (PR #257).
- `docs/github-actions-example.md` documents the workflow trust boundary:
`contents: read` for the minimal scan, the extra `pull-requests: write`
needed only for `pr-comment-post`, and keeping broad tokens out of
`extra-args` and the environment.
Thanks to [@HectorGuerilla](https://github.com/HectorGuerilla) (PR #259).

### Fixed

Expand All @@ -39,6 +45,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
stderr naming the gates that cannot fail this run. Exit codes are
unchanged. `--unknown-authority pass` and `review` cannot fail a run,
so they are not named.
Thanks to [@tyza66](https://github.com/tyza66) (PR #258).
- That warning now decides the unknown-authority gate from the
*effective* policy — a policy file or profile setting
`authority.unknown: deny` is the same gate as
Expand All @@ -48,6 +55,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
alongside the flag gates, an explicit `allow`/`require_review` setting
wins over the flag and is not named, and the warning is labelled by
whichever source put `deny` in force. Exit codes are unchanged.
Thanks to [@tyza66](https://github.com/tyza66) (PR #260).

## [2.7.0] - 2026-10-22

Expand Down
6 changes: 5 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ We are grateful to the following community members for their contributions:
| Contributor | Contributions |
|-------------|---------------|
| [@i-safonoff](https://github.com/i-safonoff) | `.cursorrules` framework adapter, `rule_coverage_summary()`, RULES_REFERENCE.md, dataflow rule ID casing fix |
| [@ARAVIND281](https://github.com/ARAVIND281) | Claude Code permission evaluation order fix, interprocedural data-flow tracking |
| [@ARAVIND281](https://github.com/ARAVIND281) | Claude Code permission evaluation order fix, interprocedural data-flow tracking, exception scope-escape boundary tests (PR #220) |
| [@Solarthis](https://github.com/Solarthis) | MCP tool description injection detection |
| [@Aming9303](https://github.com/Aming9303) | `safeai registry components` CLI, `safeai init` command, GitHub Actions workflow example |
| [@adnqcr7-code](https://github.com/adnqcr7-code) | Framework detection tests (LangGraph, CrewAI, LlamaIndex, n8n, Claude Code), CI integration docs, SARIF review guidance |
Expand All @@ -170,6 +170,10 @@ We are grateful to the following community members for their contributions:
| [@chenzeyan54-commits](https://github.com/chenzeyan54-commits) | Terminal output sanitization against ANSI/OSC injection (PR #203) |
| [@HarshRajSinghania](https://github.com/HarshRajSinghania) | PR comment markdown injection sanitization (PR #204) |
| [@thadidaniel-ctrl](https://github.com/thadidaniel-ctrl) | Release workflow supply-chain posture tests (PR #206) |
| [@Golden007-prog](https://github.com/Golden007-prog) | Authority Evidence Benchmark HTML presentation, history limit (PRs #239, #240) |
| [@therealestbenji](https://github.com/therealestbenji) | Microsoft Teams integration capability detector `CAP_ms_teams` (PR #219) |
| [@tyza66](https://github.com/tyza66) | Authority-gate fail-closed audit: per-side access-mode provenance, diff-gate blind warning covering flag and policy-file gates (PRs #257, #258, #260) |
| [@HectorGuerilla](https://github.com/HectorGuerilla) | GitHub Actions trust-boundary and permissions guidance (PR #259) |

Your contributions help make AI safer for everyone. Thank you!

Expand Down
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -557,7 +557,7 @@ contributors who have helped make AI safer:
| Contributor | Key Contributions |
|-------------|-------------------|
| [@i-safonoff](https://github.com/i-safonoff) | `.cursorrules` framework adapter, `rule_coverage_summary()`, RULES_REFERENCE.md, dataflow casing fix |
| [@ARAVIND281](https://github.com/ARAVIND281) | Claude Code permission evaluation order, interprocedural data-flow tracking |
| [@ARAVIND281](https://github.com/ARAVIND281) | Claude Code permission evaluation order, interprocedural data-flow tracking, exception scope-escape boundary tests (PR #220) |
| [@Solarthis](https://github.com/Solarthis) | MCP tool description injection detection |
| [@Aming9303](https://github.com/Aming9303) | `safeai registry components` CLI, `safeai init` command, GitHub Actions example |
| [@adnqcr7-code](https://github.com/adnqcr7-code) | Framework detection tests (LangGraph, CrewAI, LlamaIndex, n8n, Claude Code), CI/SARIF docs |
Expand All @@ -577,6 +577,9 @@ contributors who have helped make AI safer:
| [@HarshRajSinghania](https://github.com/HarshRajSinghania) | PR comment markdown injection sanitization (PR #204) |
| [@thadidaniel-ctrl](https://github.com/thadidaniel-ctrl) | Release workflow supply-chain posture tests (PR #206) |
| [@Golden007-prog](https://github.com/Golden007-prog) | Authority Evidence Benchmark HTML presentation, history limit (PRs #239, #240) |
| [@therealestbenji](https://github.com/therealestbenji) | Microsoft Teams integration capability detector `CAP_ms_teams` (PR #219) |
| [@tyza66](https://github.com/tyza66) | Authority-gate fail-closed audit: per-side access-mode provenance, diff-gate blind warning covering flag and policy-file gates (PRs #257, #258, #260) |
| [@HectorGuerilla](https://github.com/HectorGuerilla) | GitHub Actions trust-boundary and permissions guidance (PR #259) |

See [CONTRIBUTING.md](./CONTRIBUTING.md) for how to get involved.

Expand Down
5 changes: 5 additions & 0 deletions docs/contributing/GOOD_FIRST_ISSUES.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ contributors. See the [Completed Issues](#-completed-issues) section at the bott
- **Difficulty:** Easy | **Effort:** 2–3 hours
- **Suggested files:** `safeai/analyzers/capability/analyzer.py`, `safeai/analysis/capabilities.py`
- **Description:** Add a regex pattern to detect Microsoft Teams SDK usage (`import teams`, `from teams import`, `TeamsClient`, etc.). Follow the same pattern as the existing Docker, Slack, and Jira detectors.
- **Status:** ✅ Complete — `CAP_ms_teams` rule, detector and tests (@therealestbenji, PR #219)

### 4. Detect SharePoint access
- **Difficulty:** Easy | **Effort:** 2 hours
Expand Down Expand Up @@ -195,12 +196,14 @@ Newest batch — issue-driven security review and test-hardening tasks for the v
- **Labels:** good first issue, security
- **Suggested files:** `safeai/kya/exceptions.py`, `tests/test_exceptions.py`
- **Description:** Verify traversal-style `target_id` values (`../`, absolute paths, Windows `..\\`), legacy-key ambiguity, and cross-project exceptions can never resolve to `active`. Fail-closed: unknown scope = not applied.
- **Status:** ✅ Complete — scope-escape boundaries pinned, unverified scope gated (@ARAVIND281, PR #220)

### 55. Security review: authority gate fail-closed guarantees (#197)
- **Difficulty:** Easy-Medium | **Effort:** 2–3 hours
- **Labels:** good first issue, security
- **Suggested files:** `safeai/analysis/capability_diff.py`, `safeai/cmd/postprocess.py`, `tests/test_authority_change.py`, `tests/test_unknown_authority.py`
- **Description:** Lock non-zero exit for: confirmed authority change with `--fail-on-authority-change`, UNKNOWN authority under `block`, and mixed inferred/confirmed additions (`inferred_only` must not mask confirmed tools).
- **Status:** In progress — per-side access-mode provenance and the diff-gate blind warning landed (@tyza66, PRs #257, #258, #260); `--unknown-authority block` without `--baseline` and removed-tool UNKNOWN handling remain open on #197

### 56. Security test: HTML report injection fixtures (#198)
- **Difficulty:** Easy | **Effort:** 2 hours
Expand Down Expand Up @@ -262,6 +265,7 @@ These issues have been implemented by community contributors and are now part of
| 18 | Detect Jira integration | @yugaaank (PR #2) |
| 19 | Detect browser automation capability | @yugaaank (PR #2) |
| — | Detect hidden instructions in MCP tool descriptions | @Solarthis (PR #107) |
| #182 | Detect Microsoft Teams integration | @therealestbenji (PR #219) |

### Reports, Output & Scoring

Expand Down Expand Up @@ -303,6 +307,7 @@ These issues have been implemented by community contributors and are now part of

| # | Issue | Contributor |
|---|-------|-------------|
| #196 | Exception scope-escape paths | @ARAVIND281 (PR #220) |
| #199 | Terminal escape-sequence sanitization | @chenzeyan54-commits (PR #203) |
| #200 | PR comment markdown injection sanitization | @HarshRajSinghania (PR #204) |
| #201 | Release workflow supply-chain posture tests | @thadidaniel-ctrl (PR #206) |
Expand Down
Loading