Skip to content

CLDSRV-1022: remaining CVEs and dependency bumps - #6327

Open
francoisferrand wants to merge 6 commits into
development/9.5from
improvement/CLDSRV-1022
Open

francoisferrand wants to merge 6 commits into
development/9.5from
improvement/CLDSRV-1022

Conversation

@francoisferrand

@francoisferrand francoisferrand commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Clean up the remaining CVEs in cloudserver's dependencies and image.

  • Base the image on Debian trixie, which gets rid of the critical OS CVEs from bookworm.
  • Install the Python packages used by the utapi reindex in the federation image only, since that's the only place the reindex runs.
  • Move from the deprecated @hapi/joi to joi.
  • Bump utapi, which no longer pulls request and old jsonwebtoken. That makes our resolutions for that chain unnecessary.
  • Switch coverage from nyc to c8, and move to mocha 12. mocha-junit-reporter doesn't support mocha 12 yet, so test reports now use mocha's built-in xunit reporter. Expect Codecov test history and coverage numbers to shift with the reporter and c8 changes.

osv-scanner on yarn.lock goes from 13 findings to 2, both dev-only with no fix available yet (braces, katex).

Issue: CLDSRV-1022

The bookworm base carries a large backlog of OS CVEs that Debian has
deferred or will not fix, including criticals in perl-base, zlib and
sqlite. Node 24 on trixie-slim clears the criticals and most of that
backlog; native modules build and load the same.

Issue: CLDSRV-1022
python3-redis and python3-requests are only needed by the utapi v1
reindex scripts, which are run from the federation image. That image
already ships Python for supervisord, so installing them there keeps
Python and its CVEs out of the main image.

Issue: CLDSRV-1022
@hapi/joi is deprecated and its advisory will not be fixed under that
name. joi 18 is already in the tree through arsenal, and the veeam
schemas were already requiring it without declaring it. The only visible
difference is the wording of range errors in config validation
("greater than" instead of "larger than").

Issue: CLDSRV-1022
utapi now validates its v2 API without oas-tools, which removes the
deprecated request (with its old form-data, qs, tough-cookie and uuid)
and jsonwebtoken 8 from our tree, and moves utapi from @hapi/joi to joi.
The jsonwebtoken and request/form-data resolutions only existed for that
chain and are dropped.

Pinned on the pull request commit until it is released.

Issue: CLDSRV-1022
c8 relies on V8's built-in coverage instead of instrumenting the code,
which drops nyc's dependency tree (and its vulnerable uuid) and also
follows the child processes started by yarn start. Config, scripts and
the coverage image move over with the same include/exclude rules.

Issue: CLDSRV-1022
mocha 11 pulls vulnerable serialize-javascript and diff, which only
mocha 12 fixes. mocha-junit-reporter has not been updated for mocha 12's
class-based reporters, so test reports now use mocha's built-in xunit
reporter, through mocha-multi-reporters 1.5.2 which supports mocha 12.

Reports are named after the yarn script instead of a content hash: it
keeps runs sharing a directory or the artifacts folder apart, and makes
the files easier to find. _mocha is gone in mocha 12, the debug scripts
use mocha instead.

Issue: CLDSRV-1022
@bert-e

bert-e commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Hello francoisferrand,

My role is to assist you with the merge of this
pull request. Please type @bert-e help to get information
on this process, or consult the user documentation.

