Skip to content

Commit 0d9c5ad

Browse files
ihor-sokoliukclaude
andcommitted
fix(ci,deps): unblock v1.6.0 publish — restore npm upgrade, bump hono (CVE-2026-54290)
The v1.6.0 tag publish failed on both pipelines: - npm-publish: tokenless OIDC trusted publishing needs npm >= 11.5.1, but the `npm install -g npm` upgrade was removed (SEC-015). Restore it pinned to npm@11.17.0 and tighten the provenance check to require >= 11.5.1. - docker-publish: Trivy gated on HIGH CVE-2026-54290 in transitive hono@4.12.22. Add an npm override pinning hono to >= 4.12.25 (verified: image scan now clean). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 3cdc043 commit 0d9c5ad

4 files changed

Lines changed: 15 additions & 6 deletions

File tree

.github/workflows/npm-publish.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ jobs:
2323
node-version: '20'
2424
registry-url: 'https://registry.npmjs.org/'
2525

26+
- name: Pin npm for OIDC trusted publishing
27+
# Tokenless OIDC trusted publishing needs npm >= 11.5.1; Node 20 ships npm ~10.
28+
# Pinned to a specific version (not @latest) to avoid a mutable supply-chain step.
29+
run: npm install -g npm@11.17.0
30+
2631
- name: Verify npm provenance support
2732
run: |
2833
NPM_VERSION="$(npm --version)"
@@ -33,8 +38,8 @@ jobs:
3338
throw new Error('Unable to determine npm version');
3439
}
3540
const [major, minor] = version;
36-
if (major < 9 || (major === 9 && minor < 5)) {
37-
throw new Error('npm >= 9.5.0 is required for npm publish --provenance');
41+
if (major < 11 || (major === 11 && minor < 5)) {
42+
throw new Error('npm >= 11.5.1 is required for OIDC trusted publishing');
3843
}
3944
"
4045

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,11 @@ Versions follow [Semantic Versioning](https://semver.org/).
2323

2424
- **Least-privilege Docker workflow permissions:** `security-events: write` is now isolated to a dedicated image-scan job in both the publish and rebuild workflows, with `id-token: write` confined to the publish/sign job and workflow-level permissions kept read-only.
2525

26+
- **Patched bundled `hono`:** Pinned the transitive `hono` dependency to ≥ 4.12.25 (via npm `overrides`) to resolve CVE-2026-54290 — a CORS middleware flaw that reflected any origin with credentials — in the published Docker image.
27+
2628
### Build / CI
2729

2830
- Added a CI workflow that runs lint plus unit and integration tests on every pull request and push to `main`.
29-
- Removed the mutable global `npm install -g npm@latest` step from the publish workflow.
3031

3132
## [1.5.0] - 2026-06-12
3233

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,5 +71,8 @@
7171
"supertest": "^7.2.2",
7272
"tsx": "4.22.4",
7373
"typescript": "^5.8.3"
74+
},
75+
"overrides": {
76+
"hono": ">=4.12.25"
7477
}
7578
}

0 commit comments

Comments
 (0)