Skip to content

security: fix S360 container image vulnerabilities (2026-07-06)#188

Merged
hippogr merged 8 commits into
devfrom
ruigao/security-fix-20260706
Jul 23, 2026
Merged

security: fix S360 container image vulnerabilities (2026-07-06)#188
hippogr merged 8 commits into
devfrom
ruigao/security-fix-20260706

Conversation

@hippogr

@hippogr hippogr commented Jul 6, 2026

Copy link
Copy Markdown
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>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Comment thread src/webportal/package.json
Comment thread src/rest-server/package.json
Comment thread src/rest-server/package.json
Comment thread src/database-controller/src/package.json
Comment thread src/database-controller/src/package.json
Comment thread src/alert-manager/src/alert-handler/package.json
Comment thread src/alert-manager/src/alert-handler/package.json
Comment thread src/alert-manager/src/job-status-change-notification/package.json
Update npm overrides to match yarn resolutions so both package managers
produce consistent results.

Co-Authored-By: Claude <noreply@anthropic.com>
Rui Gao and others added 4 commits July 9, 2026 08:06
…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>
@hippogr
hippogr requested a review from a team as a code owner July 22, 2026 07:20
…0 stdlib vulnerability

Co-Authored-By: Claude <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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 resolutions override direct dependencies (e.g. morgan is ~1.10.0 and joi is ~17.13.3 in dependencies) and use open-ended >= ranges. In the updated yarn.lock this has already selected a major upgrade (joi 18.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

  • resolutions forces morgan/joi via unbounded >= ranges even though dependencies still 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) for morgan allows future major versions to be pulled automatically (there is no lockfile under src/webportal/), which can break builds unexpectedly. A bounded range (e.g. ^1.11.0) is safer while still picking up patch/minor security fixes.

Comment thread src/alert-manager/src/alert-handler/package.json
Comment thread src/webportal/package.json
Comment thread src/hivedscheduler/build/kube-scheduler.k8s.dockerfile
@hippogr
hippogr merged commit 015138e into dev Jul 23, 2026
4 checks passed
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.

3 participants