Scan your code for security vulnerabilities.
Scan your application source code for actionable vulnerabilities, validate flaws with deterministic AST taint tracking, and resolve verified risks with review-ready remediation patches.
CWE-89: SQL Injection via Parameter
Will this work with my code?
Cyfendo is engineered specifically for application source-code security. It supports modern programming languages, flexible code submission options, and requires no heavy runtime agents or complex pipeline changes.
Verified Supported Programming Languages
3 Ways to Submit or Connect Code
Web Folder or Zip Upload
Drag and drop your project directory or upload a .zip or .tar.gz archive directly in your browser. Dependencies (node_modules/, vendor/, .venv/) and build artifacts are stripped automatically before scanning.
Git Repository (HTTPS)
Connect repositories from GitHub, GitLab, Bitbucket, Azure DevOps, or custom Git servers via HTTPS. Supports specific branch targets, subdirectory scoping (e.g. apps/backend), and Personal Access Token (PAT) authentication for private repos.
Cyfendo CLI (Terminal & CI/CD)
Run cyfendo scan . from your terminal or CI/CD pipeline. Includes SARIF export (--sarif) for GitHub Security tabs and optional Cyfendo Private Scan (--private) mode for zero source code egress on local hardware.
Create Free Account
Sign up in 30 seconds with your work email. No credit card, phone number, or billing information is required to access your 10,000 protected LOC allowance.
Connect Your Codebase
Choose your preferred method: drag and drop a folder, provide a Git repository URL, or execute a one-line scan command in your local terminal.
Review Findings & Fixes
Inspect prioritized vulnerability findings, trace complete source-to-sink evidence, and evaluate review-ready proposed code patches before applying them.
What you receive with every scan
Cyfendo focuses strictly on actionable source-code security. We help engineering teams identify real risks, understand why they matter, and resolve them efficiently without drowning in unverified alerts.
Find: Source Code Flaws
Identify potential vulnerabilities in application source code using Abstract Syntax Tree (AST) parsing and multi-file symbol indexing across your repository.
- Injection flaws: SQLi, Command Injection, LDAP, XPath
- File security: Path Traversal, Arbitrary File Read/Write
- Logic & memory: Insecure Deserialization, SSRF, Broken Auth
- Cryptographic weaknesses & hardcoded sensitive keys
Validate: Real Evidence
Review deterministic evidence and understand why a finding matters before writing code. Reachability analysis validates whether untrusted data actually reaches execution sinks.
- Source-to-sink data-flow reachability tracing
- Adversarial verification to suppress non-exploitable dead code
- Exact file paths, line numbers, and CWE references
- Transparent notice: minimizes noise; no tool guarantees 0% false positives
Fix: Review-Ready Patches
Receive actionable remediation instructions and synthesized code diffs. Paid plans include automated patch generation, while developers always maintain 100% review authority.
- Clear remediation guidance for every discovered vulnerability
-
Unified Git diffs (
.patchformat) matching repository style - Developers review, test, and approve before merging
- Included in paid plans; sample patch evaluation on free tier
Sample finding and remediation dossier
Explore a sanitized example modeled after our OWASP Benchmark test cases. Inspect the vulnerability breakdown, the source-to-sink reachability proof, and the review-ready patch diff.
SQL Injection via Unsanitized HTTP Parameter
src/controllers/user_controller.py:16 • Common Weakness: CWE-89
Vulnerability Description: The application extracts the user_id query parameter directly from the incoming HTTP request and interpolates it into a raw SQL query string via string concatenation. An external attacker can provide crafted input containing SQL meta-characters (such as ' OR 1=1 --) to bypass access controls, extract database records, or execute arbitrary database commands.
Deterministic Source-to-Sink Evidence Path
Cyfendo doesn't flag potential findings based on pattern-matching keywords alone. It traces the Abstract Syntax Tree (AST) to verify that unvalidated external input flows uninterrupted into a dangerous execution sink.
request.args.get('user_id') at line 15 receives caller-controlled input over HTTP without type coercion or regex validation.
Variable
user_id carries the tainted payload into expression "SELECT * FROM users WHERE id=" + user_id. No sanitization routines detected in the call chain.
db_cursor.execute(query) at line 17 executes the tainted string against the SQL engine. Static reachability confirmed from HTTP input to database sink without runtime validation or dynamic exploit execution.
Confidentiality Notice: This evidence trace illustrates a sanitized synthetic test case. In production scans, customer proprietary code and findings remain strictly confidential and partitioned in your workspace.
Proposed Code Remediation Patch
The proposed patch replaces dynamic string concatenation with database driver parameterized placeholders (%s), separating SQL structure from user data.
Measured accuracy & code protection
We evaluate our detection accuracy on standardized security benchmarks and enforce strict data privacy protections for your proprietary software.
OWASP Benchmark Java v1.2
2,740 Standardized Test Cases • August 2026 EvaluationDetected 1,377 of 1,415 actual true vulnerabilities with 88.61% precision. Category-averaged Youden's J score measured at 83.01% across 11 OWASP vulnerability categories.
OWASP Benchmark Python v0.1
1,230 Standardized Test Cases • Preliminary ReleaseIdentified 407 of 452 vulnerable cases with 93.78% precision and 96.53% specificity on negative controls (751 of 778 safe benchmark cases correctly left unflagged).
Strict Source Code Privacy & Data Security Commitments
Zero Model Training
Your source code is never used to train, retrain, or fine-tune public or shared AI models. Governed by enterprise Zero Data Retention (ZDR) agreements.
Ephemeral Isolation
Analysis sandboxes are spun up on demand in isolated execution namespaces (gVisor/microVMs) and wiped immediately after scan completion.
TLS 1.3 & AES-256
All data in transit is encrypted using modern TLS 1.3 with Perfect Forward Secrecy. Stored finding summaries are encrypted at rest with AES-256.
Local Zero-Egress CLI
With Cyfendo CLI Private Scan (cyfendo scan --private .), AST parsing runs locally with zero code sent to Cyfendo. When using local models (Ollama/vLLM), zero code leaves your infrastructure. External model APIs connect directly under customer enterprise terms.
Free evaluation and transparent paid plans
Cyfendo prices transparently based on protected Lines of Code (LOC) and monthly scan allowances—not seat licenses or artificial per-finding fees.
How Protected LOC is Calculated
Protected LOC measures the active application source code volume in your workspace. You only pay for proprietary code, never for third-party packages or generated output.
node_modules/, vendor/, .venv/, site-packages/).
• Excluded Artifacts: Minified bundles (.min.js), build/dist output (build/, dist/, target/), test mock data, and compiled binaries.
If an uploaded codebase exceeds the Free tier limit (10,000 LOC), it is safely staged as a pending upload. We calculate your exact LOC count and present clear options: upgrade to a tier with sufficient capacity (e.g. Starter at $99/mo for up to 100K LOC), or select a specific subdirectory or module to scan. Your code is never deleted or partially run without your consent.
Free
Evaluate on your codebase
- 10,000 protected LOC
- 5 scans per month
- 1 protected project
- Actionable finding details
- Limited sample patch evaluation
- No credit card required
Starter
Lowest-friction paid entry
- 100,000 protected LOC
- 100 scans per month
- Unlimited projects & members
- Full review-ready patches
- CLI & Git repository support
Growth
For growing engineering teams
- 500,000 protected LOC
- 300 scans per month
- Unlimited projects & members
- Full review-ready patches
- Priority scan queue
Scale
Multi-repo architectures
- 2,000,000 protected LOC
- 1,000 scans per month
- Add-on units allowed ($200/mo)
- Full review-ready patches
- Priority technical support
Answers to common technical questions
Everything you need to know about supported languages, protected LOC accounting, code privacy, and patch handling.
Cyfendo supports source-code security scanning for Python, JavaScript, TypeScript, Go, Java, Rust, C, C++, PHP, Ruby, C#, Swift, Kotlin, Scala, Shell/Bash, and SQL. Code can be submitted via:
- Browser Upload: Drag-and-drop project folders or upload
.zipor.tar.gzarchives. - Git Repository Connection: HTTPS clone for GitHub, GitLab, Bitbucket, Azure DevOps, or custom Git servers (supports public or private repos with Personal Access Tokens).
- Cyfendo CLI: Run
cyfendo scan .from your terminal or CI/CD pipelines on macOS and Linux.
The Free tier includes up to 10,000 protected Lines of Code (LOC) and 5 security scans per month for 1 protected project. Registration requires only your work email—no credit card or billing details are required.
Protected LOC represents active application source code lines. We count executable statements, logic files, and configurations. We automatically exclude blank lines, whitespace, and comments (single-line, block, docstrings). In addition, dependencies (node_modules/, vendor/, .venv/), minified bundles (.min.js), build/dist directories, test fixtures, and binaries are excluded automatically.
When an upload exceeds the 10,000 protected LOC limit, the code is safely staged as a pending upload in your workspace. Cyfendo reports your exact calculated LOC count and presents clear options: upgrade to a tier with sufficient capacity (starting with Starter at $99/mo for up to 100K LOC), or select a smaller subdirectory to scan. Your code is not discarded or partially scanned without your direction.
Yes. Like all automated application security testing tools, false positives can still occur. Cyfendo is designed to minimize triage noise by validating AST data-flow reachability from sources to sensitive sinks and testing candidate flaws in isolated sandboxes. Every finding provides complete source-to-sink proof so your team can verify findings quickly.
For cloud scans, your source code is processed inside ephemeral, isolated sandboxes (gVisor/microVMs) that are created on demand and wiped immediately upon scan completion. Under our enterprise Zero Data Retention (ZDR) policy, customer code is never used to train or fine-tune public or shared AI models. All data in transit is encrypted using TLS 1.3, and findings are stored using AES-256 encryption.
For strict data sovereignty, the Cyfendo CLI Private Scan mode (cyfendo scan --private .) performs AST parsing and rule evaluation locally with zero code sent to Cyfendo. When combined with local inference (Ollama/vLLM), zero code leaves your environment. If you configure external model APIs, the CLI communicates directly with your provider under your enterprise terms.
The Free plan includes full finding details, severity rankings, evidence paths, and actionable remediation instructions, along with limited sample patch evaluation. Automated review-ready patch generation across all detected findings is included in paid plans (Starter, Growth, and Scale).
No. Cyfendo never automatically commits or merges code into your repositories. Generated patches are presented as unified git diffs for developer review, testing, and approval. Developers always maintain full authority over code changes.
Scan your code for security vulnerabilities.
Discover real flaws in your source code, verify reachability with source-to-sink evidence, and evaluate review-ready remediation guidance.
Start Free