By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.
ToolAccuracy of FindingsDetects Non-Pattern-Based Issues?Coverage of SAST FindingsSpeed of ScanningUsability & Dev Experience
DryRun SecurityVery high – caught multiple critical issues missed by othersYes – context-based analysis, logic flaws & SSRFBroad coverage of standard vulns, logic flaws, and extendableNear real-time PR feedback
Snyk CodeHigh on well-known patterns (SQLi, XSS), but misses other categoriesLimited – AI-based, focuses on recognized vulnerabilitiesGood coverage of standard vulns; may miss SSRF or advanced auth logic issuesFast, often near PR speedDecent GitHub integration, but rules are a black box
GitHub Advanced Security (CodeQL)Very high precision for known queries, low false positivesPartial – strong dataflow for known issues, needs custom queriesGood for SQLi and XSS but logic flaws require advanced CodeQL experience.Moderate to slow (GitHub Action based)Requires CodeQL expertise for custom logic
SemgrepMedium, but there is a good community for adding rulesPrimarily pattern-based with limited dataflowDecent coverage with the right rules, can still miss advanced logic or SSRFFast scansHas custom rules, but dev teams must maintain them
SonarQubeLow – misses serious issues in our testingLimited – mostly pattern-based, code quality orientedBasic coverage for standard vulns, many hotspots require manual reviewModerate, usually in CIDashboard-based approach, can pass “quality gate” despite real vulns
Vulnerability ClassSnyk (partial)GitHub (CodeQL) (partial)SemgrepSonarQubeDryRun Security
SQL Injection
*
Cross-Site Scripting (XSS)
SSRF
Auth Flaw / IDOR
User Enumeration
Hardcoded Token
ToolAccuracy of FindingsDetects Non-Pattern-Based Issues?Coverage of C# VulnerabilitiesScan SpeedDeveloper Experience
DryRun Security
Very high – caught all critical flaws missed by others
Yes – context-based analysis finds logic errors, auth flaws, etc.
Broad coverage of OWASP Top 10 vulns plus business logic issuesNear real-time (PR comment within seconds)Clear single PR comment with detailed insights; no config or custom scripts needed
Snyk CodeHigh on known patterns (SQLi, XSS), but misses logic/flow bugsLimited – focuses on recognizable vulnerability patterns
Good for standard vulns; may miss SSRF or auth logic issues 
Fast (integrates into PR checks)Decent GitHub integration, but rules are a black box (no easy customization)
GitHub Advanced Security (CodeQL)Low - missed everything except SQL InjectionMostly pattern-basedLow – only discovered SQL InjectionSlowest of all but finished in 1 minuteConcise annotation with a suggested fix and optional auto-remedation
SemgrepMedium – finds common issues with community rules, some missesPrimarily pattern-based, limited data flow analysis
Decent coverage with the right rules; misses advanced logic flaws 
Very fast (runs as lightweight CI)Custom rules possible, but require maintenance and security expertise
SonarQube
Low – missed serious issues in our testing
Mostly pattern-based (code quality focus)Basic coverage for known vulns; many issues flagged as “hotspots” require manual review Moderate (runs in CI/CD pipeline)Results in dashboard; risk of false sense of security if quality gate passes despite vulnerabilities
Vulnerability ClassSnyk CodeGitHub Advanced Security (CodeQL)SemgrepSonarQubeDryRun Security
SQL Injection (SQLi)
Cross-Site Scripting (XSS)
Server-Side Request Forgery (SSRF)
Auth Logic/IDOR
User Enumeration
Hardcoded Credentials
VulnerabilityDryRun SecuritySemgrepGitHub CodeQLSonarQubeSnyk Code
1. Remote Code Execution via Unsafe Deserialization
2. Code Injection via eval() Usage
3. SQL Injection in a Raw Database Query
4. Weak Encryption (AES ECB Mode)
5. Broken Access Control / Logic Flaw in Authentication
Total Found5/53/51/51/50/5
VulnerabilityDryRun SecuritySnykCodeQLSonarQubeSemgrep
Server-Side Request Forgery (SSRF)
(Hotspot)
Cross-Site Scripting (XSS)
SQL Injection (SQLi)
IDOR / Broken Access Control
Invalid Token Validation Logic
Broken Email Verification Logic
DimensionWhy It Matters
Surface
Entry points & data sources highlight tainted flows early.
Language
Code idioms reveal hidden sinks and framework quirks.
Intent
What is the purpose of the code being changed/added?
Design
Robustness and resilience of changing code.
Environment
Libraries, build flags, and infra metadata flag, infrastructure (IaC) all give clues around the risks in changing code.
KPIPattern-Based SASTDryRun CSA
Mean Time to Regex
3–8 hrs per noisy finding set
Not required
Mean Time to Context
N/A
< 1 min
False-Positive Rate
50–85 %< 5 %
Logic-Flaw Detection
< 5 %
90%+
Severity
CriticalHigh
Location
utils/authorization.py :L118
utils/authorization.py :L49 & L82 & L164
Issue
JWT Algorithm Confusion Attack:
jwt.decode() selects the algorithm from unverified JWT headers.
Insecure OIDC Endpoint Communication:
urllib.request.urlopen called without explicit TLS/CA handling.
Impact
Complete auth bypass (switch RS256→HS256, forge tokens with public key as HMAC secret).
Susceptible to MITM if default SSL behavior is weakened or cert store compromised.
Remediation
Replace the dynamic algorithm selection with a fixed, expected algorithm list. Change line 118 from algorithms=[unverified_header.get('alg', 'RS256')] to algorithms=['RS256'] to only accept RS256 tokens. Add algorithm validation before token verification to ensure the header algorithm matches expected values.
Create a secure SSL context using ssl.create_default_context() with proper certificate verification. Configure explicit timeout values for all HTTP requests to prevent hanging connections. Add explicit SSL/TLS configuration by creating an HTTPSHandler with the secure SSL context. Implement proper error handling specifically for SSL certificate validation failures.
Key Insight
This vulnerability arises from trusting an unverified portion of the JWT to determine the verification method itself
This vulnerability stems from a lack of explicit secure communication practices, leaving the application reliant on potentially weak default behaviors.
DryRun Security News
April 2, 2026

