atlas

Research map / Large language models / Agents, code and math

IRIS: LLM-Assisted Static Analysis for Detecting Security Vulnerabilities

ICLR 2025 · Large language models › Agents, code and math · approach: Execution-based code verification · 17 citations (OpenAlex)

Read the paperCheck your idea against 108,967 papers

AI-extracted summary. Written by AI from the paper's full text. Numbers and claims can be wrong or missing context, so check the paper before you cite or build on it.

Introduces IRIS, a neuro-symbolic system that uses LLMs to infer taint specifications and filter false positives on top of CodeQL for whole-repository Java vulnerability detection, evaluated on a new 120-vulnerability benchmark CWE-Bench-Java.

Problem

Static taint analysis for security vulnerabilities depends on manually curated third-party API specifications and produces many false positives, while LLMs alone cannot reason over whole repositories.

Approach

Combine LLM-inferred CWE-specific source/sink specifications (fed into CodeQL as custom queries) with LLM-based contextual classification of each detected dataflow path to remove false positives, enabling whole-project vulnerability detection.

Key results

Measured effects reported in the paper

What was changedWhereMeasuredEffect
Combine CodeQL static taint analysis with LLM-inferred specifications and GPT-4 contextual analysisCodeQL · CWE-Bench-Java#Detected: 27 -> 55Helped
Combine CodeQL static taint analysis with LLM-inferred specifications and GPT-4 contextual analysisCodeQL · CWE-Bench-JavaAvg FDR (%): 90.03 -> 84.82Helped
Combine CodeQL static taint analysis with LLM-inferred specifications and GPT-4 contextual analysisCodeQL · CWE-Bench-JavaAvg F1 Score: 0.076 -> 0.177Helped
Use IRIS with GPT-3.5 instead of CodeQL aloneCodeQL · CWE-Bench-JavaAvg FDR (%): 90.03 -> 90.42Hurt
Use IRIS with Llama 3 8B instead of CodeQL aloneCodeQL · CWE-Bench-JavaAvg F1 Score: 0.076 -> 0.058Hurt
Use IRIS with Llama 3 70B instead of CodeQL aloneCodeQL · CWE-Bench-Java#Detected: 27 -> 54Helped
Use IRIS with Qwen-2.5-Coder 32B instead of CodeQL aloneCodeQL · CWE-Bench-Java#Detected: 27 -> 47Helped
Use IRIS with Gemma-2 27B instead of CodeQL aloneCodeQL · CWE-Bench-Java#Detected: 27 -> 45Helped
Use IRIS with DeepSeekCoder 7B instead of CodeQL aloneCodeQL · CWE-Bench-Java#Detected: 27 -> 52Helped
Add LLM-inferred source specifications (ablation)IRIS with GPT-4 · CWE-Bench-Java#DetectedHelped
Add LLM-inferred sink specifications (ablation)IRIS with GPT-4 · CWE-Bench-Java#DetectedHelped
Add contextual analysis to filter false-positive paths (ablation)IRIS with GPT-4, GPT-3.5, or Llama 3 70B · CWE-Bench-JavaAvg F1 ScoreHelped

Surprising findings

Limitations

Experimental setup

Datasets: GitHub Advisory database CWE-Bench-Java

Benchmarks: CWE-Bench-Java

Metrics: number of vulnerabilities detected average false discovery rate average F1 detection rate

Baselines: CodeQL Facebook Infer SpotBugs Snyk

Builds on: CodeQL MERLIN Seldon

Closest papers by meaning

Writing a paper in this area? scime draft is a free LaTeX editor with AI included, real-time co-authors and a check of your references and venue rules before you submit. It also imports OpenAI Prism projects.

Open scime draft

Get the next scime Dispatch and a monthly field update

Free. We send a confirmation link first; every email has a one-click unsubscribe. Privacy