fix(deps): bump hono, astro, and docs-site overrides to resolve audit CVEs - #4873
Conversation
|
✅ READY
Review readiness checklist
✅ 4/4 boxes ticked. This pull request is already Ready for Review. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (2)
Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughThe pull request updates dependency and override versions in ChangesDependency updates
Priority: ➖ Normal Estimated code review effort: 1 (Trivial) | ~5 minutes Change: Other Merge Risk: ⚪ Minimal · up to The dependency updates introduce no evidenced functional, security, or availability risk requiring resolution before merge. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
리뷰 · 우선순위 73 / 80이 PR은 agentHits의 Draft 의존성 보안 패치다. 제목대로 현재 루트 쪽 핵심은
지금 CI는 types.ts/config.ts 대분할로 바로 무효화되는 PR은 아니다. 오히려 릴리스 레인과 직교하는 감사(audit) 위생이다. Critical astro는 문서 사이트 빌드 도구 표면이고, 프록시 런타임 패킷 경로와는 분리해서 보면 된다. 그래도 docs 빌드에 RCE가 있으면 기여/배포 머신 위험이니 무시하면 안 된다. package.json overrides.hono - 예전에 정확 핀 메인테이너의 판단이 필요한 지점
너의 추천 이 댓글은 grok-bot이 작성했습니다 |
|
Thanks for the review @lidge-jun! Following your recommendation:
Ready for security review, |
Maintainer security review — head
|
7c9479b to
329b458
Compare
…ad fence (#4883) * docs(devlog): plan the L1 preview read fence and dependency audit lane Records the roadmap for two independent safety units: closing pool eligibility inside the caller-owned preview read fence (#4850), and reviewing the existing dependency audit override PR (#4873). * fix(codex): close pool eligibility inside the caller-owned preview read fence A `thread_spawn` authenticating with the caller's own forwardable Codex bearer still opened the operator's physical native-main `auth.json` during request preview, twice per request. `request-prepare.ts` already computed the ownership fence and honoured it for quota priming, entitlement discovery, and the denied-model cache. It did not reach pool eligibility: `previewSelectionOptions` carried no `isMainAccountTokenLive`, so `codexAccountUnusableReason` fell through to its default `isMainAccountCredentialUsable()` and read the file. The second read came from subagent fallback re-entering the preview through its callback with the same options object, and the post-decryption recovery re-preview had the same omission. No token was disclosed, refreshed, or sent: final authentication passes its own synthetic liveness and never selected physical main for these requests. What leaked across the boundary was influence -- operator-main liveness, cached quota, and plan state could score into the decision to rewrite a subagent's model for a request that owns its credential. ADR-0086 already rejected reading the physical main token for identity. Use the existing `CodexAccountUsabilityOptions.isMainAccountTokenLive` seam, scoped to `previewRequestScopedMainCredential`, and give it the value final authentication computes rather than a constant. An effective main pin means the request really is served by its own main credential, so preview must score main eligible; without the pin final authentication drops main from pool eligibility and preview must drop it too. The predicate moves into one exported `requestOwnedMainPinState` that both callers share, because two copies of this fence is how the gap appeared. Regression coverage asserts the read count rather than the outcome. "The right credential was eventually sent" was already true while the defect existed, so only an unfiltered zero-read assertion distinguishes a closed fence from a lucky result. A no-bearer request is asserted to still read and serve physical main, so the fix cannot be satisfied by making main globally ineligible, and the #3166 main-pin path is asserted to stay on main and stay read-free. Closes #4850 * test(responses): order and scope the new read-fence cases correctly Three corrections from the first hosted run, all in the new tests rather than in the fix. The case that proves the fence itself -- zero `auth.json` reads for a caller-owned spawn -- passed and is unchanged. Both cases that let a request reach native main now run last. Observing a main credential writes module state in `main-account-cache.ts` that nothing in this file resets: `beforeEach` rebuilds `OPENCODEX_HOME` and the read counters, not that cache. Running them earlier made the existing recovery/drain case see three reads it does not make on its own. The no-bearer case no longer selects and materializes main. It asserts what it was actually there to assert -- that a preview owning no credential still probes physical main liveness, so the seam cannot have been applied to every preview -- without depending on which account ends up serving. The main-pin case drops its read-count assertion and says so. The pin path does reach the physical credential elsewhere in the request; the guarantee under test is that preview and final authentication agree on the pin, which the resolved context and the untouched model already establish.
Summary
Resolves 10 vulnerability advisories (1 Critical, 5 High, 4 Moderate) reported by
bun auditacross root anddocs-site:1. Root proxy runtime (
package.json/bun.lock)hono: bumped inoverridesfrom4.13.1to^4.13.8(resolves advisories for<4.13.5):toSSG()directory traversal outside output directory.parseBody()causing memory exhaustion / DoS.2. Docs site (
docs-site/package.json/docs-site/bun.lock)astro: bumped from^7.2.2to^7.3.3(resolves advisories for<7.2.8):sharp: bumped from^0.35.3to^0.35.4(resolves<0.35.4libheif vulnerabilities GHSA-rgj7-g3m4-5g8c, GHSA-2jg2-4ch7-h545).svgo: bumped in overrides from4.0.2to4.1.0(resolves GHSA-4vpr-x523-8j87 and GHSA-w27v-7q3p-w38r executable script sanitization bypasses).smol-toml: added override^1.8.0(resolves GHSA-7w5x-hrqm-74c2 DoS via malformed TOML documents).js-yaml: added override^4.3.2(resolves GHSA-2883-xcg3-v3hh CPU exhaustion on empty merge sources).Verification
bun auditin root: 0 vulnerabilities (No vulnerabilities found).bun auditindocs-site: 0 vulnerabilities (No vulnerabilities found).bun auditingui: 0 vulnerabilities (No vulnerabilities found).bun run typecheckin root: passed (bun x tsc --noEmit).astro buildindocs-site: passed (449 pages built cleanly).bun run privacy:scanandbun run structure:check: passed.tests/ci-workflows/package-tree-integrity.test.ts,repo-hygiene.test.ts,structure-ssot.test.ts): 62 passed, 0 failed.Checklist
Review readiness checklist
This PR stays in draft until every box below is ticked. Tick all four boxes once the requirements are met:
All CI tests are green on my local testing.
I pushed my PR to the latest dev commit.
I resolved all correct Codex and CodeRabbit findings.
My PR is ready for review.
Summary by CodeRabbit