You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit fb15dd8
Browse filesBrowse the repository at this point in the historyBrowse files
fix: refresh system CA trust store (eMudhra distrust) (#175)
This pull request focuses on improving the security and reliability of
the system trust store handling in devcontainer builds, ensuring that
TLS operations always use an up-to-date CA bundle. It also upgrades
several Python tools (`uv`, `uvx`, and `pre-commit`) to their latest
versions and makes related changes to lockfiles, documentation, and test
coverage. Additionally, the lockfile refresh logic is improved for
better compatibility with upstream release tagging conventions.
response to:
https://access.redhat.com/security/vulnerabilities/RHSB-2026-012
**Security and Trust Store Improvements:**
- Ensured the system CA trust store is refreshed at the start of the
Dockerfiles (`.devcontainer/Dockerfile`, `with-proxy-vars.Dockerfile`),
before any feature runs to prevent usage of stale or distrusted CAs,
with explanatory comments clarifying the rationale.
[[1]](diffhunk://#diff-c41eaf5c4a8beb1e6e26cc217a10f8b09ccf5c9c52b731cb55bbe69b0268d043R19-R29)
[[2]](diffhunk://#diff-a245988e16fc0a7bdeed434b983c09154e1a78dc7a08591a18079adc6fa1b046R35-R45)
[[3]](diffhunk://#diff-86fdd4af8dde43a24c4493de7c4619d171f36f79e86acb219c3b74db143070c2R31-L37)
[[4]](diffhunk://#diff-e418ce180663a5c3fc806f1c352a9d737097e60cecaa9cd1724c8236a955a335R33-L40)
- Added integration tests (`test_default.sh`) to assert that compromised
or distrusted CAs (e.g., "emSign ECC Root CA - G3") are not present in
either the OpenSSL or Java trust stores, ensuring CI fails if the trust
store is stale.
**Python Tool Upgrades and Lockfile Consistency:**
- Upgraded `uv` and `uvx` from version 0.10.4 to 0.13.5 and updated
their lockfile entries.
[[1]](diffhunk://#diff-04d8b8927de9ba2ef18dfda8472e1b851e931e5f3f27932e2cb69dc7bf960072L4-R62)
[[2]](diffhunk://#diff-9cea6a1607559a2e7aefc9e317dbd94ee9c9c8488e24f0e86074509cd2850090L47-R52)
- Upgraded `pre-commit` from version 4.5.1 to 4.7.0 in the tool catalog,
lockfile, and corresponding tests.
[[1]](diffhunk://#diff-64af8db65e15981354dad2dd9ca0e5bacfe9695528630bad87d41962bfd14564L24-R24)
[[2]](diffhunk://#diff-9cea6a1607559a2e7aefc9e317dbd94ee9c9c8488e24f0e86074509cd2850090L47-R52)
[[3]](diffhunk://#diff-00ddadc72e6f336b3dfc668282c5dcacb77cffc4ef70c087461b2f73e4aa6662L56-R56)
- Added a Renovate configuration to manage `uv.lock.json` updates
automatically.
**Lockfile Refresh Logic Improvements:**
- Updated `refresh_lockfile_digests.py` to correctly handle upstream
release tags that may or may not be prefixed with `v` (e.g., `v1.27.0`
vs `0.13.5`), ensuring URLs and API calls match the actual release
format and preventing broken upgrades for tools like `uv` and `ruff`.
[[1]](diffhunk://#diff-72ab530ef768bfb67d5a758a0551df3688f63c9a421de973dce0d1686c6eca7bL71-R90)
[[2]](diffhunk://#diff-72ab530ef768bfb67d5a758a0551df3688f63c9a421de973dce0d1686c6eca7bL99-R108)
**Test and Documentation Updates:**
- Updated `tools/README.md` to reflect the new versions of `uv`, `uvx`,
and `pre-commit`.
---------
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -81,7 +81,7 @@ To support proxy environments, environment variables are set in the [`Dockerfile
81
81
82
82
## Tests
83
83
84
-
After an image build, tests check that each tool expected to be in the image is installed with the specified version for [pre-existing features](../src/s-core-devcontainer/test-project/test.sh), the [S-CORE feature](../src/s-core-devcontainer/.devcontainer/s-core-local/tests/test_default.sh) and the [bazel feature](../src/s-core-devcontainer/.devcontainer/bazel-feature/tests/test_default.sh).
84
+
After an image build, tests check that each tool expected to be in the image is installed with the specified version for [pre-existing features](../src/s-core-devcontainer/test-project/test.sh), the [system CA trust store](../src/s-core-devcontainer/test-project/ca_certificates.sh), the [S-CORE feature](../src/s-core-devcontainer/.devcontainer/s-core-local/tests/test_default.sh) and the [bazel feature](../src/s-core-devcontainer/.devcontainer/bazel-feature/tests/test_default.sh).
85
85
This may seem overly complex at first, but prevents (1) accidentially wrong versions, (2) completely broken tools that cannot even execute.
86
86
Both cases can happen and have happened in the past already, e.g. due to unexpected interactions between devcontainer features.
0 commit comments