Expensive Tasks in CodeQL #9358
Replies: 1 comment 2 replies
-
This is a very broad question (and it depends on the definition of "expensive"), but yes, global data flow and taint tracking is certainly one of the more expensive parts of the analysis. Moreover, each queries essentially calculates its own variant of global data flow (since the sources and sinks and additional taint steps may be specific to that query). Another part that is expensive (and disjoint from global data flow) are the queries that have to do with detecting ReDoS attacks (e.g. for JavaScript, Python, and Ruby). Finally, although a single global data flow may be expensive, in many cases this is dwarfed by some of the shared calculations that take place. For interpreted languages like Python and JavaScript, this includes calculating the call graph (which is then shared by all global data flow queries). |
Beta Was this translation helpful? Give feedback.
-
What are the most expensive tasks (queries/vulnerabilities/etc.) that CodeQL deals with? Global taint tracking is one example. Are there more?
Beta Was this translation helpful? Give feedback.
All reactions