Fix 9 security vulnerabilities (golang.org/x/net, gopkg.in/yaml.v3, k8s.io/apimachinery)#40
Merged
John-Holden merged 10 commits intomainfrom Jan 30, 2026
Merged
Conversation
Fixes 6 security vulnerabilities: - 5 in golang.org/x/net/http2 (4 high, 1 medium severity DoS) - 1 in golang.org/x/sys/unix (medium severity privilege assignment) All tests pass. Built and verified.
Fixes 2 high-severity security vulnerabilities: - DoS vulnerability (SNYK-GOLANG-GOPKGINYAMLV3-2841557) - NULL Pointer Dereference (SNYK-GOLANG-GOPKGINYAMLV3-2952714) All tests pass. Built and verified.
Updates k8s.io/api, k8s.io/apimachinery, k8s.io/client-go from v0.23.6 to v0.23.17 This is a conservative patch-level update that includes bug fixes. Does not yet fix the remaining DoS vulnerability (requires v0.29.0+). All tests pass. Built and verified.
Major upgrade to fix remaining DoS vulnerability: - k8s.io/api, k8s.io/apimachinery, k8s.io/client-go: v0.23.17 → v0.29.0 - Go toolchain: 1.17 → 1.21 (required by k8s.io v0.29.0) - Fixes SNYK-GOLANG-K8SIOAPIMACHINERYPKGUTILRUNTIME-8367153 (high severity DoS) ✅ All 9 vulnerabilities from Snyk scan are now resolved ✅ All tests pass ✅ Build successful ✅ Snyk reports: no vulnerable paths found This completes the security vulnerability remediation.
TrimPrefix matches the prefix string. TrimLeft, which was being used,
eliminates any characters in the cutset (any characters from the string
passed as the 2nd argument) until no character in that cutset is
encountered.
E.g.
TrimLeft("com.uswitch.heimdall/heimdall123", "com.uswitch.heimdall/") => "123"
because all characters in the string are in the cutset (2nd argument) up
until the number '1', so the rest of the string is returned from there.
John-Holden
approved these changes
Jan 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes all 9 security vulnerabilities identified by Snyk scan through conservative, incremental dependency updates.
Vulnerabilities Fixed
Before
After
Changes by Introducer Package
1. k8s.io/client-go/rest@0.23.6 → @0.29.0 (Fixed 6 transitive vulnerabilities)
2. k8s.io/apimachinery@0.23.6 → @0.29.0 (Fixed 1 direct vulnerability)
3. gopkg.in/yaml.v3 (Fixed 2 transitive vulnerabilities)
Approach
Conservative, incremental updates with testing and commits after each change:
golang.org/x/netto v0.23.0 → Fixed 5 vulnerabilitiesgopkg.in/yaml.v3to v3.0.1 → Fixed 2 vulnerabilitiesEach commit:
go test ./...)make build)🧪 Testing Performed
1. Unit Tests ✅
Command:
go test ./...Results:
2. Build Verification ✅
Commands:
Results:
go vetandgo fmtchecks pass3. Integration Testing in Minikube ✅
Test Environment:
Test Scenario 1: Existing Deployment (Backward Compatibility)
test-app(deployed 58 minutes before upgrade)com.uswitch.heimdall/replicas-availability-deployment: "0.8"Test Scenario 2: New Deployment After Upgrade
test-app-2(3 replicas)priority: p2,channel: slack-alerts,team: infrastructureHeimdall Logs:
{"level":"info","msg":"template selected","name":"test-app-2","namespace":"default","template":"replicas-availability-deployment"}Key Findings:
4. Dependency Health Check ✅
Commands:
Results:
5. Security Verification ✅
Snyk Scan Before:
Snyk Scan After:
Results:
6. Runtime Verification ✅
Minikube Deployment Status:
Results:
Breaking Changes
Deployment Notes
.github/workflows/push.yamland will need updatingSecurity Scan Results
Snyk Vulnerability IDs Fixed:
Checklist
Reviewer Notes
Please verify:
Related: This should also resolve or reduce GitHub Dependabot alerts on the repository.