Turn Dependabot off
Dependabot’s Limitations and Noise
- Many commenters agree the core problem is version-level scanning: Dependabot flags any vulnerable version in the graph, regardless of whether the vulnerable code path is actually used.
- This produces large volumes of low-value alerts, especially for:
- Dev dependencies (build tools, test runners).
- Client-only packages flagged for server-side issues.
- ReDoS vulnerabilities in JS tooling that can’t be exploited in the app’s actual threat model.
- Alert fatigue leads to auto-merging or ignoring alerts, which is viewed as less secure in practice.
- Some use Dependabot mainly for scheduled, non-security updates and find that valuable; others find the PR and email spam intolerable.
Go’s govulncheck and Call-Graph-Based Approaches
- govulncheck is widely praised: it traces call graphs and only reports vulnerabilities reachable from the code, drastically reducing false positives.
- GitHub Actions around govulncheck (including PR annotations) are seen as a strong alternative to blind dependency bumping.
- A key point from the article echoed in comments: security triage bandwidth exists only if you minimize false positives.
Other Ecosystems and Static Analysis Challenges
- Rust:
cargo-auditis mentioned but lacks govulncheck-style “vulnerable symbol reachability.” Lockfile quirks can surface unused deps. - JVM: OWASP Dependency-Check and Gradle/Sonatype tooling are cited.
- Python:
pip-auditand Bandit help but remain version-based; proper reachability depends on better metadata. Dynamic imports and idioms likegetattrcomplicate analysis. - JS/TS: considered hardest; some commercial tools claim deep static analysis, but dynamic patterns and Express-style composition limit precision.
Operational & Compliance Pressures
- SOC2, customer scanners, and platforms like Vanta treat open CVEs/Dependabot alerts as binary metrics, pushing teams to “fix the number” by merging updates they don’t understand.
- Container scanners and base-image CVEs create similar noise, especially for unreachable or unused components.
Debate Over DoS/ReDoS CVEs
- Long thread on whether DoS (especially ReDoS) should be treated as a “security vulnerability” at all versus an availability/operational concern.
- Some argue most ReDoS CVEs are spam; others note that in certain architectures (e.g., fail-open controls, critical systems) DoS can translate into serious security impact.
Alternative Strategies
- Scheduled manual audits (monthly/quarterly) plus ecosystem-specific tools instead of always-on bots.
- Automated updates with cooldowns, strong tests, and sometimes canary deploys.
- Testing against latest versions rather than constantly updating, and aggressively minimizing dependencies.