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
February 17, 2026

Welcoming Andrew Peterson to the DryRun Security Board

DryRun Security welcomes Andrew Peterson to its board, bringing proven category-defining leadership and a culture of meaningful progress to help guide the company through the AI-driven transformation of application security.

A blog from James Wickett, Co-founder and CEO of DryRun Security.

In 2014, I joined Signal Sciences as part of the early engineering team. It was an incredibly exciting time for me as it felt less like joining a company and more like attempting an overhaul of the appsec industry. As the team worked remote and gathered every few months in Andrew's apartment in the early days, we were trying to reconcile two startup realities: the blank canvas of what the product could be and the existential risks that come with being a small team.

During that season, Andrew would regularly tell the team, “Make meaningful progress today.” It was a simple phrase, but it carried weight. Startups are overwhelming by nature. Andrew’s framing was not about heroic sprints or dramatic pivots. It was about the steady, daily advancement of meaningful progress. That rhythm shaped how we worked at Signal Sciences, and in many ways it has shaped how we build at DryRun Security.

I didn’t know Andrew particularly well before joining Signal Sciences, but I knew the other co-founders, Nick Galbreath and Zane Lackey from industry events like DevOps Days, AppSecUSA, and through an intro from the now-infamous Gene Kim. Over time, as I got to know Andrew, I came to appreciate something that is far rarer than it should be in leadership: he leads through relationship. I was a remote employee for all of my time there, and whenever I flew in for company meetings, Andrew would find time to take a walk with me to check in and ask how I was really doing. 

A candid photo of Andrew leading a Signal Sciences meeting in 2016 photo credit: me.

What struck me most was that this did not change as the company grew. As fundraising intensified, as the sales organization expanded, as the product matured, Andrew grew as a leader, yet he did not outgrow his proximity to the team. 

There are also aspects of company-building that employees do not fully see until they attempt it themselves. When I began to consider founding DryRun Security, Andrew was one of the first people I called. He was candid about the pressures founders carry and the tradeoffs that rarely make it into company lore. We also talked about the weight of the responsibility and his transparency was invaluable. In DryRun’s earliest months, when we were wrestling with the inevitable doubts that surface when something is still new, Andrew coached me through it. 

Beyond leadership and resilience, Andrew also shaped culture in ways that are easy to overlook in hindsight. From early on, Signal Sciences embraced a design-forward mindset. We invested in design talent earlier than many security companies would have. Security didn’t have to look like legacy software. It could feel modern and intentional and that design-first orientation communicated confidence to customers long before we had scale.

Culture, however, was not confined to our product. When the team gathered, we did not simply book conference rooms and move through agendas. We always took one evening to cook together. In Andrew’s apartment or in rented Airbnbs during offsites, we would prepare meals as a team. It felt less like coworkers performing team-building exercises and more like a family sharing a table. Those evenings built trust in ways that formal planning sessions never could. (Also, because I hail from the great state of Texas, I was always charged with preparing the meat, a task that got harder and harder to scale as we grew!)

When I started DryRun Security with Ken Johnson, I carried those lessons with me. The commitment to make meaningful progress each day. The importance of thoughtful design. The conviction that serious customers sharpen you. From the beginning, we pursued customers who would push us to be better. We engaged organizations like BigCommerce, Gusto, Tines, and more because they represent the kind of partners who demand excellence. That discipline, I believe, traces back to what I observed at Signal Sciences: credibility is earned through real adoption.

Andrew’s appointment to the DryRun Security board comes at a moment when the industry itself is undergoing profound change. A decade ago, modernizing web application and API security felt transformative. Today, AI agents are writing and reviewing code and development velocity is accelerating in ways that strain traditional security processes. 

Questions that did not exist ten years ago are now central to the application security program leader: 

  • How do I manage shadow AI coding?
  • How can security move at the speed of AI-native developers?
  • Can I prevent agentic application vulnerabilities?
  • How can I gain visibility into engineering?
  • How can I assess risk in an environment where traditional artifacts such as SBOMs are no longer sufficient?

DryRun Security was built with today’s inflection point in mind. Our ambition is not to graft AI onto legacy workflows but to rethink the application security program for the AI-era. We describe this as code security intelligence: contextual reasoning about real risk, policy-driven visibility into both human and autonomous code changes, and a system that scales with modern development practices. 

Andrew understands what it means to help define a category at precisely the moment the market is ready for it. He has navigated that terrain before, both as a founder and as an investor.

From the outside, his joining the board may be interpreted as a signal that DryRun Security is entering its next phase of maturity. That interpretation is fair, yet, from my vantage point, this step is less about signaling and more about continuity. Andrew has already been part of the DryRun story and this formalizes his role to reflect the depth of trust and alignment that already existed.

There is also something meaningful about the continuity of a shared history. Other former Signal Sciences teammates, including Chris Casey and Andrea Swaney, are part of the broader DryRun story. Shared history does not guarantee future success, but it does provide a common language for ambition and culture. We have seen what product-market fit feels like in security and we have seen what scaling requires. 

The coming years will define how application security adapts to AI-driven development. The pace of change is unlikely to slow. Organizations will either evolve their security mental models or struggle under the weight of them. DryRun Security is committed to helping application security teams navigate that shift with clarity and intelligence.

Personally, I am grateful for Andrew and that we are welcoming him to the board. We are stepping into the future with a commitment to make meaningful progress today.