Beware of the Unexpected: Bimodal Taint Analysis
Not on the map. Why?
Abstract (arXiv)
Static analysis is a powerful tool for detecting security vulnerabilities and other programming problems. Global taint tracking, in particular, can spot vulnerabilities arising from complicated data flow across multiple functions. However, precisely identifying which flows are problematic is challenging, and sometimes depends on factors beyond the reach of pure program analysis, such as conventions and informal knowledge. For example, learning that a parameter "name" of an API function "locale" ends up in a file path is surprising and potentially problematic. In contrast, it would be completely unsurprising to find that a parameter "command" passed to an API function "execaCommand" is eventually interpreted as part of an operating-system command. This paper presents Fluffy, a bimodal taint analysis that combines static analysis, which reasons about data flow, with machine learning, which probabilistically determines which flows are potentially problematic. The key idea is to let machine learning models predict from natural language information involved in a taint flow, such as API names, whether the flow is expected or unexpected, and to inform developers only about the latter. We present a general framework and instantiate it with four learned models, which offer different trade-offs between the need to annotate training data and the accuracy of predictions. We implement Fluffy on top of the CodeQL analysis framework and apply it to 250K JavaScript projects. Evaluating on five common vulnerability types, we find that Fluffy achieves an F1 score of 0.85 or more on four of them across a variety of datasets.
Key facts. Cited by 5 papers in the map (data through 14 Oct 2026). First posted on arXiv 25 Jan 2023.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2024: 4; 2025: 0; 2026: 1.
5 papers.
- 2024Large Language Models for Cyber Security: A Systematic Literature Reviewcited by 68
- 2024LLMDFA: Analyzing Dataflow in Code with Large Language Modelscited by 22
- 2024Towards Reliable Evaluation of Neural Program Repair with Natural Robustness Testingcited by 5
- 2024LEGION: Harnessing Pre-trained Language Models for GitHub Topic Recommendations with Distribution-Balance Losscited by 1
- 2026ConCovUp: Effective Agent-Based Test Driver Generation for Concurrency Testingcited by 0
- 2026ConCovUp: Effective Agent-Based Test Driver Generation for Concurrency Testing10 May 2026
- 2024Large Language Models for Cyber Security: A Systematic Literature Review8 May 2024
- 2024LEGION: Harnessing Pre-trained Language Models for GitHub Topic Recommendations with Distribution-Balance Loss9 Mar 2024
- 2024Towards Reliable Evaluation of Neural Program Repair with Natural Robustness Testing19 Feb 2024
- 2024LLMDFA: Analyzing Dataflow in Code with Large Language Models16 Feb 2024