fix(security): remediate base-branch Security Scan findings (Python + npm) - #714
Closed
seonghobae wants to merge 2 commits into
Closed
fix(security): remediate base-branch Security Scan findings (Python + npm)#714seonghobae wants to merge 2 commits into
seonghobae wants to merge 2 commits into
Conversation
The Security Scan trivy-fs gate reports two real findings against services/analysis-engine/uv.lock that fail every open PR: - CVE-2026-59890 (MEDIUM, CVSS 6.1) setuptools < 83.0.0: FileList applies MANIFEST.in exclude/prune globs without Unicode normalization, so an NFD file name can bypass an NFC exclusion rule on macOS APFS/HFS+. - CVE-2026-55404 (HIGH, CVSS 7.5) yt-dlp < 2026.7.4: --write-link/ --write-url-link/--write-desktop-link write shortcut files from attacker-controlled metadata without escaping (file:// URI / desktop-entry injection). Bump the direct yt-dlp floor to >=2026.7.4 and pin the transitive setuptools (pulled via torch) to >=83.0.0 with a [tool.uv] constraint so the resolved version cannot regress below the fix. Regenerate uv.lock: setuptools 81.0.0 -> 83.0.0, yt-dlp 2026.6.9 -> 2026.7.4, with torch 2.12.1 -> 2.13.0 and cuda-toolkit 13.0.2 -> 13.0.3.0 as transitive re-resolution. Fixed at the base branch so all open PRs inherit the remediation. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AqtiEQFfuYFsS75Aku9tPT
Contributor
📝 WalkthroughWalkthrough분석 엔진의 Changes분석 엔진 의존성 설정
Estimated code review effort: 1 (Simple) | ~5 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Comment |
The required security-audit gate (npm audit --audit-level=high) fails on the base branch with two high-severity transitive advisories that block every open PR: - postcss <= 8.5.17 (HIGH) GHSA-r28c-9q8g-f849: path traversal in previous source-map auto-loading (sourceMappingURL) can disclose arbitrary .map files. Bump 8.5.16 -> 8.5.25. - brace-expansion <= 5.0.7 (HIGH) GHSA-3jxr-9vmj-r5cp / GHSA-mh99-v99m-4gvg: DoS via exponential-time / unbounded {} expansion. Bump 5.0.6 -> 5.0.8. Applied with `npm audit fix --package-lock-only` (lockfile-only, semver compatible, no package.json / overrides change; nanoid 3.3.15 -> 3.3.16 pulled transitively by postcss). `npm audit --audit-level=high` now reports 0 vulnerabilities. Fixed at the base branch so all open PRs inherit it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AqtiEQFfuYFsS75Aku9tPT
This was referenced Jul 29, 2026
seonghobae
enabled auto-merge
July 30, 2026 04:59
3 tasks
Collaborator
Author
|
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. |
Collaborator
Author
|
closed-closed-duplicate/superseded (security/CVE cluster) → #727 |
auto-merge was automatically disabled
July 31, 2026 12:52
Pull request was closed
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.
Summary
Remediates every currently-failing base-branch security gate so all open PRs inherit the fix. Two independent gates were red on
develop:1.
trivy-fs— Python (services/analysis-engine/uv.lock)The job log says: "Remediate each finding at the shared base branch so open PRs inherit the fix."
setuptools< 83.0.0:FileListappliesMANIFEST.inexclude/prune globs without Unicode normalization, so an NFD file name can bypass an NFC exclusion rule on macOS APFS/HFS+. Fixed in 83.0.0.yt-dlp< 2026.7.4:--write-link/--write-url-link/--write-desktop-linkwrite shortcut files from attacker-controlled metadata without escaping (file://URI / desktop-entry injection). Fixed in 2026.7.4.Direct
yt-dlpfloor →>=2026.7.4; transitivesetuptools(viatorch) pinned with a[tool.uv] constraint-dependenciesentry (>=83.0.0) so it cannot regress.uv.lock: setuptools 81.0.0 → 83.0.0, yt-dlp 2026.6.9 → 2026.7.4, with torch 2.12.1 → 2.13.0 and cuda-toolkit 13.0.2 → 13.0.3.0 as transitive re-resolution.2.
security-audit— npm (package-lock.json)npm audit --audit-level=highreported 2 high-severity transitive advisories on the base branch:sourceMappingURL) can disclose arbitrary.mapfiles. Bump 8.5.16 → 8.5.25.{}expansion. Bump 5.0.6 → 5.0.8.Applied with
npm audit fix --package-lock-only(lockfile-only, semver-compatible, nopackage.json/overrides change;nanoid3.3.15 → 3.3.16 pulled transitively by postcss).npm audit --audit-level=highnow reports 0 vulnerabilities.Verification
./scripts/harness/quickcheck.shSession note: the full Python suite could not run locally because the outbound proxy times out fetching the large
torch/librosawheels foruv sync. Verified without a network resolve:uv lock --lockedpasses (91 packages consistent), andnpm audit --audit-level=high→ 0 vulnerabilities. CI runs the full quickcheck plustrivy-fs,security-audit,osv-scanner, anddependency-reviewagainst this change.Security Notes
Attack surface
Four known CVEs reachable from committed lockfiles:
yt-dlpshortcut-file writing,setuptoolssdist packaging,postcsssource-map path traversal,brace-expansionDoS. All surface throughuv.lock(trivy-fs) andpackage-lock.json(npm audit).Trust boundary
Dependency supply chain only. No source-code or trust-boundary changes; fixes stay within the pinned/hash-locked lockfiles.
Mitigations
Upgrade to fixed upstream versions and record a durable
setuptools>=83.0.0floor so a future re-resolve cannot drop below the fix.Test points
trivy-fs(0 CRITICAL/HIGH/MEDIUM),security-audit(npm audit0 high),dependency-review,osv-scanner, and the Python engine pytest 100% coverage gate (validates the torch 2.13.0 transitive bump).Dependency and Supply Chain
yt-dlpfloor moved; postcss/brace-expansion/setuptools are transitive)[tool.uv]constraint and--package-lock-onlyaudit fix were chosen for a minimal, non-regressing diff)i18n impact
Reviewer checklist
develop)