ASM-19589: SCA remediation - fix all fixable dependency vulnerabilities (50 -> 0) - #18
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe Maven configuration updates FasterXML, Google Auth, and Azure Identity versions. It adds a shared Netty version and imports the Netty BOM. Netty Handler now uses the shared version. ChangesDependency alignment
Estimated code review effort: 2 (Simple) | ~10 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
…es (50 -> 0) Trivy fs scan on pom.xml reported 50 findings (21 HIGH / 26 MEDIUM / 3 LOW), all with released fixes. Changes: - jackson-databind (fasterxml_version): 2.19.0 -> 2.22.1 (CVE-2026-54512/54513/54514/54515, CVE-2026-59888; jackson-core GHSA-r7wm-3cxj-wff9, GHSA-72hv-8253-57qq) - google-auth-library-oauth2-http: 1.5.3 -> 1.50.0 (transitive guava 31.0.1-android -> 33.6.0-jre: CVE-2023-2976, CVE-2020-8908) - azure-identity: 1.15.2 -> 1.18.4 (transitive reactor-netty-http 1.0.48 -> 1.2.18: CVE-2025-22227; msal4j 1.23.1 no longer pulls vulnerable nimbus-jose-jwt 9.40: CVE-2025-53864) - netty-handler: 4.1.121.Final -> 4.1.137.Final (property netty_version) - new dependencyManagement import of io.netty:netty-bom 4.1.137.Final to force ALL transitive netty artifacts (codec, codec-http, codec-http2, codec-dns, resolver-dns, handler-proxy, transport-native-epoll/kqueue) to a fixed version (25 netty CVEs incl. CVE-2025-55163, CVE-2026-42583/42584/42587, CVE-2026-55831/55833, CVE-2026-56745/56819, CVE-2026-44249/45416/50010, CVE-2026-45674/47691, others) Verification: mvn clean package BUILD SUCCESS (Java 8 target kept); no unit tests exist in repo (surefire: 'No tests to run'); offline smoke test exercising CloudProviderFactory, full AwsCloudIdProvider signing path, azure/gcp class linkage passed 20 assertions; trivy re-scan: 0 findings. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2b5a7c9 to
b2ab5cb
Compare
AppSec Review - PASSTicket: ASM-19589 - [SCA] Remediate dependency vulnerabilities in akeyless-java-cloud-id (50 findings -> 0) What Was Verified
TestsPR #19 (hermetic unit suite + CI) landed on Notes
Reviewed HEAD: b2ab5cb (merged as b06fa57) |
SCA remediation for ASM-19589. Trivy fs scan (vuln scanners, offline) on
pom.xmlreported 50 findings (21 HIGH / 26 MEDIUM / 3 LOW) - all with released fixes. After this change the same scan reports 0 findings.Fixes by manifest
fasterxml_versionpropertynetty_versionproperty<dependencyManagement>import ofio.netty:netty-bom:4.1.137.FinalCode changes required by bumps
None. Source uses only stable public APIs that are unchanged across the bumps, verified by review of all 6 source files (
GoogleCredentials/IdTokenCredentialsinGcpCloudIdProvider,DefaultAzureCredentialBuilder/TokenRequestContextinAzureCloudIdProvider, AWS SDK v2Aws4Signerpath inAwsCloudIdProvider- aws-core was not bumped) and by a clean compile plus the runtime smoke test below. Java 8 compiler target is preserved; all bumped versions (jackson 2.x, netty 4.1.x, azure-identity 1.18.x, google-auth-library 1.50.0) remain Java-8 compatible.Residual findings
None. Post-fix
trivy fs --scanners vuln --offline-scanon the tree: 0 findings. No findings were skipped, downgraded, or left without a fix.Verification / TEST EVIDENCE
All verification ran on a local workstation (macOS, Maven with JDK 11,
-Drevision=1.0.0-SNAPSHOTsince the pom version is CI-injected). No production/SaaS endpoints and no internet-facing gateways were called; the only network access was Maven Central artifact downloads.xmllint --noout pom.xml- pass (valid XML).mvn -B clean package -Drevision=1.0.0-SNAPSHOT- BUILD SUCCESS (9.5 s): compiles all sources and builds thejar-with-dependenciesassembly against the new versions.mvn -B test -Drevision=1.0.0-SNAPSHOT- BUILD SUCCESS; surefire 3.5.4 reports "No tests to run": this repository contains no test sources at all (nosrc/test), so there is no unit suite to execute - on the base branch or on this one.CloudProviderFactory.getCloudIdProviderdispatch foraws_iam,azure_ad,gcp+ rejection of an unsupported type (4 assertions).AwsCloudIdProvider.getCloudId()with fake static env credentials (AWS_ACCESS_KEY_ID=AKIAFAKE...,AWS_EC2_METADATA_DISABLED=true): this code path signs the STSGetCallerIdentityrequest locally and never sends it, so it runs end-to-end offline. Verified the returned cloud-id decodes to the expected JSON and the headers JSON (serialized by jackson-databind 2.22.1) contains a SigV4AWS4-HMAC-SHA256Authorization header andX-Amz-Date(4 assertions). No request left the machine.Class.forName) for 10 classes across the bumped libraries: azure-identity, azure-core, google-auth-library, netty codec-http/ssl/resolver-dns, reactor-nettyHttpClient, jacksonObjectMapper, guava (10 assertions).DefaultAzureCredentialviaDefaultAzureCredentialBuilder().build()(no token fetch attempted) (1 assertion).mvn dependency:tree(allio.netty:*at 4.1.137.Final) instead.mvn -B dependency:tree- confirms resolved tree: all netty artifacts 4.1.137.Final, reactor-netty-http/core 1.2.18, guava 33.6.0-jre, jackson 2.22.1/2.22, msal4j 1.23.1 with no standalone nimbus-jose-jwt.trivy fs --scanners vuln --offline-scan -q -f json- 0 vulnerabilities (was 50).Not run, and why:
AzureCloudIdProvider.getCloudId()andGcpCloudIdProvider.getCloudId()end-to-end - both require live cloud credentials/metadata endpoints (Azure IMDS / GCP ADC), which are unavailable locally and out of scope per policy of not touching live environments; their code paths are covered by compile, class-linkage, and object-construction checks above. No integration/e2e suites, containers, or CI-only jobs exist in this repository (the.githubdirectory contains no test workflows).🤖 Generated with Claude Code
Summary by CodeRabbit