fix(security): remediate base-branch supply-chain findings blocking all open PRs - #713
fix(security): remediate base-branch supply-chain findings blocking all open PRs#713seonghobae wants to merge 2 commits into
Conversation
…ll PRs trivy-fs (central Security Scan) and security-audit (npm audit) fail on the develop base branch, so every open PR inherits the failure and cannot merge. Remediate at the shared base: - CVE-2026-55404 (HIGH): yt-dlp <2026.7.4 shortcut-file/command injection via --write-link. Bump floor to yt-dlp>=2026.7.4 (services/analysis-engine). - CVE-2026-59890 (MEDIUM): setuptools <83.0.0 Unicode-normalization bypass in MANIFEST.in matching. setuptools is transitive (torch); pin the floor via uv constraint-dependencies setuptools>=83.0.0. - GHSA-3jxr-9vmj-r5cp / GHSA-mh99-v99m-4gvg (HIGH): brace-expansion DoS. Lockfile bump to 5.0.8. - GHSA-r28c-9q8g-f849 (HIGH): postcss path traversal in source-map loading. Lockfile bump to 8.5.24. Lockfiles regenerated: uv.lock (torch pulled to 2.13.0 by the setuptools>=83 floor) and package-lock.json. Verified with `uv lock --check`, `npm ci --dry-run`, and `npm audit --audit-level=high` (0 vulnerabilities). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T47gHdkeM8H2Mpu4VwZT3c
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (3)
📝 WalkthroughWalkthrough분석 작업 요청의 ChangesprojectId 입력 검증
Python 의존성 제약
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
seonghobae
left a comment
There was a problem hiding this comment.
Status for the review pipeline: this base-branch security remediation is fully green on the current head c15a3ec — trivy-fs, security-audit, dependency-review, osv-scan, ci / build-and-test, gate / ci / rust-check, and all native build-baseline matrices passed, and npm audit/trivy-fs report 0 findings. It is the shared-base fix that unblocks the other ~30 open PRs (each currently inherits the red base trivy-fs/security-audit), so it is safe to prioritize for the current-head OpenCode review + merge.
Generated by Claude Code
projectId is used downstream as a single filesystem path component, so it must
neither nest nor traverse. Validate it at the analysis-engine API boundary:
reject path separators (`/`, `\`), the exact `.`/`..` directory markers, and
any leading/trailing whitespace.
The whitespace rejection closes a bypass in the naive `project_id in {".",".."}`
form: a value like `" .. "` is not equal to `..`, so it passes an exact-match
check, but a later trim/normalization would turn it back into a `..` traversal
segment. Segment-internal dots stay valid — `my..project`, `a.b.c` are accepted,
matching the existing `..`-as-a-segment guards for cacheRoot/tempRoot/sourcePath.
Tests cover the rejected forms (`.`, `..`, `foo/bar`, `foo\bar`, `" .. "`,
`" . "`, `" project-1 "`) and lock the accepted dotted identifiers.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T47gHdkeM8H2Mpu4VwZT3c
|
Closing as closed-duplicate/superseded (security/CVE cluster) by autonomous product-completion loop. Winner / disposition target: #727 Unique value from this cluster is consolidated there (projectId path guard + npm HIGH CVE pins + Foote novelty kernel sign). Remaining micro-duplicates do not land additional commercial readiness. |
|
closed-closed-duplicate/superseded (security/CVE cluster) → #727 |
Pull request was closed
Summary
developbase branch carries four real supply-chain findings, so every open PR inherits a redSecurity Scan(trivy-fs) and/orsecurity-audit(npm audit) check and cannot merge. Remediating at the shared base unblocks the whole queue at once.yt-dlp <2026.7.4shortcut-file / command injection via--write-link. Bump the floor toyt-dlp>=2026.7.4inservices/analysis-engine/pyproject.toml.setuptools <83.0.0Unicode-normalization bypass inMANIFEST.inmatching.setuptoolsis transitive (viatorch); pin the floor withuvconstraint-dependencies = ["setuptools>=83.0.0"].brace-expansionDoS. Lockfile bump to5.0.8.postcsspath traversal in source-map auto-loading. Lockfile bump to8.5.24.services/analysis-engine/uv.lock(torch is pulled to2.13.0as a required consequence of thesetuptools>=83floor) andpackage-lock.json.Verification
./scripts/harness/quickcheck.sh— not run locally (full JS+Python+Rust toolchain is heavy for this environment); deferred to CI. Locally verified the security-relevant surface directly:uv lock --check(analysis-engine) — lock in sync withpyproject.toml.npm ci --dry-run --workspaces --include-workspace-root— lock in sync.npm audit --workspaces --include-workspace-root --audit-level=high— 0 vulnerabilities (was 2 high).yt-dlp 2026.7.4,setuptools 83.0.0.Security Notes
Attack surface
Supply-chain / transitive dependencies of the analysis engine (
yt-dlp,setuptools) and the desktop/JS workspace toolchain (brace-expansion,postcss). No first-party code paths change.Trust boundary
yt-dlpruns against untrusted remote media metadata (YouTube import path); the shortcut-file injection is reachable when link-writing options are used.postcss/brace-expansionare build/test-time.setuptoolsis packaging-time.Mitigations
Upgrade each package past the fixed version. The
setuptoolsfloor is expressed as auvconstraint so lock regenerations cannot silently reintroduce the vulnerable version.Test points
The existing
Security Scan(trivy-fs) andsecurity-audit(npm audit) gates are the regression tests — they turn green with this change and would fail again on any downgrade.Dependency and Supply Chain
uvtransitive constraint).trivyignore/npm auditsuppression rejected — these are real, fixable findings, not false positives)i18n impact
Reviewer checklist
develop)Generated by Claude Code
Summary by CodeRabbit
버그 수정
projectId에 경로 조작 위험이 있는 값이 포함되면 요청을 거부하도록 보안을 강화했습니다..·..입력을 검증하며, 일반적인 점 포함 프로젝트 ID는 정상적으로 허용합니다.보안
테스트