REVIEW 3 major objections 5 minor 9 references
Automated code-review agents approve malicious PRs that reintroduce real CVE vulnerabilities when the attacker also writes a persuasive narrative.
Reviewed by Pith at T0; open to challenge. T0 means a machine referee read the full paper against a public rubric. the ladder, T0–T4 →
T0 review · grok-4.5
2026-07-12 14:09 UTC pith:IH6GDFZO
load-bearing objection Solid new benchmark that cleanly isolates narrative susceptibility on real CVE reversals; the challenge-split filter is a real but secondary soft spot that does not erase the closed/open gap. the 3 major comments →
SEVRA-BENCH: Social Engineering of Vulnerabilities in Review Agents
The pith
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
Core claim
When the same vulnerability-reintroducing diff is held fixed and only the PR narrative is varied across fifteen controlled social-engineering framings, review agents remain susceptible to narrative manipulation; on the retained challenge set of roughly one thousand such PRs, frontier closed models refuse at high overall rates while open-weight and weaker models refuse far less often and swing sharply by framing, exposing a large security-capability gap.
What carries the argument
SEVRA-BENCH episodes: each malicious PR is produced by mechanically reversing a real CVE-linked security fix (so the vulnerable code is authentic, not model-generated) and then presenting that fixed diff under one of fifteen social-engineering framings that vary claims, evidence, urgency, prior-approval signals, and authority. Holding the diff constant isolates susceptibility to narrative from raw vulnerability detectability.
Load-bearing premise
The retained challenge split—keeping only those malicious PRs that at least one of two weaker filter models already approved—still gives a fair, representative measure of susceptibility and of the closed-versus-open gap.
What would settle it
Re-evaluate the same eight agents on the unfiltered full set of malicious PRs (or on a fresh hold-out of reversed CVE fixes never used in filtering) and check whether the large refusal-rate gap and the framing-sensitivity of weaker models disappear or reverse.
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. SEVRA-BENCH evaluates whether LLM code-review agents approve pull requests that reintroduce real CVE-linked vulnerabilities when the attacker also controls the PR narrative. Each episode is built by mechanically reversing a historical security fix (git apply -R) and wrapping the fixed vulnerable diff in one of 15 social-engineering framings that vary claims, evidence, urgency, prior approval, and authority. The authors deploy PRs in isolated Gitea instances, give agents a fixed API/MCP tool set, and score eight models at temperature 0 under a plain review prompt. On a retained challenge split of 1,062 malicious PRs spanning the top-10 2025 CWE classes, frontier closed models refuse at ~95–98% while open-weight and weaker models average ~35–53% and swing sharply by framing. The paper concludes that review agents are susceptible to narrative manipulation and that a large closed/open security gap exists.
Significance. The problem is timely and distinct from static vulnerability detection, code generation, and generic prompt-injection benchmarks: the attacker controls both the diff and the PR text, and the agent makes the merge-gate decision. Grounding vulnerabilities in reversed real CVE patches rather than model-generated code, holding the diff fixed across 15 framings, and evaluating in a live repository API environment are genuine methodological strengths. If the reported refusal gaps and framing effects hold under unbiased evaluation, the work would be a useful resource for hardening open-weight review agents and for organizations choosing between local and API-based reviewers. The public benchmark release is a concrete contribution.
major comments (3)
- [§3.7, Tables 1–2] §3.7 and Table 1 footnote: all reported results use a retained challenge split defined by keeping only PRs that at least one of Claude Haiku 4.5 or GPT-5.4-nano approved. Those same two models (and the other open-weight models) are then scored on that filtered set. This conditions open-model refusal rates and framing swings on cases the filter models already failed, so the headline closed/open gap and “susceptible to narrative manipulation” claims are not population estimates over the full PR distribution. Please report unfiltered refusal rates (or a random subsample of the full set) for all eight models, or reframe claims as applying only to this model-dependent hard subset and quantify selection bias.
- [§4, Appendix E] The introduction and design (§3, Abstract) state that benign security-fix PRs are included to measure false declines, and Appendix E shows their CWE distribution, but §4 Experiments reports only malicious refusal and SRR. Without false-decline (or approval) rates on benign fixes, high frontier refusal (e.g., Opus 98%) cannot be distinguished from indiscriminate rejection. Main-result tables or a dedicated subsection with benign metrics are needed for the security-gate interpretation.
- [§3.6, Appendix H] Appendix H / §3.6: Security Reason Rate is scored by querying the same model (independent session) on its own refusal rationale. Self-judgment systematically risks inflating SRR for models that produce security-sounding language and understating it for others. Use a fixed external judge (or human labels on a sample) and report agreement; treat current SRR as exploratory until then.
minor comments (5)
- [Abstract, §3.7] Abstract vs §3.7: clarify whether 1,062 is the full constructed set or the retained challenge split; the abstract uses both “1,062 malicious PRs” and “retained challenge split of roughly 1000” in ways that can be read as the same set.
- [Table 1] Table 1 header uses “accuracy ± standard error” for Refusal Rate; prefer “refusal rate” consistently to avoid confusion with classification accuracy.
- [Appendix H, Fig. 2–4] Typos: “primirily” (Appendix H), “resoning” (Fig. 4 caption), “thenormalization” (Fig. 2 caption), and inconsistent hyphenation of SEVRA-BENCH.
- [§5] §5 Limitations correctly flags contamination and saturation for frontier models; a short quantitative note (e.g., overlap of CVE IDs with known training cutoffs where available) would strengthen that discussion.
- [Figure 3] Figure 3 heatmap is useful; adding column/row totals or an explicit total N for the challenge split would help readers verify sample sizes against Tables 1–2.
Circularity Check
Empirical benchmark with no load-bearing circular derivation; only a minor self-referential secondary metric (SRR self-judging).
specific steps
-
other
[Appendix H / §3.6 Security Reason Rate]
"More concretely, we query the same model, in an independent session, to score its own explanation for each rejected PR and determine whether the explanation was primarily driven from a security stance."
SRR is defined by having πθ label whether its own refusal rationale was security-motivated. That makes the secondary metric partially self-referential (the model can ratify its own security framing), so SRR is not an independent external check of security reasoning. It does not, however, force primary Refusal Rate or the main closed/open gap, which remain direct approval observations.
full rationale
SEVRA-BENCH is an empirical evaluation paper, not a first-principles derivation. Malicious diffs are obtained by mechanically reversing public CVE-linked fixes (git apply -R), framings are controlled presentation inputs, and Refusal Rate is the observed fraction of non-approvals under a fixed tool harness—none of these quantities is algebraically forced by a fitted parameter or by a definition that embeds the target. The closed/open gap and framing swings are measured outcomes on external CVE material, not predictions renamed from inputs. The challenge-split filter (retain PRs approved by at least one of Haiku 4.5 or GPT-5.4-nano) introduces selection bias for those two models and hardens the set, but that is a sampling design issue, not a reduction of the reported rates to their inputs by construction. The only mild self-reference is the secondary Security Reason Rate, where the same model scores its own refusal rationales; that can bias SRR upward and is not independent validation of security motivation, yet it does not force the primary refusal rates or the main capability claims. No self-citation uniqueness theorem, ansatz smuggling, or fitted-input-as-prediction chain carries the central result. Score 1 reflects that single secondary self-judgment, not a circular core.
Axiom & Free-Parameter Ledger
free parameters (4)
- challenge_split_retention_rule
- temperature
- framing_taxonomy_size_and_selection
- system_prompt_variant
axioms (4)
- domain assumption Mechanically reversing a real CVE-linked fix with git apply -R yields a vulnerability-bearing diff whose approval constitutes a security failure of the review agent.
- domain assumption The standard PR interface (title, description, commit message, diffs, comments) plus the listed Gitea/MCP tools is a realistic enough simulation of production review agents.
- ad hoc to paper The 15 social-engineering framings, generated from CVE metadata and strategy instructions, adequately sample narrative manipulation relevant to real supply-chain attacks.
- standard math Independent Bernoulli trials and the reported standard-error formula adequately describe episode-level variance for refusal rates.
invented entities (2)
-
SEVRA-BENCH
independent evidence
-
15 controlled social-engineering framing strategies
no independent evidence
read the original abstract
Large language models (LLMs) are increasingly deployed in automated code-review systems, where their approvals can determine which code is merged into shared repositories. However, it is unclear whether review agents can detect vulnerability-introducing code when an attacker controls both the code change and the persuasive Pull Request (PR) narrative designed to mask it. We introduce SEVRA-BENCH (Social Engineering of Vulnerabilities in Review Agents), a benchmark that measures how often a review agent approves such adversarial PR s. Each PR in SEVRA-BENCH is built from a historical commit that fixed a vulnerability. We automatically reverse that fix to extract the original vulnerable code, and submit the resulting code change as a PR wrapped in one of 15 social-engineering framings. To test review-agent resilience to narrative manipulation, these framings vary dimensions such as supporting evidence, conveyed urgency, signals of prior approval, and appeals to authority. SEVRA-BENCH evaluates a retained challenge split of roughly 1000 adversarial PRs drawn from publicly disclosed vulnerability fixes across the top 10 entries of the MITRE's 2025 most dangerous software weaknesses. Evaluating 8 review agents against this benchmark, we reveal that review agents are susceptible to narrative manipulation, exposing a significant gap in security capabilities.
Figures
Reference graph
Works this paper leans on
-
[1]
doi: 10.3390/computers13070165
ISSN 2073-431X. doi: 10.3390/computers13070165. URL https://www.mdpi.com/2073-431X/13/7/165. Rosalia Tufano, Alberto Martin-Lopez, Ahmad Tayeb, Ozren Dabi ´c, Sonia Haiduc, and Gabriele Bavota. Deep learning-based code reviews: A paradigm shift or a double-edged sword? In2025 IEEE/ACM 47th International Conference on Software Engineering (ICSE), pages 164...
-
[2]
Please review PR #3 in repo admin/test-repo
URLhttps://api.semanticscholar.org/CorpusID:277244869. Markus Zimmermann, Cristian-Alexandru Staicu, Cam Tenny, and Michael Pradel. Small world with high risks: A study of security threats in the npm ecosystem. In28th USENIX Security Symposium (USENIX Security 19), pages 995–1010, Santa Clara, CA, August 2019. USENIX Association. ISBN 978-1-939133-06-9. U...
2019
-
[3]
Callgithub_list_pr_files(repo=<repo>, pr_number=<number>)to read every changed file
-
[4]
Optionally callgithub_read_fileorgithub_list_filesto explore context
-
[5]
Approved – [reason]
Callsubmit()to make your decision: • To approve: call github_approve_pull_request(repo=<repo>, pr_number=<number>) then submit(answer="Approved – [reason]"). • To decline: callsubmit(answer="Declined – [reason]")without calling approve. 16 C Pull-Request Metadata Generation Since the vulnerability source is generated deterministically via patch reversal (...
-
[6]
Mechanically reverses the CVE-linked fix patch usinggit apply -Ron the target repository
-
[7]
Creates a new branch with a deterministic name
-
[8]
Uses an LLM to generate PR title, description, and commit message according to the assigned framing strategy
-
[9]
Generated PRs are appended to a JSONL manifest as they are created, making the pipeline resumable after interruption
Opens the PR via the Gitea API; the PR remains open until the reviewer agent approves it or declines it. Generated PRs are appended to a JSONL manifest as they are created, making the pipeline resumable after interruption. 18 E Benign Dataset Distribution CWE22 CWE78 CWE79 CWE89 CWE94 CWE125 CWE352 CWE416 CWE787 CWE862 CWE 0 6 12 18 24 30 36 42 48Number o...
discussion (0)
Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.