DryRun Security Q1 2026: Everything We Shipped and Why It Matters

This quarter, the DryRun Security team shipped updates to help you:

  • Identify systemic risk across your entire codebase with DeepScan Agent
  • Prioritize what actually matters with a centralized Risk Register
  • Reduce false positives at the source with PR Feedback
  • Enforce security without slowing development using severity-based blocking
  • Investigate related vulnerabilities instantly with variant analysis
  • See dependency and code risk in one place with SCA in DeepScan

Code is moving faster than security tooling was built to handle. Here's what we shipped in Q1 to close that gap.

Feature Release 01

DeepScan Agent: Full-Repository Code Security Intelligence

Security issues do not exist in isolation. They show up in how the application actually behaves across the system.

The DeepScan Agent analyzes your entire repository to understand that behavior. It builds a working model of the application, mapping data flows, trust boundaries, identity paths, and how services interact. From there, it evaluates what the code actually does and how it can be exploited, rather than matching patterns.

That's how it surfaces issues that only exist at the system level. Authorization that breaks across workflows. IDORs that require full data path context. Multi-tenant isolation gaps. Business logic flaws tied to real usage.

DeepScan also brings dependency risk into that same context. SCA findings are now surfaced directly in DeepScan and filterable in the Risk Register. The SBOM endpoint provides a machine-readable component inventory for compliance and supply chain workflows, so application and dependency risk are no longer managed separately.

"DeepScan Agent surfaced more accurate, actionable findings than the $6,000 pentest we had just completed." —Current Customer

DeepScan Assessment Segment

Learn more about the Deepscan Agent.

Feature Release 02

Risk Register: One View Across PRs and Repos

Findings don’t live in one place. They show up in pull requests, across repos, and inside full repo analysis. That fragmentation makes it hard to understand what actually matters, what’s already been handled, and what still needs attention.

Risk Register brings all of that into a single place.

It combines findings from PR scans and DeepScan so AppSec teams can triage, track, and prioritize risk across the entire organization without jumping between tools. It also keeps the context intact. What the issue is, where it came from, how it was handled, and whether it still matters.

What shipped in Q1 for Risk Register:

  • Inline finding review with full context so you can triage without leaving the Risk Register
  • Dismissed Findings view with a full audit trail of decisions and notes
  • Restore dismissed findings to recover anything incorrectly closed
  • New dismissal values plus improved logic so “Won’t Fix / Nitpick” decisions reduce repeat noise
  • SCA findings now surface in Risk Register alongside code risk

The result is a single place to understand risk across your codebase, not just what was flagged, but what actually needs attention

A clear starting point for AppSec, DevSecOps, and engineering leaders.

Feature Release 03

PR Feedback: Close the False Positive Loop

The false positive problem in AppSec is a feedback problem. The context that explains why a finding isn't real lives in a developer's head and never makes it back to the scanner, so it flags the same thing on the next PR. Ticket gets filed, developer gets blocked, the cycle repeats.

PR Feedback cuts that short. Reply directly in the PR thread to mark a finding as a false positive or a nitpick, and DryRun removes it, regenerates the PR summary, and logs it to improve future scans.

@dryrunsecurity fp [issue ID] — no dashboard, no ticket, no waiting

Every feedback response we get is routed into our analysis pipeline. Calibrating scans to your codebase over time without any config file changes or manual rule tuning. Developers stay unblocked. AppSec gets the audit trail. Both happen at the same time.

Developer replying @dryrunsecurity fp [issue ID] in a GitHub PR comment thread.

Platform Improvements Worth Knowing About

Severity Scoring Model (v1)

PR findings are now evaluated based on impact and exploitability, with ratings from Critical to Low. You can also block PRs based on this model, which is a more meaningful control than pass or fail.

MCP via API Access Key

Connect DryRun Security to MCP with an API Access Key instead of OAuth. This is now the recommended method, especially for teams integrating DryRun Security into agentic coding environments. Setup instructions are on the Integrations page.

Revamped Insights Page (Beta)

Inline AI assistant with streaming responses, redesigned cards with expandable sections, quick question suggestions, and a Category Manager. It’s an early version of what we expect to become the primary surface for AppSec teams who want to ask questions about risk rather than just read dashboards.

SCM Comment Visibility Toggle

Configure whether DryRun Security comments on every scanned PR or only when findings are present. Removes the ambiguity of silence for teams who want confirmation that every PR was reviewed.

Notification Deduplication

Duplicate notifications are now suppressible when risk level hasn't changed on a PR.

GitLab Install All now respects project hierarchy.

Group installs propagate correctly through the project structure.

Try it for yourself.

Log in to your DryRun Security account to try out these new features today. If you're not a customer yet and want to learn more, request a demo.

As always, we welcome your feedback. Let us know what you think by reaching out to us at hello@dryrunsecurity.com and stay in the loop on DryRun Security news on LinkedIn.