Skip to content

πŸ”’ security(docker): bump node and trivy base-image digests - #682

Merged
scttbnsn merged 2 commits into
dev/v1.6from
fix/v1.6-base-image-cves
Aug 9, 2026
Merged

πŸ”’ security(docker): bump node and trivy base-image digests#682
scttbnsn merged 2 commits into
dev/v1.6from
fix/v1.6-base-image-cves

Conversation

@scttbnsn

@scttbnsn scttbnsn commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Bumps the pinned node and trivy base-image digests in the Dockerfile to the current upstream releases, clearing the open base-image CVEs ahead of the v1.6.0-rc.13 cut. Held since 2026-08-04 for the GA window; promoted to rc.13 content now that the release plan cuts a final candidate instead of promoting rc.12.

Digest assertions in app/configuration/dockerfile-defaults.test.ts updated to match the pins.

Testing

  • Full pre-push gate green at push time (coverage 100% app+ui, builds, e2e, playwright)
  • Trivy scan against the rebuilt image: no HIGH/CRITICAL findings

Changelog

  • πŸ”’ Security: Updated pinned Node 24 Alpine and Trivy image digests.
  • πŸ”§ Changed: Updated Node from 24.18.0 to 24.19.0.
  • πŸ”§ Changed: Updated Trivy from 0.72.0 to 0.73.0.
  • πŸ”§ Changed: Updated digest assertions in app/configuration/dockerfile-defaults.test.ts.
  • πŸ”’ Security: Rebuilt image scan reported no HIGH or CRITICAL findings.

Concerns

  • Confirm the full pre-push gate remains passed.
  • Confirm the release-stage Docker build validates node --version and trivy --version.

Both were resolved from the live Docker Hub registry (buildx imagetools
inspect + registry API cross-check), not guessed, and the resulting
image was verified with `node --version` / `trivy --version` inside a
built container plus a full `docker build` of the release stage.

- node:24-alpine: 24.18.0 -> 24.19.0, picking up Node's July 29 2026
  security release (3 HIGH + 5 MEDIUM CVEs fixed in 24.18.1)
  sha256:a0b9bf06... -> sha256:d32cdf619f...
- aquasec/trivy (trivy-bin build stage): 0.72.0 -> 0.73.0, resolving
  4 HIGH / 6 MEDIUM CVEs in vendored Go deps (go-git, x/text, grpc,
  oras-go, stdlib)
  sha256:cffe3f5161... -> sha256:7cced7cae5...
@vercel

vercel Bot commented Aug 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
drydock-website Ready Ready Preview Aug 9, 2026 12:37am
drydockdemo-website Ready Ready Preview Aug 9, 2026 12:37am

@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@scttbnsn, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 40 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
βš™οΈ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 5f481d63-84cd-4d70-9a0d-8ce559b33fef

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between e911c22 and 8a79117.

πŸ“’ Files selected for processing (1)
  • app/configuration/dockerfile-defaults.test.ts
πŸ“ Walkthrough

Walkthrough

The Dockerfile now uses updated pinned digests for the Trivy image and Node 24 Alpine base image. The Dockerfile test now expects the updated Trivy digest. Stage names and image tags remain unchanged.

Possibly related PRs

πŸš₯ Pre-merge checks | βœ… 2
βœ… Passed checks (2 passed)
Check name Status Explanation
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.
✨ Finishing Touches
πŸ“ Generate docstrings
  • Create stacked PR
  • Commit on current branch
πŸ§ͺ Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/v1.6-base-image-cves

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.

❀️ Share

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

@scttbnsn

scttbnsn commented Aug 9, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
βœ… Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
app/configuration/dockerfile-defaults.test.ts (1)

14-14: πŸ”’ Security & Privacy | πŸ”΅ Trivial | ⚑ Quick win

Cover the updated Node digest in this test.

Dockerfile Line 7 changes the pinned Node digest, but this test only asserts the Trivy digest. Add an exact assertion for the Node FROM line so future Node pin drift fails the test.

Proposed test addition
     expect(dockerfile).toContain(
       'FROM aquasec/trivy@sha256:7cced7cae583819fc7806d4cbc0dbbc7cad18b99f7d3e235192e6da8c091045c AS trivy-bin',
     );
+    expect(dockerfile).toContain(
+      'FROM node:24-alpine@sha256:d32cdf619f63fe0471182d08996dd516c6275bb5fd31ae06e55a570bd9e1ad43 AS base',
+    );
πŸ€– 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 `@app/configuration/dockerfile-defaults.test.ts` at line 14, Update the test
covering Dockerfile image pins to assert the exact Node FROM line and its
updated digest, alongside the existing Trivy assertion. Use the test’s current
Dockerfile-content assertion mechanism so future Node digest changes cause the
test to fail.
πŸ€– 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 `@app/configuration/dockerfile-defaults.test.ts`:
- Line 14: Update the test covering Dockerfile image pins to assert the exact
Node FROM line and its updated digest, alongside the existing Trivy assertion.
Use the test’s current Dockerfile-content assertion mechanism so future Node
digest changes cause the test to fail.

