Secure Code Generation at Scale with Reflexion
2511.03898v1
cs.CR, cs.AI, cs.CE, cs.SE
2025-11-08
Авторы:
Arup Datta, Ahmed Aljohani, Hyunsook Do
Abstract
Large language models (LLMs) are now widely used to draft and refactor code,
but code that works is not necessarily secure. We evaluate secure code
generation using the Instruct Prime, which eliminated compliance-required
prompts and cue contamination, and evaluate five instruction-tuned code LLMs
using a zero-shot baseline and a three-round reflexion prompting approach.
Security is measured using the Insecure Code Detector (ICD), and results are
reported by measuring Repair, Regression, and NetGain metrics, considering the
programming language and CWE family. Our findings show that insecurity remains
common at the first round: roughly 25-33% of programs are insecure at a
zero-shot baseline (t0 ). Weak cryptography/config-dependent bugs are the
hardest to avoid while templated ones like XSS, code injection, and hard-coded
secrets are handled more reliably. Python yields the highest secure rates; C
and C# are the lowest, with Java, JS, PHP, and C++ in the middle. Reflexion
prompting improves security for all models, improving average accuracy from
70.74% at t0 to 79.43% at t3 , with the largest gains in the first round
followed by diminishing returns. The trends with Repair, Regression, and
NetGain metrics show that applying one to two rounds produces most of the
benefits. A replication package is available at
https://doi.org/10.5281/zenodo.17065846.