Skip to content

보안 잔여 경보 정리: Next.js / python-multipart / FastAPI 런타임 스택 - #186

Merged
seonghobae merged 1 commit into
masterfrom
feature/security-remediation-20260513
May 13, 2026
Merged

보안 잔여 경보 정리: Next.js / python-multipart / FastAPI 런타임 스택#186
seonghobae merged 1 commit into
masterfrom
feature/security-remediation-20260513

Conversation

@seonghobae

@seonghobae seonghobae commented May 13, 2026

Copy link
Copy Markdown
Contributor

목표

현재 에 남아 있는 17개의 Dependabot 경보를 실제 root cause 기준으로 제거합니다.

구현 사항

  1. Frontend: 와 를 으로 올려 App Router 관련 SSRF, cache poisoning, middleware bypass, XSS, DoS 취약점 군을 정리했습니다.
  2. Backend: 를 로 올려 multipart parser 관련 다수 취약점(CVE-2024-53981, CVE-2026-24486, CVE-2026-40347, CVE-2026-42561)을 해소했습니다.
  3. Framework stack: 를 , 를 , 를 로 올려 경고를 억지로 숨기지 않고, deprecated multipart import 및 추가 Python 취약점도 함께 제거했습니다.

검증

  • frontend: found 0 vulnerabilities => 0 vulnerabilities
  • backend: => No known vulnerabilities found
  • backend:
  • frontend:

관련 PR 정리 예정

