Repository navigation
fix: pin Hono 4.13.11 for static-prefix middleware advisory - #253
Conversation
Reserve #248 dependency remediation independently from qualification tooling. Regeneration and patched-tree validation remain pending; bootstrap checks use the old installation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Record protected bootstrap C13 failure and its release-document correction; no gate bypass. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The unchanged profile combination smoke passes 57 tests; publication still requires the ordinary hook. No host controls or assertions changed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Record all three ordinary bootstrap failures and distinguish reserved version from patched assurance. Leave lockfiles untouched, retain #251 and release holds, and stop without bypassing hooks. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Preserve both Hono and standalone timezone evidence. Prerequisite PR252 merged normally at fc962a6 with authoritative merged-source CI and immutable test image. No Hono dependency GREEN claimed before CI-only regeneration. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Apply only authenticated public-registry CI artifact12506119257 from run39965730441/source62bf4d1e. Hono is the sole package change; API/web version metadata advances to0.55.59. Actual installed and locked Hono4.13.11, permanent actual-lock RED/GREEN,42 focused tests PASS, API audit0. Unchanged web Moderate Vitest findings are recorded separately. No Hono merge, deployment or performance rerun. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🔵 Needs a closer look
GitHub Actions confirms that Build Test Image and CodeQL checks for the exact source tip remain in progress, so final approval must await their results.
No open issues 🎉
2 files not reviewed
api/package-lock.json: Generated fileweb/package-lock.json: Generated file
What changed in this PR
Addresses #248 by pinning SCIMServer’s transitive Hono dependency to 4.13.11 for the static-prefix middleware advisory. The change prepares unreleased version 0.55.59 without changing application/UI behavior or claiming deployment remediation.
Changes:
- Update the exact Hono override and CI-generated lockfile, with coordinated API/web version metadata.
- Add regression tests for the advisory boundary, minimal patch recommendation, and every committed Hono lock entry.
- Record dependency provenance and validation evidence; refresh documentation version headers while preserving existing release holds.
| File | Description |
|---|---|
web/package.json |
Bump product version to 0.55.59. |
web/package-lock.json |
Align version metadata; dependencies unchanged. |
Session_starter.md |
Record remediation progress and remaining checks. |
README.md |
Update product header and version badge. |
docs/UI_GUIDE.md |
Refresh version headers only. |
docs/strategy/NPM_SUPPLY_CHAIN_QUARANTINE_POLICY.md |
Document provenance, validation, and separate web advisory triage. |
docs/strategy/ENGINEERING_LESSONS_AND_PATTERNS.md |
Record dependency-inventory verification lessons. |
docs/SOVEREIGN_AND_GOV_CLOUD_DEPLOYMENT.md |
Refresh version headers only. |
docs/SCHEMA_CUSTOMIZATION_GUIDE.md |
Refresh product version header only. |
docs/SCHEMA_ATTRIBUTE_CUSTOMIZATION_GUIDE.md |
Refresh product version header only. |
docs/REMOTE_DEBUGGING_AND_DIAGNOSIS.md |
Refresh product version header only. |
docs/RELEASE_NOTES.md |
Describe the pending security patch and validation limits. |
docs/PROD_TO_DEV_MIRRORING_AND_FIXTURES.md |
Refresh version headers only. |
docs/PATCH_OPERATIONS_COMPLETE_GUIDE.md |
Refresh product version header only. |
docs/OBSERVABILITY_TRACEABILITY_AND_DIAGNOSTICS.md |
Refresh product version header only. |
docs/MULTI_ENDPOINT_GUIDE.md |
Refresh version headers only. |
docs/LOGGING_AND_OBSERVABILITY.md |
Refresh product version header only. |
docs/INDEX.md |
Refresh version headers only. |
docs/GLOBAL_NAVIGATION_AND_WORKFLOW_CONTEXT.md |
Refresh product version header only. |
docs/ENDPOINT_PROFILE_ARCHITECTURE.md |
Refresh product version header only. |
docs/ENDPOINT_LIFECYCLE_AND_USAGE.md |
Refresh version headers only. |
docs/ENDPOINT_CREATION_WIKI.md |
Refresh version headers only. |
docs/ENDPOINT_CONFIG_FLAGS_REFERENCE.md |
Refresh version headers only. |
docs/DOCKER_GUIDE_AND_TEST_REPORT.md |
Refresh version headers only. |
docs/CUSTOM_EXTENSIONS_RFC_GUIDE.md |
Refresh product version header only. |
docs/CONTEXT_INSTRUCTIONS.md |
Update remediation context and prerequisite status. |
docs/COMPLETE_API_REFERENCE.md |
Refresh version headers only. |
docs/AZURE_DEPLOYMENT_AND_USAGE_GUIDE.md |
Refresh version headers only. |
docs/AUTHENTICATION_GUIDE.md |
Refresh product version header only. |
DEPLOYMENT.md |
Refresh product version header only. |
CHANGELOG.md |
Record the patch, test coverage, and evidence boundaries. |
api/src/scripts/check-dependency-pins.spec.ts |
Add advisory and actual-lock provenance regression tests. |
api/package.json |
Pin Hono 4.13.11 and bump product version. |
api/package-lock.json |
Lock patched Hono with updated integrity and version metadata. |
Review effort: Balanced
There was a problem hiding this comment.
🟢 Approval recommended
The bounded dependency patch has targeted regression coverage, confirmed successful exact-head Build Test Image CI, and no unresolved blocking findings.
No open issues 🎉
2 files not reviewed
api/package-lock.json: Generated fileweb/package-lock.json: Generated file
Review effort: Balanced
Hono merged and published; issue remains open for separate web pinsPR #253 was normally merged, One authoritative merged-source matrix, Guarded publication Registry provenance identifies that exact source revision and publication Issue disposition: the specific Hono GHSA-5r4p-p66f-jhc7 /
The pin watcher is explicitly non-blocking; its successful workflow execution The merged-source CI test image and published image are separate builds: No dev/customer deployment, live mutation, performance rerun, #251 merge, |
Summary
Pin transitive Hono exactly to the smallest eligible patched version, 4.13.11,
for GHSA-5r4p-p66f-jhc7 / CVE-2026-111757, with verified CI-only lockfiles and
coordinated unreleased product patch 0.55.59.
The Medium advisory affects Hono >=4.12.4 and <4.13.11: a second
serveStaticdecode can bypass middleware protecting a static prefix. It is not traversal
outside the configured root. The frozen 0.55.58 image demonstrably contains
4.13.7 despite
devOptionalclassification. No direct application import wasfound, but absence of an import is not proof of unreachability.
Only Hono changes in the dependency graph. The API/web lockfiles otherwise
change only intended 0.55.58 -> 0.55.59 metadata. Most documentation files
change only mechanically required product-version headers/badge under F1;
the existing release notes, context and supply-chain policy contain the
substantive evidence. No application/UI behavior, root dependencies, workflow,
gate threshold, performance runner or quota changes are included.
Linked Defect / Plan Reference
docs/strategy/NPM_SUPPLY_CHAIN_QUARANTINE_POLICY.md, "2026-10-23 Hono exact-patch remediation ([security] pinned dependency review needed #248)".Prerequisite #252 was separately reviewed and normally merged at
fc962a65e03b2a0cb1ad86b96b88c473d6d07b7d. Its hosted review 5628884972 isCOMMENTED with approval recommended/no findings, not human GitHub approval.
The actual configured rules did not require a separate GitHub approval.
Authoritative merged-source Build Test Image 39962553306 and CodeQL
39962437032 passed, producing immutable test-image digest
sha256:93ab5bd73465bdd215eeb2e3471022188d854d97a730d50b752c17e00eb238b0.That old-dependency image is not patched-Hono proof.
The ordinary master merge
62bf4d1epreserves the four original Hono commits.The inherited timezone files are byte-identical to current master; no other
#251 tooling or checkpoint053 fixes enter this PR. Qualification branch/tip
fix/performance-qualification-20261022/f6f03a523b6370eccc63f1499c3c111dd5cdf200and all frozen qualification evidence remain preserved.
TDD Process
Jest guard also failed: expected 4.13.11, received 4.13.7; 20 other pin
checks passed. The actual failing path/name is below.
via approved-registry
npm ciwithout rewriting its lockfile. Actualinstalled routes and every locked Hono occurrence are 4.13.11.
api/src/security/)api/src/scripts/check-dependency-pins.spec.tsadds the advisory boundary/minimal recommendation and an assertion over the actual committed
lockfile, all Hono occurrences, exact override, public URL and sha512.
Hono security remediation (GHSA-5r4p-p66f-jhc7) > locks every actual Hono occurrence to the exact patched override with public provenance.Feature / Bug-Fix Commit Checklist (standing rule)
Every behavioral change must include all that apply. Tick or strike through with N/A + reason.
api/test/e2e/exercising the feature through HTTPscripts/live-test.ps1runnable against local + Docker + Azuredocs/with architecture, RFC references, Mermaid diagrams, test coveragedocs/INDEX.md[Unreleased]entry with full test counts and feature summarySession_starter.mdanddocs/CONTEXT_INSTRUCTIONS.mdapi/package.json(and any other version refs) when behavior changedValidation Output
Exact commands and results:
node test-results/hono-security-20261023/dependency-claim.cjs: actual pre-artifact RED on Hono 4.13.7; post-artifact PASS on every locked Hono occurrence.npm --prefix api test -- --runInBand --runTestsByPath src/scripts/check-dependency-pins.spec.ts: observed pre-artifact FAIL, expected 4.13.11 versus actual 4.13.7; 20 other cases passed.npm --prefix api ci --no-audit --no-fund: PASS, 660 packages installed through the unchanged approved registry; lockfile byte-identical before/after.npm --prefix api ls hono @hono/node-server @prisma/dev prisma --all --json: PASS, exit 0; both actual routes below contain 4.13.11.npm --prefix api test -- --runInBand --runTestsByPath src/scripts/check-dependency-pins.spec.ts src/modules/endpoint/services/endpoint-cache-freshness.spec.ts: PASS 42/42.api,npx --no-install eslint src/scripts/check-dependency-pins.spec.ts: PASS; editor diagnostics zero.npm --prefix api audit --json: PASS, zero vulnerabilities.npm --prefix web audit --json: exit 1, three Moderate affected Vitest packages, zero High/Critical. Their two advisories are tracked separately in the policy with owner/target; no unrelated upgrade or waiver is included.$env:VITEST_MAX_WORKERS='2'; $env:PREPUSH_MODE='Fast'; git push origin chore/regen-lockfile-hono-security-20261023: PASS all 25 ordinary gates, 538.3s.npm testfromapi: PASS 6,212/6,212 in 213 suites.npm run test:e2e -- --maxWorkers=2 --testPathIgnorePatterns 'endpoint-scoped-logs.e2e-spec.ts' --testPathIgnorePatterns 'log-config.e2e-spec.ts'under its unchanged InMemory environment: PASS 2,514 tests / 118 suites, 42 existing backend skips.git diff --checkand introduced-em-dash scan: PASS.Authenticated CI-only artifact:
62bf4d1e13781653e3619215240ddd1865a1166cregenerated-lockfiles, ID12506119257f2e318928b7aa6e672983ba1acb492bcbd8a73066db5a50355b06e9521b6bf58, matches GitHub artifact digestregistry.npmjs.org; sha512 only; approved-proxy dist integrity independently matches Honoee7c44126acd1ef5949320f5c181c5e1291794cb41920f6c1324ab3689f7b4fc047012e291c72a6c5d7f4a8dc6a5c2e1185152c131ad14e3cd9e96f5928e0d9eprisma@7.8.0 -> @prisma/dev@0.24.3 -> hono@4.13.11prisma@7.8.0 -> @prisma/dev@0.24.3 -> @hono/node-server@1.19.15 -> hono@4.13.11Final-tip reproducibility and applicable CI:
passed at exact head
a39a47b5360f8d30314283949f718179a495b6bf.Artifact
12507883125, ZIP SHA-256aff7121d7df4ff282e70536d3b06c76002c50f7c1c3e817776910a28875e7acd,matches GitHub's artifact digest. Both lockfiles are byte-identical to the
committed locks above; the seven-day publication report has zero changed
packages. No second artifact integration was needed.
passed: 6,212 API unit tests, 2,514 HTTP tests with 42 existing backend skips,
and 1,655 web tests in 124 files. Production build, isolated CI container
smoke and HIGH/CRITICAL Trivy gate passed.
b424d5b68309a543454c4b33a7b2ab8ab7776577, not the branch commit label.Its parents are current master
fc962a65...and exact Hono heada39a47b5....Its tree
2424adeb3f8a31d66fc165c85186a79aa9ffbb40is verified identicalto the Hono head tree. Thus the tested source contents match the exact tip.
sha256:d39525974b7449384ba0990a17824321d06aecf1d9c92f484873f10d3bef371b.Build record artifact:
12508473033,pranems~SCIMServer~YMIHUS.dockerbuild. This is a CI test image, not adeployment, performance admission or live-estate remediation claim.
and Docs freshness 39968960631
passed. All six listed checks are green at the exact Hono head.
5629633564had no code findings; it noted that CIwas still running. After the green results were published, hosted review
5629802625at the exact same head recommended approval with no open issuesand zero inline threads. Both generated lockfiles were outside the hosted
reviewer's generated-file scope and were independently authenticated and
compared as documented above. The COMMENTED bot review is not human GitHub
approval.
Complete logs and machine-readable receipts are retained under
test-results/hono-security-20261023/, including the original three protectedfailures, permanent actual-lock RED, authenticated artifact ZIP/report,
unchanged-lock
npm ci, installed proof, both audits and final protected push.No local lockfile generation/manual patch, quarantine bypass or registry/control
change was used. Source manifests and workflow are unchanged from the artifact
source; final differences add tests/docs, not dependency resolution inputs.
Unchanged release holds: qualification 39875689201 remains FAIL, same-image
populated-read A/A p99 40.650743 versus 50.378052ms, ratio 1.23928982 outside
unchanged 1.10. Native 39875689138 and timeline 39875689169 remain diagnostics
only. Customer actual-data migration receipt, capacity/operational
dispositions, 403 cleanup verification and actual target-specific human
visual observation remain pending. No deployment, performance retry,
candidate admission, release-complete claim or waiver.
Self-improvement: applied. Assert actual committed dependency entries and
restored routes, not just the manifest or development/optional flags.
Design disposition: accepted. Minimal exact override plus existing CI and
pin-checker seams; no speculative application abstraction.
Standing Rules Acknowledgment
U+2014) anywhere in the diff. Verified viaSelect-String -Pattern ([char]0x2014).git commit --amendon history that has been pushed.api/src/security/forbidden-source-patterns.spec.tswill catch known anti-patterns.api/src/scripts/lint-migrations.tsenforces this. N/A: no migration changes.Destructive Migration Override (skip if not applicable)
N/A: no Prisma schema or migration changes.
ALLOW_DESTRUCTIVE_MIGRATION=1in the CI environment for this PRReviewer Hint
Diff areas worth special attention from the reviewer: