Bridging Code Property Graphs and Language Models for Program Analysis

Large Language Models (LLMs) face critical challenges when analyzing security vulnerabilities in real-world codebases: token limits prevent loading entire repositories, code embeddings fail to capture inter-procedural data flows, and LLMs struggle to generate complex static analysis queries. These limitations force existing approaches to operate on isolated code snippets, missing vulnerabilities that span multiple functions and files. We introduce codebadger, an open-source Model Context Protocol (MCP) server that integrates Joern’s Code Property Graph (CPG) engine with LLMs. Rather than requiring LLMs to generate complex CPG queries, codebadger provides high-level tools for program slicing, taint tracking, data flow analysis, and semantic code navigation, enabling targeted exploration of large codebases without exhaustive file reading. We demonstrate its effectiveness through three use cases: (1) navigating an 8,000-method codebase to audit memory safety patterns, (2) discovering and exploiting a previously unreported buffer overflow in libtiff, and (3) generating a correct patch for an integer overflow vulnerability (CVE-2025-6021) in libxml2 on the first attempt. codebadger enables LLMs to reason about code semantically across entire repositories, supporting vulnerability discovery, patching, and program comprehension at scale.

Paper

References (19)

Scroll for more · 7 remaining

Similar papers

© 2026 NYSGPT2525 LLC