ci(deps): Bump actions/setup-node from 4 to 6#3
Open
dependabot[bot] wants to merge 1 commit intomasterfrom
Open
ci(deps): Bump actions/setup-node from 4 to 6#3dependabot[bot] wants to merge 1 commit intomasterfrom
dependabot[bot] wants to merge 1 commit intomasterfrom
Conversation
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@v4...v6) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
ninjat6
pushed a commit
that referenced
this pull request
Apr 26, 2026
…leware
Architectural change: add require_release_in_scope dependency to
core/deps.py + assert_release_in_scope helper. All future release-scoped
endpoints must Depends() on this; absence enforced by
test_endpoint_decorator_enforcement.
Closed findings:
- SDLC-001 (architectural introduction; status moves to in-progress
until SEC-001a/b/c/d migration in #2-#5 brings enforcement
test from 2 missing → 0 missing)
- SEC-023 (placeholder route remediation, discovered during this commit's
enforcement test first run — validates the test's value)
Verification type: structural-verify
Before fix:
enforcement test result: 3 endpoints missing ownership dependency
- GET /api/releases/{release_id}/compliance → list_compliance
- GET /api/policies/releases/{release_id}/violations → release_violations
- GET /api/licenses/releases/{release_id}/violations → release_violations
After fix:
list_compliance now has Depends(require_release_in_scope)
enforcement test result: 2 endpoints still missing (SEC-001b/d, expected —
will be closed in #3 + #5)
Regression: test_all.py 54/54 pass (unchanged behaviour for 30 existing
_assert_release_org callers; legacy pattern still allowed during
migration window per test code comment)
Files added:
backend/app/core/deps.py — assert_release_in_scope + require_release_in_scope
backend/tests/test_endpoint_decorator_enforcement.py — 2 tests:
test_all_release_scoped_endpoints_have_ownership_dependency
test_decorator_argument_consistency
Files modified:
backend/app/api/releases.py — list_compliance gets Depends() (1 line + import)
Audit doc updates:
.knowledge/audit/security-audit-2026-04-26.md
- SDLC-001 status: open → in-progress
- SDLC-001 lessons_learned block added with falsifiable-prediction analysis
.knowledge/audit/security-audit-batch-tlt-2-21.md
- SEC-023 finding added (parent_finding: SDLC-001;
discovered_via: enforcement_test_first_run)
.knowledge/audit/phase-4-summary-2026-04-26.md
- §0.1 Methodology Validation Note added (cross-references SEC-023 +
SDLC-001 lessons_learned)
Note: SDLC-001 is NOT yet "complete" by audit definition until
SEC-001a/b/c/d all use the new middleware (Phase 5 #2-#5). This commit
establishes the control; subsequent commits apply it. Acceptance moment =
enforcement test transitions from 2 missing → 0 missing after #5 lands.
Methodology validation captured for due diligence:
audit batch grep heuristic missed list_compliance (stub endpoint,
no DB query, file-level "_assert_release_org call presence" cleared
releases.py globally). Enforcement test caught it on first run.
Pattern: "automated invariant enforcement beats one-shot grep audit".
Top-10 progress: #0 done. #1 in-progress (this commit). Next: #2 SEC-001a.
Tooling: Claude Code (Anthropic)
Methodology-review: see .knowledge/audit/phase-4-summary-2026-04-26.md §0
ninjat6
pushed a commit
that referenced
this pull request
Apr 27, 2026
…dmin Phase 5 #2 — applies SDLC-001's existing require_admin dependency to the /api/licenses/violations/summary endpoint. Closes the cross-tenant license-violation aggregate disclosure to authenticated viewers. Verification type: poc-rerun Before fix: SEC-001a-licenses-summary-leak.py [LEAK CONFIRMED] viewerB (zero own data) sees total=2, GPL-3.0=1 — identical to admin view → cross-tenant data exposure proven After fix: SEC-001a-licenses-summary-leak.py [NO LEAK] viewerB GET → HTTP 403 "此操作需要管理員權限" SEC-001a primary_remediation verified post-fix Regression: python test_all.py 55/55 PASS, 0 FAIL (run against verification backend on :9101 with same SEC-001a fix applied; original :9100 backend remains stale due to non-reload mode but is not the verification target) Files modified: backend/app/api/licenses.py:9 — added require_admin to imports backend/app/api/licenses.py:118 — added _admin: dict = Depends(require_admin) to violations_summary signature .knowledge/audit/poc/SEC-001a-licenses-summary-leak.py — step [8] now gracefully recognises HTTP 403 as post-fix NO LEAK signal (script is now re-runnable for both pre-fix LEAK and post-fix NO LEAK verification) Audit doc: SEC-001a status: open → fixed (2026-04-26 by Phase 5 #2 commit) SDLC-001 enforcement test status: unchanged at 2 missing (SEC-001b + SEC-001d, expected to drop to 0 after Phase 5 #3 + #5) Top-10 progress: #0 done, #1 done (in-progress), #2 done. Next: #3 SEC-001b (licenses release IDOR with Depends(require_release_in_scope) + 404 not 403). Tooling: Claude Code (Anthropic) Methodology-review: see .knowledge/audit/phase-4-summary-2026-04-26.md §0
ninjat6
pushed a commit
that referenced
this pull request
Apr 27, 2026
…via SDLC-001 middleware Phase 5 #3 — applies SDLC-001's require_release_in_scope dependency to the /api/licenses/releases/{release_id}/violations endpoint. Closes CWE-639 IDOR; uses 404 (not 403) to prevent release_id enumeration oracle (CWE-204 Observable Response Discrepancy). Verification type: poc-rerun Before fix: SEC-001b-licenses-release-idor.py [IDOR CONFIRMED] viewerB GET /licenses/releases/<orgA_id>/violations → HTTP 200 + 1 violation entry (orgA's GPL component) cross-tenant license violation disclosure proven After fix: SEC-001b-licenses-release-idor.py [NO LEAK] viewerB GET /licenses/releases/<orgA_id>/violations → HTTP 404 "Release not found" SEC-001b primary_remediation verified post-fix (assert_release_in_scope returns 404 in both 'not found' and 'cross-org' cases — no oracle) Regression: python test_all.py 54/54 PASS, 0 FAIL SDLC-001 enforcement test: 2 missing → 1 missing (only SEC-001d remains; closing in Phase 5 #5) Files modified: backend/app/api/licenses.py:10 — added require_release_in_scope import backend/app/api/licenses.py:144-154 — release_violations endpoint: - signature: release_id: str + manual lookup → release: Release = Depends(require_release_in_scope) - removed manual `db.query(Release).filter(...).first()` + 404 raise (now done by the dependency, with bonus joinedload(product) to avoid N+1) - removed manual `if not release` check (dependency handles) - body: Component.release_id == release_id → release.id - response: "release_id": release_id → release.id - added docstring noting SEC-001b fix + 404-not-403 rationale Audit doc: SEC-001b status: open → fixed (2026-04-26 by Phase 5 #3 commit) Top-10 progress: #0 done, #1 done (in-progress), #2 done, #3 done. Next: #4 SEC-001c (policies summary, mirrors #2 pattern). Tooling: Claude Code (Anthropic) Methodology-review: see .knowledge/audit/phase-4-summary-2026-04-26.md §0
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps actions/setup-node from 4 to 6.
Release notes
Sourced from actions/setup-node's releases.
... (truncated)
Commits
48b55a0Update Node.js versions in versions.yml and bump package to v6.4.0 (#1533)ab72c7eUpgrade@actionsdependencies (#1525)53b8394Bump minimatch from 3.1.2 to 3.1.5 (#1498)54045abScope test lockfiles by package manager and update cache tests (#1495)c882bffReplace uuid with crypto.randomUUID() (#1378)774c1d6feat(node-version-file): support parsingdevEnginesfield (#1283)efcb663fix: remove hardcoded bearer (#1467)d02c89dFix npm audit issues (#1491)6044e13Docs: bump actions/checkout from v5 to v6 (#1468)8e49463Fix README typo (#1226)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)