deps(dm): update vulnerable dependencies for nextgen - #12772
Conversation
Refresh the DM gobinary dependency set on release-nextgen-202603 and align the repository toolchain on Go 1.25.12. Include the current grpc-go and OpenTelemetry security floors while preserving the release-specific TiDB, TiKV, and PD pins.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
/test pull-dm-integration-test-next-gen |
1 similar comment
|
/test pull-dm-integration-test-next-gen |
|
/retest |
|
@GMHDBJD: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
What problem does this PR solve?
Issue Number: ref #12768
The BYOC image scan reports vulnerable Go runtime/library versions in the
gobinaryfindings fortidbcloud/dm:feature-importintoandtidbcloud/dm:v26.3.3-nextgen. Rocky Linux and other base-image packages are intentionally excluded because the release team owns the image/OS refresh.This backport is manually reimplemented on the freshly fetched
release-nextgen-202603tip (7ef1518c, tagv26.3.3) rather than cherry-picked, so the release branch's TiDB, TiKV, PD, and other dependency pins remain intact.The vulnerability database also advanced after the original report/
masterchange was prepared:google.golang.org/grpc >= v1.82.1.v1.43.xtov1.44.0.golang.org/x/net >= v0.56.0andgolang.org/x/text >= v0.39.0.What is changed and how it works?
1.25.12in the root module, synchronized auxiliary modules, and the integration-test toolchain image.filippo.io/edwards25519tov1.1.1github.com/Azure/go-ntlmssptov0.1.1github.com/apache/thrifttov0.23.0v1.7.8/v1.97.3github.com/dvsekhvalnov/jose2gotov1.7.0github.com/go-jose/go-jose/v4tov4.1.4golang.org/x/crypto,x/net,x/sys, andx/texttov0.53.0,v0.56.0,v0.46.0, andv0.39.0golang.org/x/text => v0.28.0replacement so the effective version is no longer held below the fixed floor.v1.82.1and align the OpenTelemetry core/metric/SDK/trace modules atv1.44.0; accept only the dependency closure selected by MVS and regeneratego.sumwithgo mod tidy.3adc8ecis a descendant of upstream fix commit3d68bd2for GO-2024-3284, although version-only matching cannot recognize that ancestry.The final symbol-level source scan no longer reports GO-2026-6061, GO-2026-5158, GO-2026-5942, GO-2026-5970, or GO-2026-5764 as findings.
Residual govulncheck findings and triage
The scan is not completely finding-free:
EtcdServer.Txnsymbol is reachable, but exploitation requires etcd built-in authentication/RBAC and a valid lower-privileged etcd user. DM's embedded-etcd configuration does not enable that auth/RBAC model. The coordinated etcd upgrade remains tracked under Vulnerable dependencies #12637.init/Freezefunctions are reported as symbol findings. DM links this module transitively through Pulsar configuration; no attacker-controlled DM Avro decode path was found. Remediation needs a separately tested maintained-fork migration and allocation-limit configuration.s2package is imported, but the vulnerables2.NewDictsymbol is not called.These are documented follow-up/exception items rather than failures of the dependency remediations in this PR.
Check List
Tests
env -u HTTP_PROXY -u HTTPS_PROXY -u NO_PROXY GOTOOLCHAIN=go1.25.12 make dm_unit_test(all DM packages, race detector, and failpoints)GOTOOLCHAIN=go1.25.12 go mod tidy -diffGOTOOLCHAIN=go1.25.12 go mod verifyGOTOOLCHAIN=go1.25.12 make tidyGOTOOLCHAIN=go1.25.12 make dmGOTOOLCHAIN=go1.25.12 make cdc engine sync-diff-inspectorgo version -m bin/{dm-master,dm-worker,dmctl,dm-syncer}(all built with Go1.25.12, grpc-gov1.82.1, and OpenTelemetryv1.44.0)govulncheck -scan=symbol -format=json ./cmd/dm-master ./cmd/dm-worker ./cmd/dm-ctl ./cmd/dm-syncer ./dm/...with Go1.25.12and the vulnerability database updated on 2026-07-27Questions
Will it cause performance regression or break compatibility?
No performance regression or intentional compatibility break is expected. This PR changes dependency/toolchain versions only, preserves release-specific pins, passes the complete race-enabled DM unit suite, and builds DM plus shared-dependency binaries. DM integration and compatibility CI are requested as the final compatibility gates.
Do you need to update user documentation, design documentation or monitoring documentation?
No. The source report is used only to select gobinary dependency remediations; this PR does not change product behavior or user-facing documentation. Image/OS package remediation remains owned by the release team.
Release note