Skip to content

fix(profiler): rebuild images on patched OS packages and go1.26.10 - #155

Merged
blue4209211 merged 2 commits into
mainfrom
fix/cve-nvd8-rebuild
Oct 29, 2026
Merged

blue4209211 merged 2 commits into
mainfrom
fix/cve-nvd8-rebuild

Conversation

@mayankpande88

Copy link
Copy Markdown
Contributor

Summary

The profiler images ship OS packages and Python tooling with known CVEs that NVD scores 8.0 or higher: OpenSSL in the python image, perl and zlib in the ruby image. This rebuilds every image on patched packages and Go 1.26.10. The python and ruby images go from 4 and 16 fixable 8.0+ findings to 0, and profiling behaviour is unchanged.

How to verify

  1. After the images publish, run a python (py-spy and austin) and a ruby (rbspy) profile from the agent. Both return flamegraphs as before.
  2. trivy image on the new python and ruby tags reports no NVD 8.0+ findings with a fix available.

Risks

  • The ruby runtime moves from Debian bookworm to trixie. rbspy and the agent run unchanged on it (tested), but it is a base change.
  • pip is removed from the python image after austin is installed. Nothing runs pip at profile time.

Type of change

  • Bug fix
  • CI / build
Test plan and detail
  • go1.26.10 in all seven Dockerfiles (GOTOOLCHAIN=local kept). apk upgrade before apk add on the alpine images. python base 3.14.0-alpine -> 3.14.10-alpine. ruby runtime minideb:bookworm -> minideb:trixie with apt-get upgrade.
  • Remaining on ruby: glibc CVE-2019-1010022/1010023 (disputed upstream, no Debian fix).

Local e2e: built each image (linux/arm64) and profiled live processes: py-spy dump/record and austin -> mojo2austin -> flamegraph on python; rbspy snapshot/record with the agent's flags on Ruby 3.3.6 (old and new images behave the same); bcc tools, perf 6.19.14 and async-profiler libs present in bpf/perf/jvm. test/e2e/python-austin.sh, python-austin-multi-pid.sh and go-pprof.sh pass against the rebuilt images.

Scans, NVD 8.0+ (fixable / no fix): bpf 0, jvm 0, perf 0 before and after; python 4/0 -> 0/0; ruby 16/9 -> 0/4.

Not caused by this PR, seen while testing: rbspy 0.27.0 rejects Ruby 3.3.13 as unsupported, and panics on its progress display without a TTY unless --silent is passed.

Checklist

  • go build ./... and go test ./... pass locally (Go code unchanged; images compile the agent on 1.26.10)
  • No breaking changes to the agent's stdout JSON envelope

- Build the agent with go1.26.10 in every Dockerfile.
- Alpine images (python, perf, jvm): run apk upgrade before apk add, so
  base packages such as openssl pick up their patched releases instead of
  staying at the base image's build-time level.
- python: move to python:3.14.10-alpine and uninstall pip after installing
  austin. Nothing runs pip at profile time, and its vendored setuptools and
  urllib3 carried known CVEs.
- ruby: move the runtime to minideb:trixie with apt-get upgrade. bookworm
  leaves zlib CVE-2023-45853 unfixed; rbspy and the agent, built on
  bookworm, run unchanged on trixie's newer glibc.

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request updates the Go version from 1.26.5 to 1.26.10 across several Dockerfiles and test scripts, and introduces package upgrades to address vulnerabilities. Notably, it uninstalls pip in the Python image and switches the Ruby base image to Debian trixie. The review feedback suggests avoiding the use of the testing distribution (trixie) in production due to instability risks, recommending instead to stick to bookworm and handle the target CVE via an ignore list or backporting. Additionally, it is recommended to use the --no-cache-dir flag during pip installation to optimize the Python image size.

Comment thread docker/ruby/Dockerfile Resolved
Comment thread docker/python/Dockerfile Resolved
@blue4209211
blue4209211 merged commit d4dc1b8 into main Oct 29, 2026
13 checks passed
@blue4209211
blue4209211 deleted the fix/cve-nvd8-rebuild branch October 29, 2026 11:11
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