Splash finds and locates security bugs in ai generated code
SPLASH: Contrastive Audit Pressure for Detecting and Localizing Security Hallucinations in Generated Code
Cryptography and SecurityMachine LearningSoftware Engineering
Summary
Large language models often create computer programs that work but have hidden security flaws, known as security hallucinations. The authors present SPLASH, a tool that spots and locates these flaws by comparing the likelihood of code under security-focused versus style-focused reviews. SPLASH works without needing to retrain the code generator or use specific security rules. It successfully picks secure code 74% of the time and identifies vulnerable lines first more than half the time.
What this means in practice
- •For software security teams: Detect and localize hidden security flaws in AI-generated code without retraining models or relying on specific vulnerability rules.
- •For code quality assurance teams: Automatically choose more secure candidate programs from multiple AI-generated options by applying audit pressure measurements.
Authors
Mirza Masfiqur Rahman, MD Ajwad Akil, Imtiaz Karim, Ashish Kundu, Ramana Kompella, Elisa Bertino
Abstract
Code generated by large language models often passes every functional test while remaining insecure. These security hallucinations are common, written with high confidence, and repeated across samples, so neither the generator's own uncertainty nor static analyzers reliably catch them. We introduce SPLASH, which is guided by a new measure called audit pressure. It contrasts teacher-forced log-probabilities for the generated program under a security review and a style review. Aggregated to statements and programs, and grounded in a probabilistic model of competing edits, audit pressure allows SPLASH to choose the secure program among a model's candidate programs and locate the vulnerable statement, with no model training, CWE-specific rules, or internal access to the generating model. On 63,684 programs generated by 12 models for 899 tasks, SPLASH picks secure code in 74% of cases, places the vulnerable statement first in 58% of insecure programs, and chooses better than a frontier LLM judge.