Fix SCA vulnerabilities
Last updated: Aug 10, 2026
It is common for Software Composition Analysis (SCA) reports to flag vulnerabilities within transitive dependencies. Resolving these issues is often complex, as you lack direct control over the versioning of a transitive dependency; instead, its version is governed by a direct or intermediate dependency.
To help you navigate these challenges, the following sections provide remediation guides for vulnerabilities within JavaScript (npm and pnpm), Python (uv), Kotlin (Gradle), and Rust (Cargo) ecosystems.
You may notice other tools reporting more findings for the same codebase. This is often because they count once per workspace or manifest file rather than once per unique CVE. Fluid Attacks prioritizes actionability: one finding, one action.
Check your fix before you push
Whichever strategy you end up using, run the SCA scanner against your working copy to confirm the finding is gone, rather than waiting for a pipeline to tell you.
docker run --rm -v "$PWD":/my-dir fluidattacks/sca:latest sca scan /my-dirIf you are going to run it after every attempt,
give it an alias in the file your shell reads at startup:
~/.zshrc for zsh, ~/.bashrc for bash,
or a separate ~/.aliases that you source from either.
alias sca-scan='docker run --rm -v "$PWD":/my-dir fluidattacks/sca:latest sca scan /my-dir'Open a new shell, or run source ~/.zshrc,
and scanning the repository you are standing in becomes one word:
sca-scanAdd --strict to the sca scan call
if you want a non-zero exit code when it finds something,
which is what you want when wiring it into a pre-push hook.
A local scan does not need a group token. Authentication only attributes the run to your group in the Fluid Attacks platform, and never blocks the scan.
Custom remediation guides
Learn to use the generative artificial intelligence integrated with the Fluid Attacks VS Code extension to receive specific vulnerability remediation guidance.
In JavaScript
Learn the recommended strategies to remediate SCA vulnerabilities found in transitive npm and pnpm dependencies, from updating packages to using dependency overrides.