ℹ️ Review info
βš™οΈ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 5ce3f270-5372-4192-9a76-10f53d9b7be1

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between 9e4e56c and e911c22.

β›” Files ignored due to path filters (1)
  • CHANGELOG.md is excluded by !CHANGELOG.md
πŸ“’ Files selected for processing (2)
  • Dockerfile
  • app/configuration/dockerfile-defaults.test.ts

@scttbnsn

scttbnsn commented Aug 9, 2026

Copy link
Copy Markdown
Contributor Author

Nitpick addressed in 8a79117 β€” added the Node digest assertion as its own test case alongside the Trivy one.

@biggest-littlest biggest-littlest left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

@scttbnsn
scttbnsn merged commit bd6f598 into dev/v1.6 Aug 9, 2026
26 checks passed
@scttbnsn
scttbnsn deleted the fix/v1.6-base-image-cves branch August 9, 2026 01:02
scttbnsn added a commit that referenced this pull request Aug 9, 2026
17-file identity roll-forward from rc.12 to rc.13, dated 2026-08-08.

- CHANGELOG: new `[1.6.0-rc.13]` section from Unreleased content β€” #670
digest re-anchoring, #672 self-hosted Star History, #673 nanoid pin,
#682 node 24.19.0 + trivy 0.73.0 base-image bumps, #683 icon-bundle
alias resolution β€” plus compare-link rotation
- README: version badge + rc.13 highlights block
- Demo mocks, site config/content, docs API pages, quickstart, updates
highlights, identity-test constants, changelog-link pairs

Guarded by `scripts/release-identity.test.mjs` (4/4) and the web scripts
suite (56/56). Once merged: dev→main wholesale-tree sync, then dispatch
`release-cut.yml` for `v1.6.0-rc.13`. GA candidate clock restarts β€”
earliest GA β‰ˆ Aug 16.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Changelog

πŸ”§ **Changed**
- Advanced the release identity from `1.6.0-rc.12` to `1.6.0-rc.13`,
dated August 8, 2026.
- Updated README, demo mocks, site configuration, roadmap content, API
examples, quickstart, and update highlights.
- Updated changelog comparison links and release identity test
constants.
- Added release notes for digest re-anchoring, self-hosted Star History,
`nanoid` pins, Node 24.19.0 and Trivy 0.73.0 base images, and
icon-bundle alias resolution.

πŸ”’ **Security**
- Documented workspace-wide `nanoid` security pinning.
- Documented base-image CVE remediation.

## Concerns

- Sync the `dev` tree to `main` after merge.
- Dispatch `release-cut.yml` for `v1.6.0-rc.13`.
- Confirm the expected GA date remains approximately August 16.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
scttbnsn added a commit that referenced this pull request Aug 9, 2026
Wholesale-tree sync ahead of the v1.6.0-rc.13 cut (same pattern as
#667). The single commit carries the exact tree of `dev/v1.6` at
b98808e onto `main` β€” after merge, `git diff --quiet origin/main
origin/dev/v1.6` holds.

Content on dev since rc.12:
- #669/#670 β€” release-cut digest re-anchoring
- #672 β€” self-hosted Star History chart
- #673 β€” NAS acceptance follow-ups
- #681 β€” v1.7 dependency ordering (forward-ported)
- #682 β€” CVE base-image bumps + digest-pinned Node base guard test
- #683 β€” icon-bundle alias resolution (fixes blank Audit/registry icons
shipped in rc.12)
- #684 β€” rc.13 identity roll-forward (17 files, CHANGELOG, README)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Changelog

- ✨ Added repository-aware Docker digest selection and multi-anchor
comparison.
- ✨ Added self-hosted, theme-aware Star History SVG API with pagination,
caching, deadlines, and fallback rendering.
- ✨ Added icon alias resolution and bundle coverage tests.
- ✨ Added required icon bundle entries and updated icon mappings.
- πŸ”§ Updated Node and Trivy image digests.
- πŸ”’ Pinned `nanoid` to `3.3.18` across workspaces.
- πŸ”’ Added a digest-pinned Node 24 Alpine base-image guard test.
- πŸ”§ Updated `js-yaml` override to `3.15.1`.
- πŸ”§ Updated release documentation, examples, mocks, badges, and tests to
`1.6.0-rc.13`.
- πŸ”§ Removed the external Star History CSP allowlist and embed.

## Concerns

- Verify the Star History route stays within GitHub API rate limits
under concurrent requests.
- Verify cache headers do not serve incomplete or repository-specific
fallback responses incorrectly.
- Verify Docker digest re-anchoring preserves legacy behavior for stored
containers without `repoDigests`.
- Verify icon aliases with rotation or flipping have acceptable fallback
behavior.
- Run the Docker, Star History, icon-bundle, release-identity, and
workspace dependency tests.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
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.

2 participants