Repository navigation
security: next 16.4.2 — 10/22 Next.js 보안 권고 3건 반영 - #47
Merged
Merged
Conversation
next 16.3.8 → 16.4.2 (정확 고정). @next/env·@next/swc-* 는 next 를 따라 16.4.2 로 바뀐다. 16.3.8 은 2026-10-22 공개된 GHSA-2464-fhr4-w9xw(치명, 이미지 최적화 RCE), GHSA-673q-mjm6-r5xr(치명, 'use cache' RCE), GHSA-p3m5-59mp-jv5r(높음, Server Actions DoS) 범위 안이고, 이 셋 때문에 CI 의 `pnpm audit --audit-level=high` 가 실패한다. CI 가 빨간 SHA 는 scripts/deploy.sh 가 배포하지 않으므로, 이 bump 없이는 다른 변경도 배포되지 않는다. baseline-browser-mapping 2.10.27 → 2.11.29: lockfile 만, next 가 선언한 ^2.9.19 범위 안. GHSA-w5vr-8v7q-w6rv(중간, 빌드 시 입력 처리 DoS) 해소. 2.11.29 는 10/15 공개본(1주 이상)이고, 이것만 바꾼 빌드의 .next/static 은 바꾸기 전과 같았다(빌드 ID 폴더만 다름). pnpm-workspace.yaml auditConfig: 주석대로 ignore 목록을 빼고 audit 를 다시 돌렸다. GHSA-6g55-p6wh-862q(postcss <= 8.5.11)는 이미 매칭되지 않아 지운다. 남은 4건은 next 의 postcss 8.5.23 이 아니라 @tailwindcss/postcss 가 가져오는 postcss 8.5.14(nanoid 3.3.12)에 매칭되므로 주석을 실제에 맞게 고친다. sharp 는 0.35.5 그대로(next 16.4.2 optional ^0.35.5), source-map-js 1.2.2 그대로. sharp 0.35.x·baseline-browser-mapping 모두 install 스크립트가 없어 allowBuilds 는 바꾸지 않는다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
무엇을
next16.3.8 → 16.4.2 (package.json 정확 고정, pnpm-lock.yaml).@next/env·@next/swc-*도 함께 16.4.2가 됩니다.baseline-browser-mapping2.10.27 → 2.11.29: lockfile만 바꿨고, next가 선언한^2.9.19범위 안입니다. GHSA-w5vr-8v7q-w6rv(중간)를 해소합니다.pnpm-workspace.yamlauditConfig@tailwindcss/postcss가 가져오는 postcss 8.5.14(nanoid 3.3.12)입니다.^0.35.5입니다.왜
2026-10-22에 공개된 Next.js 권고 3건의 범위에 16.3.8이 들어갑니다.
use cache함수가 typed array를 반환할 때 비인증 RCE이 앱의 현재 노출은 낮습니다.
dangerouslyAllowSVG는 꺼져 있습니다.cacheComponents는 꺼져 있습니다.그래도 지금 올리는 이유는 두 가지입니다.
pnpm audit --audit-level=high가 이 3건 때문에 실패합니다. main693c890에서 로컬로 재현했습니다(exit 1, 치명 2·높음 1).scripts/deploy.sh는 CI가 녹색이 아닌 SHA를 배포하지 않습니다. 그래서 이 bump가 없으면 다른 변경도 배포되지 않습니다.16.4.2를 고른 이유는 이렇습니다.
확인한 것
로컬 새 클론에서 pnpm 11.28.6, Node 26으로 돌렸습니다(CI는 Node 22). 순서와 환경은 ci.yml과 같습니다:
NODE_ENV=production,DB_PATH·MIC_DATA_PATH는 임시 경로.별도 클론에서 Node 22.22.1과 빈 pnpm store로 같은 단계를 다시 돌려 아래 표와 같은 결과를 얻었습니다. 바뀐 패키지 11개의 lockfile integrity는 레지스트리(registry.npmjs.org) 값과 모두 같습니다.
693c890pnpm install --frozen-lockfilepnpm exec tsc --noEmitpnpm testpnpm buildtsx scripts/check-health.tspnpm audit --audit-level=high@tailwindcss/postcss경로입니다.next start전후 두 개를 나란히 띄워 24개 경로를 비교했습니다./opengraph-image,/apple-icon,/icon.svg,/robots.txt,/llms.txt,/manifest.webmanifest는 바이트까지 같습니다./_next/image는 래스터 원본의 결과가 바이트까지 같고, SVG 원본은 전후 모두 400입니다.…-module__CUItYG__variable→CUItYG_variable): 바뀐 이름이 CSS에도 그대로 정의되어 있습니다..next/static은 빌드 ID 폴더를 빼면 같습니다.이 PR의 CI(Node 22, pnpm 11)가 녹색인지 확인한 뒤 병합합니다. lockfile 변경은 버전·integrity 줄뿐이고 형식(v9)은 그대로입니다.
배포
checks) 녹색 → 배포 poller(scripts/deploy-loop.sh→scripts/deploy.sh)의 다음 주기DEPLOY_QUIET_HOURS_KST시간대에는 다음 주기로 미뤄집니다.ci.yml)는pull_request와 main push에서만 돌고, 권한은contents: read입니다./,/api/health,/opengraph-image,/ask가 200인지되돌림
scripts/deploy.sh의 operator hold를 먼저 겁니다. 그래야 poller가 main을 다시 올리지 않습니다.pm2_swap_to와 같은 방식이고 재빌드는 없습니다.후속(범위 밖)
@tailwindcss/postcss의 postcss 8.5.14 → 8.5.23(^8.5.6범위 안)~0.27.0으로 묶여 있고, allowBuilds도esbuild@0.27.7로 고정되어 있습니다.🤖 Generated with Claude Code