security: fix S360 container image vulnerabilities (2026-07-06)#188
Merged
Conversation
hippogr
commented
Jul 6, 2026
Contributor
- Upgrade Go toolchain 1.25.10 -> 1.25.11 (kube-scheduler, openpai-runtime, k8s-nvidia-device-plugin, k8s-rocm-device-plugin)
- Upgrade kube-scheduler runtime base image to go-runner go1.25.11
- Upgrade nerdctl 2.3.1 -> 2.3.4 in job-exporter (fixes containerd v2.3.2)
- Add go.mongodb.org/mongo-driver@v1.17.7 to cilium-agent
- Update Node.js resolutions: form-data ^4.0.6, morgan >=1.11.0, joi >=17.13.4, js-yaml ^4.2.0, dompurify >=3.4.9, nodemailer ^8.0.9, linkify-it >=5.0.1 (rest-server, webportal, database-controller, alert-handler, job-status-change-notification)
- Rebuild all images with no-cache to pick up OS package updates (openssl, libcrypto3, libssh2, libsqlite3, tar, libsystemd0, curl, etc.)
- Upgrade Go toolchain 1.25.10 -> 1.25.11 (kube-scheduler, openpai-runtime, k8s-nvidia-device-plugin, k8s-rocm-device-plugin) - Upgrade kube-scheduler runtime base image to go-runner go1.25.11 - Upgrade nerdctl 2.3.1 -> 2.3.4 in job-exporter (fixes containerd v2.3.2) - Add go.mongodb.org/mongo-driver@v1.17.7 to cilium-agent - Update Node.js resolutions: form-data ^4.0.6, morgan >=1.11.0, joi >=17.13.4, js-yaml ^4.2.0, dompurify >=3.4.9, nodemailer ^8.0.9, linkify-it >=5.0.1 (rest-server, webportal, database-controller, alert-handler, job-status-change-notification) - Rebuild all images with no-cache to pick up OS package updates (openssl, libcrypto3, libssh2, libsqlite3, tar, libsystemd0, curl, etc.) Co-Authored-By: Claude <noreply@anthropic.com>
- Update comments in cilium-agent and cilium-operator Dockerfiles - Fix go mod tidy version in k8s-rocm-device-plugin Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR focuses on remediating S360 container image vulnerabilities by upgrading several base toolchains (notably Go and nerdctl) and tightening Node.js dependency versions via Yarn resolutions/lockfile updates across multiple services.
Changes:
- Bump Go patch versions across multiple build Dockerfiles (including kube-scheduler runtime base image) and rebuild images to pick up OS package updates.
- Update Node.js dependency constraints and lockfiles (morgan, form-data, js-yaml, joi, dompurify, nodemailer, linkify-it) across rest-server, webportal, database-controller, and alert-manager components.
- Upgrade job-exporter’s embedded nerdctl build to 2.3.4 and adjust build steps accordingly; add mongo-driver version forcing in cilium-agent build.
Reviewed changes
Copilot reviewed 12 out of 16 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| src/webportal/package.json | Updates morgan and raises resolution floors (incl. dompurify/form-data) for webportal dependencies. |
| src/rest-server/package.json | Adds/updates security-focused Yarn resolutions for several dependencies. |
| src/rest-server/yarn.lock | Lockfile refresh reflecting new resolved dependency graph (incl. js-yaml/morgan/joi changes). |
| src/openpai-runtime/build/openpai-runtime.common.dockerfile | Bumps golang builder images to 1.25.11 to pick up security fixes. |
| src/job-exporter/build/job-exporter.common.dockerfile | Upgrades nerdctl build version to 2.3.4 and simplifies module patching steps. |
| src/hivedscheduler/build/kube-scheduler.k8s.dockerfile | Updates kube-scheduler runtime base image tag to go1.25.11. |
| src/device-plugin/build/k8s-rocm-device-plugin.k8s.dockerfile | Updates Go builder image and go.mod toolchain edit to 1.25.11. |
| src/device-plugin/build/k8s-nvidia-device-plugin.k8s.dockerfile | Updates Go builder image to 1.25.11. |
| src/database-controller/src/package.json | Updates Yarn resolutions to force patched dependency versions. |
| src/database-controller/src/yarn.lock | Lockfile refresh reflecting updated security resolutions (incl. js-yaml/joi). |
| src/cilium/build/cilium-agent.common.dockerfile | Adds explicit go.mongodb.org/mongo-driver version forcing during the build. |
| src/alert-manager/src/job-status-change-notification/package.json | Updates Yarn resolutions (form-data, nodemailer, joi floor). |
| src/alert-manager/src/job-status-change-notification/yarn.lock | Lockfile refresh reflecting updated resolution results. |
| src/alert-manager/src/alert-handler/package.json | Updates Yarn resolutions (form-data, nodemailer, js-yaml, joi, linkify-it). |
| src/alert-manager/src/alert-handler/yarn.lock | Lockfile refresh reflecting updated resolution results. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Update npm overrides to match yarn resolutions so both package managers produce consistent results. Co-Authored-By: Claude <noreply@anthropic.com>
…b-status-change-notification - Remove nodemailer and email-templates from alert-handler dependencies (email feature unused; code converted to lazy-load to preserve interface) - Regenerate yarn.lock for both services to pick up resolved versions: form-data 4.0.6, joi 18.2.3, js-yaml 4.3.0 - Remove stale nodemailer resolution from job-status-change-notification - Pin npm@11 in Dockerfiles (npm 12 requires Node >= 22, incompatible with node:20) Fixes: GHSA-p6gq-j5cr-w38f (nodemailer), GHSA-hmw2-7cc7-3qxx (form-data), GHSA-q7cg-457f-vx79 (joi), GHSA-h67p-54hq-rp68 (js-yaml) Co-Authored-By: Claude <noreply@anthropic.com>
Upgrade Go toolchain across all Dockerfiles: - Go 1.25.11 → 1.25.12 (17 Dockerfiles) - Go 1.26.4 → 1.26.5 (job-exporter) System package vulnerabilities fixed via no-cache rebuild: - gzip, tar, libpython3.10, libnghttp2-14, libcurl3-gnutls, libxml2, curl, libtasn1-6, liblzma5, libxpm4, python3.13 All 19 affected images rebuilt, verified, and pushed to ACR. Co-Authored-By: Claude <noreply@anthropic.com>
…sabling runtime upgrade Upgrade infinity-datasource plugin from v3.7.0 to v3.11.0 and disable runtime plugin upgrade-all to prevent Defender for Cloud drift alerts. The manual go get overrides are no longer needed as v3.11.0 includes higher versions of all patched dependencies. Co-Authored-By: Claude <noreply@anthropic.com>
npm@latest (12.x) no longer supports Node 20; pin to npm@11. Also add a workflow_dispatch deploy toggle so PR builds only compile without pushing or deploying. Co-Authored-By: Claude <noreply@anthropic.com>
…0 stdlib vulnerability Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 29 out of 33 changed files in this pull request and generated 3 comments.
Comments suppressed due to low confidence (3)
src/rest-server/package.json:107
- These
resolutionsoverride direct dependencies (e.g.morganis~1.10.0andjoiis~17.13.3independencies) and use open-ended>=ranges. In the updatedyarn.lockthis has already selected a major upgrade (joi18.x), which is a breaking-change risk and makes the effective versions hard to reason about.
"ws": "^8.20.1",
"morgan": ">=1.11.0",
"joi": ">=17.13.4",
"js-yaml": "^4.2.0"
src/database-controller/src/package.json:63
resolutionsforcesmorgan/joivia unbounded>=ranges even thoughdependenciesstill declare older majors/minors (e.g.morgan^1.10.0,joi^17.13.3). This can silently pull major versions (as happens elsewhere in this PR) and makes installs less predictable.
"ws": "^8.20.1",
"morgan": ">=1.11.0",
"joi": ">=17.13.4",
"js-yaml": "^4.2.0"
src/webportal/package.json:165
- Using an open-ended resolution (
>=1.11.0) formorganallows future major versions to be pulled automatically (there is no lockfile undersrc/webportal/), which can break builds unexpectedly. A bounded range (e.g.^1.11.0) is safer while still picking up patch/minor security fixes.
zhogu
approved these changes
Jul 23, 2026
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.