Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
89d4410
Fix #70: P2.1 Detector — JWT verify-options key extraction
bjcorder May 22, 2026
29e366c
Fix #71: P2.2 Classifier — JWT alg:none acceptance
bjcorder May 22, 2026
bd0e318
Fix #72: P2.3 Classifier — JWT algorithm-confusion signal
bjcorder May 22, 2026
ddc731f
Fix #73: P2.4 Classifier — JWT header-trust risks
bjcorder May 22, 2026
1570716
Fix #74: P2.5 Classifier — nbf, clock-skew, kid validation gaps
bjcorder May 22, 2026
68a1e05
Fix #75: P2.6 Fixtures — JWT crypto-trust scenarios
bjcorder May 22, 2026
c82b4aa
Fix #76: P2.7 Docs — P2 check catalog and coverage matrix rows
bjcorder May 22, 2026
96cd421
Fix #73: Address JWT crypto-trust review findings
bjcorder May 22, 2026
bf9b3da
Fix #73: Keep JWT verify helper clippy-clean
bjcorder May 22, 2026
8d16ee3
Fix #77: P3.1 oauth_flow scaffold and registration
bjcorder May 23, 2026
311128d
Fix #85: P3.9 OAuth state nonce and PKCE redaction
bjcorder May 23, 2026
2995073
Fix #78: P3.2 PKCE missing classifier
bjcorder May 23, 2026
52b8c6e
Fix #79: P3.3 OAuth state integrity classifier
bjcorder May 23, 2026
7a149cb
Fix #80: P3.4 OIDC nonce classifier
bjcorder May 23, 2026
853ce6e
Fix #81: P3.5 redirect URI wildcard classifier
bjcorder May 23, 2026
79eb8db
Fix #82: P3.6 client_storage detector registration
bjcorder May 23, 2026
98ffe39
Fix #83: P3.7 client storage hygiene classifier
bjcorder May 23, 2026
1540792
Fix #84: P3.8 OAuth and client storage fixtures
bjcorder May 23, 2026
d564ca6
Fix #86: P3.10 document OAuth flow and storage coverage
bjcorder May 23, 2026
9c222bf
Fix #83: restore client storage test import
bjcorder May 23, 2026
071ef91
Fix #83: scope client storage test import
bjcorder May 23, 2026
867fd6d
Fix #82: narrow client storage URL token evidence
bjcorder May 23, 2026
4814668
Fix #77: address P3 review flow scoping and redaction
bjcorder May 23, 2026
a69a59f
Fix #77: tighten P3 review redaction and flow bounds
bjcorder May 23, 2026
b1ddd2a
Fix #77: resolve focused P3 review blockers
bjcorder May 23, 2026
180b44e
Fix #77: preserve pre-flow OAuth evidence in segment
bjcorder May 23, 2026
d966f7f
Fix #83: keep P3 classifier tests clippy-clean
bjcorder May 23, 2026
6336bb0
Address PR #98 review findings
bjcorder May 24, 2026
7defb93
Potential fix for pull request finding 'CodeQL / Cleartext logging of…
bjcorder May 24, 2026
22b0932
Address PR #98 review findings
bjcorder May 24, 2026
a6a77a2
Fix #87: P4.1 Classifier — JWT denylist absent on logout
bjcorder May 24, 2026
618c798
Fix #88: P4.2 Classifier — refresh-family revocation absent on logout
bjcorder May 24, 2026
ff6d451
Fix #89: P4.3 Classifier — sliding expiry without rotation
bjcorder May 24, 2026
4ecbc68
Fix #90: P4.4 Classifier — password-change without global revocation
bjcorder May 24, 2026
40618f1
Fix #91: P4.5 Fixtures — false-positive coverage for new checks
bjcorder May 24, 2026
406c2dd
Fix #92: P4.6 JSON snapshot tests per framework family
bjcorder May 24, 2026
2d2196c
Fix #93: P4.7 CLI exit-code matrix tests
bjcorder May 24, 2026
c498fef
Fix #94: P4.8 Consolidated category-audit decision
bjcorder May 24, 2026
59cbe54
Fix #95: P4.9 Final docs pass
bjcorder May 24, 2026
9a2fabd
Address milestone 14 review findings
bjcorder May 24, 2026
50631e6
Address PR #99 review findings
bjcorder May 24, 2026
d240ade
Address PR #99 Windows snapshot check
bjcorder May 24, 2026
39680e2
Fix Windows snapshot CI line endings
bjcorder May 24, 2026
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
7 changes: 7 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,13 @@ cargo check --workspace
cargo test -q
```

Regenerate committed JSON report snapshots after intentional report-output
changes:

```bash
SESSIONSCOPE_UPDATE_JSON_SNAPSHOTS=1 cargo test -p sessionscope-testing --test json_snapshots
```

For broader local validation:

```bash
Expand Down
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,15 @@ and SessionScope uses semantic versioning as described in
- Added v0.2 P1 cookie hardening coverage for `__Host-` / `__Secure-` prefix rules, `Partitioned` cookie review, broad non-session Domain review, and same-handler conflicting cookie writes across existing JS/TS/Python cookie detectors.
- Added v0.2 P2 JWT crypto-trust coverage for `alg:none`, HMAC/asymmetric algorithm-confusion signals, `jku`/`x5u`/embedded-JWK header trust review, missing `nbf` validation, broad clock-skew review, and unvalidated `kid` header review across existing `jsonwebtoken`, `jose`, and PyJWT detector surfaces.
- Added v0.2 P3 OAuth/OIDC flow integrity coverage for PKCE, `state`, OIDC `nonce`, broad redirect URI review, and client storage hygiene checks for localStorage, sessionStorage, URL path/fragment token exposure, and browser-path client secrets.
- Added `jwt_denylist_absent_on_logout_review` lifecycle coverage for access-JWT logout flows that lack linked denylist, blocklist, or token revocation-store evidence.
- Added `refresh_family_revocation_absent_on_logout_review` lifecycle coverage for refresh-token logout flows that lack linked family/user-scoped revocation evidence.
- Added `sliding_expiry_without_rotation_review` lifecycle coverage for rolling/sliding session expiry that lacks linked session or refresh-token rotation evidence.
- Added `password_change_global_revocation_absent_review` lifecycle coverage for password-change handlers that lack linked global session invalidation, refresh-family revocation, or token-version bump evidence.
- Added clean-baseline false-positive fixtures across Express, Next.js, FastAPI, Django, generic JS/TS, and generic Python to guard every v0.2 P1-P4 check ID.
- Added hand-rolled JSON report snapshot tests for representative Express, Next.js, FastAPI, Django, generic JS, generic TS, and generic Python fixtures.
- Added Rust integration-test coverage for the documented CLI advisory/enforce exit-code policy matrix.
- Documented the consolidated v0.2 category audit decision: all P1-P4 checks map to existing finding categories, with no schema or SARIF rule change.
- Completed the v0.2 edge-case hardening documentation pass across the changelog, README status, roadmap, and coverage matrix.
- Extended report redaction for OAuth/OIDC `state`, `nonce`, `code_verifier`, and `code_challenge` values in assignments, object keys, and URL parameters.

### Pre-release remediation (v0.1.0 readiness)
Expand Down
6 changes: 6 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@ cargo check --workspace
cargo test --workspace --all-targets
```

Regenerate committed JSON report snapshots after intentional output changes:

```bash
SESSIONSCOPE_UPDATE_JSON_SNAPSHOTS=1 cargo test -p sessionscope-testing --test json_snapshots
```

Run the CLI during development:

```bash
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,8 @@ Config precedence is:
## Project status

- **Release target:** v0.1.0 first packaged release through GitHub Releases. Release packaging, versioning, and installation workflow are tracked in #28.
- **Complete:** v0.1 foundation, v0.2 cookie audit, v0.3 JWT validation, v0.4 lifecycle mapping, v0.5 expanded token handling, v0.6 framework/provider coverage, v0.7 CI SARIF/enforcement, v0.8 reviewer workflows.
- **Complete:** v0.1 foundation plus the v0.2 depth-first edge-case hardening round for cookie rules, JWT crypto-trust, OAuth/OIDC flow integrity, client storage hygiene, lifecycle gaps, false-positive fixtures, JSON snapshots, and CLI exit-code tests.
- **Deferred:** v0.3+ breadth expansion for new languages and frameworks; see [docs/ROADMAP.md](docs/ROADMAP.md).
- **Schema:** JSON contract v0.5.0.
- **Rust:** edition 2024. MSRV is 1.95.
- **Platforms:** Linux, macOS, and Windows are covered by CI where workflow support exists.
Expand Down
Loading
Loading