1. A method of characterizing vulnerabilities of an application source code, comprising one or more computer processors performing steps including: traversing a representation of the application source code; generating a signature of a potential vulnerability of the application source code; and determining characteristics of the potential vulnerability based on a correlation between the generated signature of the potential vulnerability and previously stored signatures of potential vulnerabilities.