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.
Contextual Security Analysis
November 19, 2025

Beyond Reachability: The Exploitability Advantage in AppSec

The teams that win in modern AppSec are not the ones who find the most reachable paths, but the ones who can prove what is actually exploitable.

This means we have been winning a surprising number of head-to-head evaluations recently. Some of those wins are against the old guard of SAST that everyone already expects to struggle in modern codebases. But what has really stood out is how often we are winning against the new wave of AI-Native SAST tools. These are smart teams building interesting technology. So why does DryRun Security consistently come out ahead?

The answer is exploitability.

Exploitability is the next evolution of accuracy for code security. Everyone in the SCA world talks about reachability. While valuable, reachability alone only answers one question: is the code path possible to hit or is the function even used? Exploitability answers a much more important one: could an attacker actually misuse this behavior in the real world? Reachability is an empty threat. Exploitability holds the real risk of impact.

A recent customer gave us a perfect example. They ran a comparison between DryRun Security and another AI native SAST tool. 

The competitor returned an SSRF finding that DryRun did not. 

Naturally, that raised eyebrows. So we sat down with the customer and walked through the code together. And here is what we found: the pattern for SSRF was present, but the necessary conditions to turn it into an exploitable issue were missing. 

It looked risky, but it could never actually trigger. It was like seeing smoke from a fog machine and assuming the building was on fire.

Just to be sure, we added the missing pieces to make it a real SSRF. Once the vulnerability became genuinely exploitable, DryRun Security picked it up immediately.

This is the point. The false positive problem does not get solved by de-duping. It does not get solved by clever scoring games or color-coded severity systems that make you feel informed but never reduce the noise. Cough, ASPM, cough. Those are approaches born from tooling that cannot actually verify intent or behavior. They are trying to manage the symptom instead of curing the disease.

The future of AppSec is verification first. It is understanding how the application behaves, what the code intends to do, and whether an issue is realistically exploitable in the context of your system. If a finding cannot survive that kind of scrutiny, it should never hit a developer’s screen in the first place. AppSec teams lose credibility when they slow down development to investigate these smoke signals.

DryRun Security is not perfect. Nobody in security is. But we do something that sets us apart. We set a high threshold for our exploitability agent to greenlight a finding. Under that threshold, the issue gets bounced.

Right now our verification and exploitability subagents throw out 90 to 95 percent of potential findings before they ever make it to you. 

That is not marketing polish. That is the real percentage of noise we eliminate because the issues are not truly exploitable.

And here is the impact: 

  • When developers see a DryRun Security result, they have good reason to trust it. 
  • When AppSec teams review findings, they are not fighting a security ghost. 
  • When security leaders look at trends, they are not drowning in false positives that never mattered. 

You finally escape the classic whack-a-mole lifestyle that SAST has forced on teams for a decade.

Exploitability is the advantage. It is why DryRun Security keeps winning. It is why teams adopt us after comparing us directly to the tools they assumed were the new standard. It is why developers actually use us. 

Because accuracy is not about finding the most issues. It is about finding the issues that matter.

If you want to see this in action on your own codebase, grab 15 minutes with one of our AppSec experts. We will show you what exploitability looks like in real life, and you will understand instantly why this changes everything.

Let’s go.