Available options
name description privileged authored
/after_pull_request Wait for the given pull request id to be merged before continuing with the current one.
/bypass_author_approval Bypass the pull request author's approval ⭐
/bypass_build_status Bypass the build and test status ⭐
/bypass_commit_size Bypass the check on the size of the changeset TBA ⭐
/bypass_incompatible_branch Bypass the check on the source branch prefix ⭐
/bypass_jira_check Bypass the Jira issue check ⭐
/bypass_peer_approval Bypass the pull request peers' approval ⭐
/bypass_leader_approval Bypass the pull request leaders' approval ⭐
/bypass_source_branch_lineage Bypass the cross-branch contamination check ⭐
/approve Instruct Bert-E that the author has approved the pull request. ✍️
/create_pull_requests Allow the creation of integration pull requests.
/create_integration_branches Allow the creation of integration branches.
/no_octopus Prevent Wall-E from doing any octopus merge and use multiple consecutive merge instead
/unanimity Change review acceptance criteria from one reviewer at least to all reviewers
/wait Instruct Bert-E not to run until further notice.
Available commands
name description privileged
/help Print Bert-E's manual in the pull request.
/status Print Bert-E's current status in the pull request.
/clear Remove all comments from Bert-E from the history TBA
/retry Re-start a fresh build TBA
/build Re-start a fresh build TBA
/force_reset Delete integration branches & pull requests, and restart merge process from the beginning.
/reset Try to remove integration branches unless there are commits on them which do not appear on the source branch.

Status report is not available.

@bert-e

bert-e commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Incorrect fix version

The Fix Version/s in issue CLDSRV-1022 contains:

  • None

Considering where you are trying to merge, I ignored possible hotfix versions and I expected to find:

  • 9.5.0

Please check the Fix Version/s of CLDSRV-1022, or the target
branch of this pull request.

Comment thread package.json
"@scality/cloudserverclient": "1.0.13",
"@scality/scubaclient": "1.2.1",
"@scality/utapi": "github:scality/utapi#8.4.0",
"@scality/utapi": "github:scality/utapi#d5f383e6da23b66d7cf2be52bf8f3383d89e7356",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

utapi is pinned to a commit SHA, not a release tag. Git deps must pin to a tag. Bump to the utapi release tag that includes scality/utapi#1339 (and regenerate yarn.lock) before merging.

@codecov

codecov Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.22%. Comparing base (6c5f817) to head (7690145).
✅ All tests successful. No failed tests found.

Additional details and impacted files

Impacted file tree graph

Files with missing lines Coverage Δ
lib/Config.js 82.74% <100.00%> (+1.90%) ⬆️
lib/api/apiUtils/rateLimit/config.js 100.00% <100.00%> (ø)
lib/routes/routeBackbeat.js 82.37% <100.00%> (+3.51%) ⬆️

... and 203 files with indirect coverage changes

@@                 Coverage Diff                 @@
##           development/9.5    #6327      +/-   ##
===================================================
+ Coverage            87.87%   90.22%   +2.35%     
===================================================
  Files                  206      206              
  Lines                14193    38590   +24397     
===================================================
+ Hits                 12472    34818   +22346     
- Misses                1721     3772    +2051     
Flag Coverage Δ
checksums-disabled-tests 46.18% <100.00%> (+10.52%) ⬆️
file-ft-tests 76.01% <100.00%> (+4.74%) ⬆️
file-ft-tests-null-compat 76.51% <100.00%> (+4.70%) ⬆️
kmip-ft-tests 37.70% <100.00%> (+9.47%) ⬆️
mongo-v0-ft-tests 77.11% <100.00%> (+4.56%) ⬆️
mongo-v1-ft-tests 77.12% <100.00%> (+4.52%) ⬆️
multiple-backend 44.52% <100.00%> (+8.07%) ⬆️
s3c-ft-tests-v0 71.70% <100.00%> (+5.34%) ⬆️
s3c-ft-tests-v0-null-compat 71.76% <100.00%> (+5.34%) ⬆️
s3c-ft-tests-v1 71.67% <100.00%> (+5.32%) ⬆️
sur-tests 45.09% <100.00%> (+8.07%) ⬆️
sur-tests-inflights 48.49% <100.00%> (+8.57%) ⬆️
unit 79.70% <100.00%> (+4.29%) ⬆️
utapi-v2-tests 45.10% <100.00%> (+9.48%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@francoisferrand
francoisferrand marked this pull request as ready for review October 13, 2026 19:22
Comment thread Dockerfile

This branch has not been deployed

No deployments
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