The SAMATE Project Department of Homeland Security

Source Code Security Analyzers

From SAMATE

For our purposes, a source code security analyzer

  1. examines source code to
  2. detect and report weaknesses that can lead to security vulnerabilities.

They are one of the last lines of defense to eliminate software vulnerabilities during development or after deployment. A Source Code Security Analysis Tool Functional Specification is available.

Byte Code Scanners and Binary Code Scanners have similarities, but work at lower levels.

Some Instances

DISCLAIMER: Certain trade names and company products are mentioned in the text or identified. In no case does such identification imply recommendation or endorsement by the National Institute of Standards and Technology (NIST), nor does it imply that the products are necessarily the best available for the purpose.

By selecting almost any of these links, you will be leaving NIST webspace. We provide these links because they may have information of interest to you. No inferences should be drawn because some sites are referenced, or not, from this page. There may be other web sites that are more appropriate for your purpose. NIST does not necessarily endorse the views expressed, or concur with the assertions presented on these sites. Further, NIST does not endorse any commercial products that may be mentioned on these sites.

Please contact us if you think something should be included. If it has all the characteristics of the tool, techniques, etc., we will be happy to add it. You can contact us at .

ToolLanguage(s)Avail. CCR Finds or Checks for       as of      
ABASH Bash free String expansion errors, option insertion errors, and other weaknesses that may lead to security vulnerabilities. Mar 2012
ApexSec Security Console PL/SQL(Oracle Apex) Recx SQL Injection, Cross-Site Scripting, Access Control and Configuration issues within an Apex application Mar 2010
Astrée C AbsInt undefined code constructs and run-time errors, e.g., out-of-bounds array indexing or arithmetic overflow. Jun 2009
BOON C free integer range analysis determines if an array can be indexed outside its bounds Feb 2005
bugScout Java, C#, Visual Basic, ASP, php buguroo multiple security failures, such as deprecated libraries errors, vulnerable functions, sensitive information within the source code comments, etc. March 2012
C/C++test®C, C++ Parasoft defects such as memory leaks, buffer issues, security issues and arithmetic issues, plus SQL injection, cross-site scripting, exposure of sensitive data and other potential issues Dec 2013
dotTEST™C#, VB.NET, MC++
Jtest®Java
HP Code Advisor (cadvise) C, C++ HP many lint-like checks plus memory leak, potential null pointer dereference, tainted data for file paths, and many others Dec 2013
Checkmarx Java, C#/.NET, PHP, C, C++, Visual Basic 6.0, VB.NET, Flash, APEX, Ruby, JavaScript, ASP, Android, Objective C, Perl Checkmarx Cover all known OWASP and SANS vulnerabilities and comply with PCI and other standards. Includes a query language that enables infinite customization and detection accuracy with virtually zero false positives. Nov 2012
Clang Static Analyzer C, Objective-C free Resports dead stores, memory leaks, null pointer deref, and more. Uses source annotations like "nonnull". Aug 2010
Closure Compiler JavaScript free Removes dead code, checks syntax, variable references and types and warns about common JavaScript pitfalls. Feb 2014
CodeCenter C ICS incorrect pointer values, illegal array indices, bad function arguments, type mismatches, and uninitialized variables Apr 2011
CodePeer Ada AdaCore detects uninitialized data, pointer misuse, buffer overflow, numeric overflow, division by zero, dead code, concurrency faults (race conditions), unused variables, etc. Apr 2010
CodeSecure ASP.NET, C#, PHP, Java, JSP, VB.NET, others Armorize Technologies XSS, SQL Injection, Command Injection, tainted data flow, etc. Aug 2012
CodeSonar C and C++ GrammaTech null-pointer dereferences, divide-by-zeros, buffer over- and underruns Nov 2012
Coverity SAVE™ C, C++, Java, C# Coverity flaws and security vulnerabilities - reduces false positives while minimizing the likelihood of false negatives. Apr 2011
Cppcheck C, C++ free pointer to a variable that goes out of scope, bounds, classes (missing constructors, unused private functions, etc.), exception safety, memory leaks, invalid STL usage, overlapping data in sprintf, division by zero, null pointer dereference, unused struct member, passing parameter by value, etc. Aims for no false positives. Feb 2010
CQual C free uses type qualifiers to perform a taint analysis, which detects format string vulnerabilities Feb 2005
Csur C free cryptographic protocol-related vulnerabilities Apr 2006
DoubleCheck C, C++ Green Hills Software like buffer overflows, resource leaks, invalid pointer references, and violations of ... MISRA Jul 2007
FindBugs Java, Groovy, Scala free Null pointer deferences, synchronization errors, vulnerabilities to malicious code, etc. It can be used to analyse any JVM languages Sept 2012
FindSecurityBugs Java, Groovy, Scala free Extends FindBugs with more security detectors (Command Injection, XPath Injection, SQL/HQL Injection, Cryptography weakness and more).  Sept 2012
Flawfinder C/C++ free uses of risky functions, buffer overflow (strcpy()), format string ([v][f]printf()), race conditions (access(), chown(), and mktemp()), shell metacharacters (exec()), and poor random numbers (random()). 2005
Fluid Java call "analysis based verification" for attributes such as race conditions, thread policy, and object access with no false negatives Oct 2005
Goanna C, C++ Red Lizard Software memory corruptions, resource leaks, buffer overruns, null pointer dereferences, C++ hazards, ... Aug 2009
HP QAInspect C#, Visual Basic, JavaScript, VB Script Fortify application vulnerabilities Apr 2011
Insight C, C++, Java, and C# Klocwork Buffer overflow, un-validated user input, SQL injection, path injection, file injection, cross-site scripting, information leakage, weak encryption and vulnerable coding practices, as well as quality, reliability and maintainability issues. May 2011
Jlint Java free bugs, inconsistencies, and synchronization problems Aug 2012
LAPSE Java free helps audit Java J2EE applications for common types of security vulnerabilities found in Web applications. Sep 2006
ObjectCenter C/C++ ICS "run-time and static error detection ... more than 250 types of errors, including more than 80 run-time errors ... inter-module inconsistencies" Apr 2011
Parfait C/C++ ? Oracle proprietary Apr 2013
PLSQLScanner 2008 PLSQL Red-Database-Security SQL Injection, hardcoded passwords, Cross-site scripting (XSS), etc. Jun 2008
PHP-Sat PHP free static analysis tool, XSS, etc. description Sep 2006
Pixy PHP free static analysis tool, only detect XSS and SQL Injection Jun 2007
PMD Java free questionable constructs, dead code, duplicate code Feb 2006
PolySpace Ada, C, C++ MathWorks run-time errors, unreachable code Sep 2013
PREfix and PREfast C, C++ Microsoft proprietary Feb 2006
pylint Python free Checks for errors and looks for bad code smells. Feb 2014
QA-C, QA-C++, QA-J C, C++, Java Programming Research A suite of static analysis tools, with over 1400 messages. Detects a variety of problems from undefined language features to redundant or unreachable code. May 2009
Qualitychecker VB6, Java, C# Qualitychecker static analysis tool Sep 2007
Rational AppScan Source Edition C, C++, Java, JSP, ASP.NET, VB.NET, C# IBM (formerly Ounce Labs) coding errors, security vulnerabilities, design flaws, policy violations and offers remediation Aug 2010
RATS (Rough Auditing Tool for Security) C, C++, Perl, PHP, Python free potential security risks Sep 2013
Resource Standard Metrics (RSM) C, C++, C#, and Java M Squared Technologies Scan for 50 readability or portability problems or questionable constructs, e.g. different number of "new" and "delete" key words or an assignment operator (=) in a conditional (if). Apr 2011
Smatch C free simple scripts look for problems in simplified representation of code. primarily for Linux kernel code Apr 2006
SCA ASP.NET, C, C++, C# and other .NET languages, COBOL, Java, JavaScript/AJAX, JSP, PHP, PL/SQL, Python, T-SQL, XML, and others Fortify Software security vulnerabilities, tainted data flow, etc. "more than 470 types of software security vulnerabilities" Aug 2012
SPARK tool set SPARK (Ada subset) Altran ambiguous constructs, data- and information-flow errors, any property expressible in first-order logic (Examiner, Simplifier, and SPADE) Aug 2006
Splint C free security vulnerabilities and coding mistakes. with annotations, it performs stronger checks 2005
TBSecure C, C++ LDRA Software Technology The TBsecure plug-in to TBvision comes complete with the Carnegie Mellon Software Engineering Institute (SEI) CERT C secure coding standard. TBsecure identifies security vulnerabilities and enables implementation of the just released CERT C Secure Coding Standard version 1.0. Dec 2008
UNO C free uninitialized variables, null-pointers, and out-of-bounds array indexing and "allows for the specification and checking of a broad range of user-defined properties". aims for a very low false alarm rate. Oct 2007
PVS-Studio C++ OOO "Program Verification Systems" (Co LTD) PVS-Studio is a static analyer that detects errors in source code of C/C++/C++0x applitations. There are 3 sets of rules included in PVS-Studio: (1) Diagnosis of 64-bit errors (Viva64) (2) Diagnosis of parallel errors (VivaMP) (3) General-purpose diagnosis Jan 2010
xg++ C unk kernel and device driver vulnerabilities in Linux and OpenBSD through range checking, etc. Feb 2005
Yasca Java, C/C++, JavaScript, ASP, ColdFusion, PHP, COBOL, .NET, etc. free a "glorified grep" and aggregator of other tools, including: FindBugs, PMD, JLint, JavaScript Lint, PHPLint, CppCheck, ClamAV, RATS, and Pixy. "It is designed to be very flexible and easy to extend. ... writing a new rule is as easy as coming up with a regular expression" Mar 2010

Other Lists