이 PR이 병합되면 stale/dependabot/superseded PR (#167, #143, #133 등)을 정리합니다.

Summary by CodeRabbit

  • Chores
    • Updated backend dependency pins: upgraded core server framework, ASGI server, multipart handling, and OpenTelemetry packages; removed the previous setuptools pin.
    • Bumped frontend runtime/tooling: upgraded Next.js and eslint-config-next to a newer patch release.

Review Change Stack

@coderabbitai

coderabbitai Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor

Note

.coderabbit.yaml has unrecognized properties

CodeRabbit is using all valid settings from your configuration. Unrecognized properties (listed below) have been ignored and may indicate typos or deprecated fields that can be removed.

⚠️ Parsing warnings (1)
Validation error: Unrecognized key(s) in object: 'version'
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: f194fdbc-2249-47d4-bf87-67101d225f2b

📥 Commits

Reviewing files that changed from the base of the PR and between 764f053 and 0d189c8.

⛔ Files ignored due to path filters (1)
  • frontend/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (2)
  • backend/requirements.txt
  • frontend/package.json

📝 Walkthrough

Walkthrough

Dependency pins updated: backend Python packages (fastapi, uvicorn, python-multipart, OpenTelemetry packages; removed setuptools<71.0.0 pin) and frontend Next.js + eslint-config-next bumped to 16.2.6.

Changes

Dependency Version Updates

Layer / File(s) Summary
Backend Python dependencies
backend/requirements.txt
fastapi and uvicorn pinned to newer fixed versions; python-multipart and multiple OpenTelemetry packages (API/SDK/fastapi instrumentation/exporter) upgraded; the prior setuptools<71.0.0 constraint was removed.
Frontend JavaScript dependencies
frontend/package.json
next and eslint-config-next updated from 16.2.4 to 16.2.6.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • Seongho-Bae/naruon#168: Another dependency/version bump PR touching backend/requirements.txt and frontend changes.

Poem

🐰
I hopped through pins with gentle paws,
Bumped runtimes, traced the fallen clause,
Backend trimmed, frontend shone so neat,
Tiny upgrades make the whole run fleet,
I twitch my nose and nibble a treat.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is written in Korean and translates to 'Security Remaining Alert Cleanup: Next.js / python-multipart / FastAPI Runtime Stack'. It accurately reflects the main changes in the PR which include upgrades to Next.js, python-multipart, FastAPI, and Uvicorn to address security vulnerabilities.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/security-remediation-20260513

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for e653973307d66445a519198a4822f85cd751a15a:

  • 3 required check(s) are not successful on e653973.\n- Missing current-head CodeRabbit/coderabbitai evidence for e653973.\n

@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for e653973307d66445a519198a4822f85cd751a15a:

  • 2 required check(s) are not successful on e653973.\n- Missing current-head CodeRabbit/coderabbitai evidence for e653973.\n

@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for e653973307d66445a519198a4822f85cd751a15a:

  • 1 required check(s) are not successful on e653973.\n- Missing current-head CodeRabbit/coderabbitai evidence for e653973.\n

@seonghobae

Copy link
Copy Markdown
Contributor Author

@coderabbitai approve

@coderabbitai

coderabbitai Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Comments resolved and changes approved.

@greptile-apps

greptile-apps Bot commented May 13, 2026

Copy link
Copy Markdown

Greptile Summary

이 PR은 프론트엔드(Next.js 16.2.4 → 16.2.6)와 백엔드(FastAPI 0.111.0 → 0.136.1, python-multipart 0.0.9 → 0.0.27, setuptools 상한 제거)의 의존성을 보안 취약점 해소 목적으로 업그레이드합니다.

  • Frontend: nexteslint-config-next를 16.2.4 → 16.2.6으로 패치 버전 범프, package-lock.json의 모든 @next/swc-* 바이너리도 함께 업데이트됨.
  • Backend: fastapi를 0.111.0 → 0.136.1, python-multipart를 0.0.9 → 0.0.27으로 올려 CVE-2024-53981 등 해소, setuptools<71.0.0 상한 제거 후 ==78.1.1로 고정.
  • 미갱신 패키지: uvicorn==0.27.0, opentelemetry-instrumentation-fastapi==0.46b0, pydantic-settings==2.1.0 등 FastAPI 0.136.1의 새 Starlette 요구사항과 충돌 가능성이 있는 패키지들이 함께 올라오지 않았습니다.

Confidence Score: 4/5

보안 취약점 해소 목적의 변경은 올바르게 적용됐으나, FastAPI 0.111.0 → 0.136.1 점프로 인해 함께 올라가야 할 주변 패키지들이 구버전으로 남아 있어 배포 전 런타임 검증이 필요합니다.

FastAPI가 0.111.0에서 0.136.1로 건너뛰면서 Starlette ≥ 0.46.0이 전이 의존성으로 추가됐습니다. 함께 올라가지 않은 uvicorn==0.27.0, opentelemetry-instrumentation-fastapi==0.46b0 등이 새 내부 API와 충돌할 경우 기동 실패 또는 무음 기능 손실이 발생할 수 있습니다. 프론트엔드 패치 버전 범프는 깔끔합니다.

backend/requirements.txt — FastAPI 버전 점프에 맞춰 미갱신된 uvicorn, opentelemetry 계열, pydantic-settings, prometheus-fastapi-instrumentator의 실제 호환 여부를 확인해야 합니다.

Important Files Changed

Filename Overview
backend/requirements.txt fastapi 0.111.0→0.136.1, python-multipart 0.0.9→0.0.27, setuptools 상한→==78.1.1 업그레이드. uvicorn, opentelemetry, pydantic-settings 등 함께 올라가야 할 패키지가 아직 구버전으로 남아 있어 런타임 호환성 검증이 필요함.
frontend/package.json next 및 eslint-config-next를 16.2.4→16.2.6으로 패치 버전 범프. 보안 수정 목적의 깔끔한 변경.
frontend/package-lock.json package.json 버전 변경에 맞춰 @next/env, @next/swc-* 바이너리, eslint-config-next 등 next 생태계 패키지 전체가 16.2.6으로 일관되게 업데이트됨. 특이사항 없음.

Reviews (4): Last reviewed commit: "fix(security): remediate next and python..." | Re-trigger Greptile

Comment thread backend/requirements.txt
Comment thread backend/requirements.txt
@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for e653973307d66445a519198a4822f85cd751a15a:

  • 2 unresolved current review thread(s) remain.\n- Missing current-head CodeRabbit/coderabbitai evidence for e653973.\n

@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for d0dd6842ef32db5c9df65dd19c6da921a5f3b0c3:

  • 3 required check(s) are not successful on d0dd684.\n- Missing current-head CodeRabbit/coderabbitai evidence for d0dd684.\n

@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for d0dd6842ef32db5c9df65dd19c6da921a5f3b0c3:

  • 2 required check(s) are not successful on d0dd684.\n- Missing current-head CodeRabbit/coderabbitai evidence for d0dd684.\n

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for d0dd6842ef32db5c9df65dd19c6da921a5f3b0c3:

  • 2 required check(s) are not successful on d0dd684.\n- Missing current-head CodeRabbit/coderabbitai evidence for d0dd684.\n

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
backend/requirements.txt (1)

26-26: ⚡ Quick win

Remove setuptools from runtime requirements.

setuptools is a build-time tool and is not imported anywhere in the application code. Keeping it in requirements.txt introduces unnecessary bloat and potential dependency conflicts. Move it to build requirements (e.g., pyproject.toml under build-requires) if needed for the build system.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@backend/requirements.txt` at line 26, Remove the runtime dependency
"setuptools==78.1.1" from requirements.txt (delete the line containing
setuptools==78.1.1) and, if the build system needs it, add setuptools to the
build requirements instead (e.g., in pyproject.toml's build-system.requires or
equivalent build-requires section); ensure no application code imports
setuptools so it stays out of runtime deps.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@backend/requirements.txt`:
- Line 26: Remove the runtime dependency "setuptools==78.1.1" from
requirements.txt (delete the line containing setuptools==78.1.1) and, if the
build system needs it, add setuptools to the build requirements instead (e.g.,
in pyproject.toml's build-system.requires or equivalent build-requires section);
ensure no application code imports setuptools so it stays out of runtime deps.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 0f82e212-940c-474e-8e6c-be636cfedd17

📥 Commits

Reviewing files that changed from the base of the PR and between e653973 and d0dd684.

📒 Files selected for processing (1)
  • backend/requirements.txt

@seonghobae

Copy link
Copy Markdown
Contributor Author

@coderabbitai approve

@coderabbitai

coderabbitai Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Comments resolved and changes approved.

@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for 0d189c841b8f6061af972933d610a246e10da114:

  • 3 required check(s) are not successful on 0d189c8.\n- Missing current-head CodeRabbit/coderabbitai evidence for 0d189c8.\n

@seonghobae

Copy link
Copy Markdown
Contributor Author

@coderabbitai approve

@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for 0d189c841b8f6061af972933d610a246e10da114:

  • 2 required check(s) are not successful on 0d189c8.\n- Missing current-head CodeRabbit/coderabbitai evidence for 0d189c8.\n

2 similar comments
@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for 0d189c841b8f6061af972933d610a246e10da114:

  • 2 required check(s) are not successful on 0d189c8.\n- Missing current-head CodeRabbit/coderabbitai evidence for 0d189c8.\n

@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for 0d189c841b8f6061af972933d610a246e10da114:

  • 2 required check(s) are not successful on 0d189c8.\n- Missing current-head CodeRabbit/coderabbitai evidence for 0d189c8.\n

@coderabbitai

coderabbitai Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Comments resolved and changes approved.

@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for 0d189c841b8f6061af972933d610a246e10da114:

  • Missing current-head CodeRabbit/coderabbitai evidence for 0d189c8.\n

@seonghobae

Copy link
Copy Markdown
Contributor Author

@coderabbitai approve

@coderabbitai

coderabbitai Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Comments resolved and changes approved.

@seonghobae

Copy link
Copy Markdown
Contributor Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Full review triggered.

@seonghobae

Copy link
Copy Markdown
Contributor Author

@coderabbitai approve

@coderabbitai

coderabbitai Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Comments resolved and changes approved.

@seonghobae
seonghobae force-pushed the feature/security-remediation-20260513 branch from 0d189c8 to e653973 Compare May 13, 2026 04:28
@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for e653973307d66445a519198a4822f85cd751a15a:

  • 2 required check(s) are not successful on e653973.\n- Missing current-head CodeRabbit/coderabbitai evidence for e653973.\n

@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for e653973307d66445a519198a4822f85cd751a15a:

  • 1 required check(s) are not successful on e653973.\n- Missing current-head CodeRabbit/coderabbitai evidence for e653973.\n

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for e653973307d66445a519198a4822f85cd751a15a:

  • 1 required check(s) are not successful on e653973.\n- Missing current-head CodeRabbit/coderabbitai evidence for e653973.\n

@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for e653973307d66445a519198a4822f85cd751a15a:

  • Missing current-head CodeRabbit/coderabbitai evidence for e653973.\n

@seonghobae
seonghobae merged commit 4716b51 into master May 13, 2026
25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant