16 September 2009 | 43,047 views

Flawfinder – Source Code Auditing Tool

Check For Vulnerabilities with Acunetix

Flawfinder is a program that examines source code and reports possible security weaknesses (flaws) sorted by risk level. It’s very useful for quickly finding and removing at least some potential security problems before a program is widely released to the public. It’s a static analysis source code auditing tool.

Flawfinder is specifically designed to be easy to install and use. After installing it, at a command line just type:

Flawfinder works on Unix-like systems today (it’s been tested on GNU/Linux), and it should be easy to port to Windows systems. It requires Python 1.5 or greater to run (Python 1.3 or earlier won’t work).


Flawfinder is written in Python, to simplify the task of writing and extending it. Python code is not as fast as C code, but for the task I believe it’s just fine. Flawfinder version 0.12 on a 400Mhz Pentium II system analyzed 51055 lines in 39.7 seconds, resulting in an average of 1285 analyzed lines/second. Flawfinder 1.20 and later will report their speed (in analyzed lines/second) if you’re curious.

How it works

Flawfinder works by using a built-in database of C/C++ functions with well-known problems, such as buffer overflow risks (e.g., strcpy(), strcat(), gets(), sprintf(), and the scanf() family), format string problems ([v][f]printf(), [v]snprintf(), and syslog()), race conditions (such as access(), chown(), chgrp(), chmod(), tmpfile(), tmpnam(), tempnam(), and mktemp()), potential shell metacharacter dangers (most of the exec() family, system(), popen()), and poor random number acquisition (such as random()). The good thing is that you don’t have to create this database – it comes with the tool.

Flawfinder then takes the source code text, and matches the source code text against those names, while ignoring text inside comments and strings (except for flawfinder directives). Flawfinder also knows about gettext (a common library for internationalized programs), and will treat constant strings passed through gettext as though they were constant strings; this reduces the number of false hits in internationalized programs.

You can download Flawfinder here:


Or read more here.


Recent in General Hacking:
- Kali Linux – The Most Advanced Penetration Testing Linux Distribution
- Microsoft Says You SHOULD Re-use Passwords Across Sites
- Dradis v2.9 – Information Sharing For Security Assessments

Related Posts:
- Skavenger – Source Code Auditing Tool!
- LAPSE Sourcecode Analysis for JAVA J2EE Web Applications
- SpikeSource Spike PHP Security Audit Tool

Most Read in General Hacking:
- 10 Best Security Live CD Distros (Pen-Test, Forensics & Recovery) - 1,146,273 views
- Hack Tools/Exploits - 592,667 views
- Password Cracking with Rainbowcrack and Rainbow Tables - 419,655 views

Low-cost VPS Hosting

3 Responses to “Flawfinder – Source Code Auditing Tool”

  1. d3m4s1@d0v1v0 16 September 2009 at 7:00 pm Permalink

    Another interesting tool to put in the bag.
    Finding potential buffer overflows before the program gets into production is a very critical task, it’s a shame that the programmers not always are aware of this…

  2. Andrew 16 September 2009 at 7:17 pm Permalink

    What language(s) does it scan? Can I throw any source files at it, or is it just for C/C++?

  3. Jannich Brendle 17 September 2009 at 2:21 am Permalink

    Andrew: Yes, flawfinder will only find flaws in C and C++ at the moment.