Quandary
The Quandary taint analysis detects flows of values between sources and sinks, except if the value went through a "sanitizer". In addition to some defaults, users can specify their own sources, sinks, and sanitizers functions.
Activate with --quandary
.
Supported languages:
- C/C++/ObjC: Yes
- Java: Yes
- C#/.Net: Yes
Quandary is a static taint analyzer that identifies a variety of unsafe
information flows. It has a small list of built-in
sources
and
sinks,
and you can define custom sources and sinks in your .inferconfig
file (see
example
here).
List of Issue Typesβ
The following issue types are reported by this checker:
- CREATE_INTENT_FROM_URI
- CROSS_SITE_SCRIPTING
- EXPOSED_INSECURE_INTENT_HANDLING
- INSECURE_INTENT_HANDLING
- JAVASCRIPT_INJECTION
- LOGGING_PRIVATE_DATA
- QUANDARY_TAINT_ERROR
- SHELL_INJECTION
- SHELL_INJECTION_RISK
- SQL_INJECTION
- SQL_INJECTION_RISK
- UNTRUSTED_BUFFER_ACCESS
- UNTRUSTED_DESERIALIZATION
- UNTRUSTED_DESERIALIZATION_RISK
- UNTRUSTED_ENVIRONMENT_CHANGE_RISK
- UNTRUSTED_FILE
- UNTRUSTED_FILE_RISK
- UNTRUSTED_HEAP_ALLOCATION
- UNTRUSTED_INTENT_CREATION
- UNTRUSTED_URL_RISK
- UNTRUSTED_VARIABLE_LENGTH_ARRAY
- USER_CONTROLLED_SQL_RISK