Skip to content

PER-17900: fix(docker): clear the fixable Python and OS findings in the images (setuptools, openssl, zlib, urllib3 floor) - #987

Merged
EliMoshkovich merged 4 commits into
masterfrom
eli/per-17900-opal-image-python-os-findings
Oct 27, 2026
Merged

EliMoshkovich merged 4 commits into
masterfrom
eli/per-17900-opal-image-python-os-findings

Conversation

@EliMoshkovich

@EliMoshkovich EliMoshkovich commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

PER-17900

Clears the fixable HIGH/CRITICAL findings in the OPAL images that don't come from the bundled OPA binary; #906 bumps that binary. Found by a full scan of all four images (client, server, Debian and Alpine) with Trivy and Grype on master 5f0e875, ahead of 0.10.0-rc.2.

Changes

finding (image scan) cause change
setuptools 79.0.1: CVE-2026-59890 (fixed in 83.0.0), GHSA-xmj3-9gf7-h52w (fixed in 84.1.0) the base image's copy already meets requires.txt's setuptools>=78.1.1, so pip never upgrades it both build stages run pip install --upgrade pip 'setuptools>=84.1.0,<85' (capped at the major: the images still use the deprecated setup.py install; moving to pip is PER-17907)
jaraco.context 5.3.0 (CVE-2026-23949), wheel 0.45.1 (CVE-2026-24049) vendored inside setuptools 79.0.1 setuptools 84.2.1 vendors jaraco.context 6.1.0 and wheel 0.46.3
openssl / libssl3 3.0.22-1~deb12u1 (CVE-2026-84782) the Debian base image predates the security update apt-get upgrade -y in the Debian common stage
zlib 1.3.2-r0 (CVE-2026-85091) the Alpine base image predates the security update apk upgrade --no-cache in the Alpine common stage
urllib3 < 2.8.0 (CVE-2026-97687, CVE-2026-97688, CVE-2026-97689) the images already resolve 2.8.0, but opal-common's floor was 2.2.2 opal-common: urllib3>=2.8.0, so every install gets the fix

setuptools is upgraded in the image only, not as a package floor, so opal-common's PyPI consumers aren't pushed onto setuptools 84.

Remaining scanner findings outside this change are tracked in PER-17900.

For the release notes: setuptools 82 and later no longer ship pkg_resources, so import pkg_resources fails in these images. OPAL and its dependencies don't use it. An image built FROM permitio/opal-client that installs a plugin relying on it needs to install setuptools<82 itself, or a fixed version of the plugin.

Verified locally

The server and server-alpine targets, built from this branch:

Debian Alpine
setuptools 84.2.1 84.2.1
vendored jaraco.context / wheel 6.1.0 / 0.46.3 6.1.0 / 0.46.3
urllib3 2.8.0 2.8.0
openssl 3.0.22-1~deb12u2 n/a
zlib n/a 1.3.2-r1
setup.py install of opal-common/opal-server, opal-server --help ok ok

Together with #906, the images are re-scanned in full before 0.10.0-rc.2.

Description updated during review to match bee5a95 (setuptools 79.0.1's own advisories, CVE-2026-97688 for urllib3, setuptools capped below 85, the pkg_resources release note).

🤖 Generated with Claude Code

…ors), Debian/Alpine security updates, urllib3 floor

- Both build stages upgrade setuptools to >=84.1.0. The base image's 79.0.1 already
  met requires.txt's floor, so pip kept it: it carries CVE-2025-47273 and vendors
  jaraco.context 5.3.0 (CVE-2026-23949) and wheel 0.45.1 (CVE-2026-24049). 84.2.1
  vendors jaraco.context 6.1.0 and wheel 0.46.3.
- The Debian common stage runs apt-get upgrade (openssl/libssl3 deb12u2), and the
  Alpine one apk upgrade (zlib 1.3.2-r1): security updates the base images predate.
- opal-common's urllib3 floor 2.2.2 -> 2.8.0 (CVE-2026-97687, CVE-2026-97689). The
  images already resolved 2.8.0; the floor keeps it there for every install.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@EliMoshkovich
EliMoshkovich requested review from zeevmoney and a balanced review from Copilot October 27, 2026 18:34
@linear-code

linear-code Bot commented Oct 27, 2026

Copy link
Copy Markdown

PER-17900

@netlify

netlify Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for opal-docs ready!

Name Link
🔨 Latest commit bc9d45e
🔍 Latest deploy log https://app.netlify.com/projects/opal-docs/deploys/6ae0fdc4289db1e5d5f635d1
😎 Deploy Preview https://deploy-preview-987--opal-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

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.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@zeevmoney zeevmoney 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.

Approved — no CRITICAL or HIGH issues found.

Non-blocking:

  • MEDIUM docker/Dockerfile:19 — setuptools now floats to the newest release while the images still use the deprecated setup.py install; pkg_resources leaves the images
  • LOW docker/Dockerfile:17 — comment attributes CVE-2025-47273 to setuptools < 84.1; it was fixed in 78.1.1 and the remaining report is pip's vendored copy
  • LOW packages/opal-common/requires.txt:14 — comment omits CVE-2026-97688, also fixed in 2.8.0

Details are in the inline comments on each line.

Comment thread docker/Dockerfile Resolved
Comment thread docker/Dockerfile Resolved
Comment thread packages/opal-common/requires.txt Resolved
Copilot AI balanced review requested due to automatic review settings October 27, 2026 19:01

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.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

…n the comments

- 'setuptools>=84.1.0,<85' in both build stages: the images still install OPAL with
  the deprecated setup.py install, so an unpinned new major could break an unchanged
  rebuild. 82 and later already dropped pkg_resources.
- The setuptools comment names what 79.0.1 actually carries (CVE-2026-59890,
  GHSA-xmj3-9gf7-h52w); CVE-2025-47273 was fixed in 78.1.1.
- urllib3's comment lists CVE-2026-97688 as well.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 27, 2026 19:14

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.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

Copilot AI balanced review requested due to automatic review settings October 27, 2026 19:38
@EliMoshkovich
EliMoshkovich merged commit 22f8443 into master Oct 27, 2026
13 of 15 checks passed
@EliMoshkovich
EliMoshkovich deleted the eli/per-17900-opal-image-python-os-findings branch October 27, 2026 19:39

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.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

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