Content and location

The fluentTQL catalog is a set of Java applications with known vulnerabilities, tests that demonstrate how the vulnerabilities can occur, Javadoc, and fluentTQL specifications for those vulnerabilities. The Java applications are created from code examples from several sources, like the OWASP Benchmark and MITRE database for Common Weakness Enumerations, which is documented in the Javadoc.

The implementation is located at fluenttql.catalog. This src folder in this repository contains the Java source files and the tests. The Javadoc is in the docs folder, whereas the fluentTQL specifications are in the folder specification.

Vulnerabilities

Vulnerability type CWE #flows #sources #sanitizers #requiredPropagators #sinks Total
SQL injection 89 3 13 3 6 10 32
XPath 634 1 12 1 0 12 25
Command injection 77 1 12 1   1 15
XML injection 91 1 12 1 1 4 17
LDAP injection 90 1 12 1 0 8 21
Cross-site scripting 79 2 13 1 1 3 18
Open redirect 601 2 13 1 0 2 16
NoSQL injection 943 2 5 2 3 2 12
Trust boundary violation 501 1 12 1 0 1 15
Path traversal 23 2 12 1 1 2 16
Log injection 117 2 12 1 1 4 18
Total (unique)   18 46 14 13 49 122

SANS Top 25 vulnerabilities

The following table shows how many of the top 25 vulnerabilites can be statically detected with taint analysis and how many of them can be expressed in fluentTQL.

CWE Description Taint-style Expressible with fluentTQL
79 Cross-site Scripting yes yes
119 Improper Restriction of Operations within the Bounds of a Memory Buffer yes no
20 Improper Input Validation yes yes
200 Information Exposure yes yes
125 Out-of-bounds Read no no
89 SQL Injection yes yes
416 Use After Free no no
190 Integer Overflow or Wraparound no no
352 Cross-Site Request Forgery (CSRF) yes* yes
22 Improper Limitation of a Pathname to a Restricted Directory yes yes
78 Improper Neutralization of Special Elements used in an OS Command yes yes
787 Out-of-bounds Write yes no
287 Improper Authentication yes* yes
476 NULL Pointer Dereference yes no
732 Incorrect Permission Assignment for Critical Resource no no
434 Unrestricted Upload of File with Dangerous Type yes yes
611 Improper Restriction of XML External Entity Reference yes yes
94 Improper Control of Generation of Code yes yes
798 Use of Hard-coded Credentials yes no
400 Uncontrolled Resource Consumption no no
772 Missing Release of Resource after Effective Lifetime no no
426 Untrusted Search Path yes yes
502 Deserialization of Untrusted Data yes yes
269 Improper Privilege Management no no
295 Improper Certificate Validation no no

*this is specific to the programming language and frameworks