Please use this identifier to cite or link to this item:
https://hdl.handle.net/10216/176075| Author(s): | Pedro Jorge Mendes Jesus Landolt |
| Title: | Adversarial Attacks on Code Large Language Models Using Reinforcement Learning |
| Issue Date: | 2026-07-17 |
| Abstract: | Code review increasingly relies on LLMs to evaluate submitted code. A function that fails every deterministic unit test can still pass an LLM judge when an attacker presents it with a crafted framing that exploits reasoning weaknesses in the model, such as fabricated test output, contextual pressure, or apparent authority. Which framing strategy to apply, and how to adapt that choice across repeated attempts, remain open questions. JESTER (Judge Evaluation via Selective Tactic-based Exploit Reinforcement) treats tactic selection as a sequential decision problem. A multi-armed bandit concentrates the evaluation budget on framings that have historically caused the judge to fail, operating under fully black-box constraints. JESTER implements a four-step pipeline that separates bug generation, ground truth validation, adversarial framing, and judge evaluation into independent stages. I compare three selection policies: a random baseline, a ReAct-based reasoning selector, and a bandit selector instantiated across four algorithms (UCB1, Thompson Sampling, KL-UCB, and EXP3). I construct and publish adversarial-code-buggy, a dataset of 982 Python functions with confirmed deterministic bugs drawn from MBPP and HumanEval, filtered by a two-judge pipeline that retains only records that are genuine attack targets. I evaluate JESTER on this dataset and on the CuBERT Wrong Binary Operator corpus across four open-weight judge models. KL-UCB achieves 67.6% attack success at first attempt against the primary judge model, doubling the random baseline of 35.1%, while Prompt Injection achieves the highest single-tactic attack success rate at 62.8%. I publish the adversarial-code-buggy dataset and the JESTER codebase openly, allowing the experimental conditions to be reproduced and the tactic registry extended in future work. |
| Description: | A revisão de código recorre cada vez mais a LLMs para avaliar código submetido. Uma função que falha em todos os testes determinísticos pode ainda assim ser aprovada por um juiz LLM quando um atacante a apresenta com um enquadramento elaborado que explora vulnerabilidades de raciocínio do modelo, como saídas fabricadas, pressão contextual ou autoridade aparente. Que estratégia de enquadramento aplicar, e como adaptar essa escolha ao longo de tentativas repetidas, são questões em aberto. O JESTER (Judge Evaluation via Selective Tactic-based Exploit Reinforcement) aborda esta lacuna tratando a seleção de táticas como um problema de decisão sequencial. Um algoritmo multi-armed bandit concentra o orçamento de avaliação nos enquadramentos que historicamente induziram mais erros no juiz, sob restrições de acesso estritamente black-box. O JESTER implementa um pipeline de quatro etapas que separa a geração de código defeituoso, a validação por testes determinísticos, o enquadramento adversarial e a avaliação pelo juiz. Comparo três políticas de seleção: uma baseline aleatória, um seletor baseado em raciocínio ReAct, e um seletor bandit instanciado com quatro algoritmos (UCB1, Thompson Sampling, KL-UCB e EXP3). Construo e publico o adversarial-code-buggy, um conjunto de dados com 982 funções Python com erros determinísticos confirmados, extraídas do MBPP e do HumanEval, e filtradas por um pipeline de dois juízes que retém apenas registos que constituem alvos de ataque genuínos. Avalio o JESTER neste conjunto de dados e no corpus CuBERT Wrong Binary Operator, com um atacante fixo e quatro modelos juiz de código aberto. O KL-UCB atinge 67,6% de taxa de sucesso de ataque na primeira tentativa contra o modelo juiz principal, duplicando a baseline aleatória de 35,1%, enquanto a tática Prompt Injection atinge a maior taxa de sucesso por tática isolada, com 62,8%. Publico o conjunto de dados adversarial-code-buggy e o código do JESTER abertamente, permitindo que as condições experimentais sejam reproduzidas e o registo de táticas alargado em trabalho futuro. |
| Subject: | Engenharia electrotécnica, electrónica e informática Electrical engineering, Electronic engineering, Information engineering |
| Scientific areas: | Ciências da engenharia e tecnologias::Engenharia electrotécnica, electrónica e informática Engineering and technology::Electrical engineering, Electronic engineering, Information engineering |
| URI: | https://hdl.handle.net/10216/176075 |
| Document Type: | Dissertação |
| Rights: | openAccess |
| License: | https://creativecommons.org/licenses/by/4.0/ |
| Appears in Collections: | FEUP - Dissertação |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| 787332.pdf | Adversarial Attacks on Code Large Language Models Using Reinforcement Learning | 2.63 MB | Adobe PDF | ![]() View/Open |
This item is licensed under a Creative Commons License
