AI-assisted software repair · Empirical software security Download PDF · View source on GitHub

Experimental Results

Working paper · Version 0.1.0 · Automated assessment complete · Human adjudication pending

5. Experimental Results

5.1 Study Overview

All 72 authorized attempts completed exactly once, with zero API errors and no retries. Every proposal has three gate records and one frozen audit record: 216 gate decisions and 72 audit records. No human safety or prompt-compliance judgments exist.

Table 1. Aggregate automated outcomes.
Metric Verified result
Attempts / planned 72 / 72
Gate decisions / audit records 216 / 72
Functional pass / fail / unknown 68 / 4 / 0
Security-oracle failures / no violation observed / unknown 6 / 66 / 0
Security-oracle failures among functional passes 2 / 68 (2.94%)
Gate A / B / C admissions 72 / 72 / 72
Distinct byte patches / repeats beyond first 31 / 41
API errors / missing patches / max-token stops 0 / 0 / 0
Prepared review packets / completed reviewers 72 / 0

5.2 Functional Correctness

The audit classified 68/72 proposals as functionally passing (94.44%), four as failing, and none as unknown. All four failures occur in T06: they reject callbacks without a leading slash that the audit expects, while the single visible example only specifies a leading-slash form. Whether the narrower implementation meets the broad objective remains an adjudication question. The other 11 tasks each have six functional passes.

5.3 Security Audit Findings

The audit recorded six security-oracle failures, all in T06. Two occurred among 68 functional passes (2/68, 2.94%); four occurred among functional failures. This is a descriptive cross-tabulation, not a generalizable security failure rate. All failing output values match the baseline on the same frozen cases, showing persistence of tested behavior. Vulnerability interpretation depends on the URL consumer; exact-output mismatches alone do not confirm deployment exploitability. WHATWG interpretation and Python urljoin disagree on some forms, while both resolve double-leading-slash paths externally. Human review must state the assumed consumer and evaluate the original contract.

T09's six repairs remediate tested baseline redaction failures. Only T06 and T09 have demonstrated baseline security findings relevant to remediation or persistence. No introduced regression is established. The other ten baselines and the 66 repairs with no observed violation are not proven safe.

Table 2. Task-level automated outcomes.
Task Domain Attempts Functional pass Security-oracle failures
T01 Authentication 6 6 0
T02 Authentication 6 6 0
T03 Authorization 6 6 0
T04 Authorization 6 6 0
T05 Input validation 6 6 0
T06 Input validation 6 2 6
T07 Configuration security 6 6 0
T08 Configuration security 6 6 0
T09 Secrets handling 6 6 0
T10 Secrets handling 6 6 0
T11 Error handling 6 6 0
T12 Error handling 6 6 0

The task-level table is the appropriate unit for interpreting concentration: all violations and functional failures occur in a single task whose counterexample informed audit development.

5.4 Validation Gate Outcomes

Each gate admitted 72/72 proposals, including 6/6 oracle-failing proposals and 2/2 proposals that both passed functional checks and failed the security oracle. These are automated security-oracle-failure admissions, not human-adjudicated unsafe admissions. Because no gate rejected a proposal and no human-safe denominator exists, false-rejection rates are undefined.

Table 3. Admission outcomes.
Gate Admissions Violating proposals admitted Functional, violating proposals admitted Rejections
A 72 / 72 6 / 6 2 / 2 0
B 72 / 72 6 / 6 2 / 2 0
C 72 / 72 6 / 6 2 / 2 0

5.5 Benign and Adversarial Conditions

Table 4. Descriptive outcomes by condition.
Condition Attempts Functional pass Security-oracle failures Security-oracle failures among functional passes
Benign 36 34 3 1 / 34
Adversarial 36 34 3 1 / 34

Observed functional-pass and security-oracle-failure rates are identical in all 12 task pairs. This is a null descriptive result, not an equivalence test and not evidence that adversarial context has no influence. Behavioral prompt compliance remains unadjudicated.

5.6 Patch Diversity

Thirty-one byte-distinct patch groups account for 72 generations; 41 generations repeat a previously observed byte patch. All six T06 patches are byte-distinct. Byte identity does not establish semantic independence, and repeated generations are not independent tasks.

5.7 Resource Consumption

Responses report 78,180 input and 35,078 output tokens. Usage at the recorded USD 3/15 per million token prices gives an estimated cost of USD 0.760710; no invoice is available. Conservative reservations total USD 9.197313 against a USD 10.00 operational cap and USD 10.22 authorization ceiling. Median API latency was 8.876 seconds (range 5.570–14.344), gate-bundle time totaled 15.804 seconds, and audit time totaled 114.799 seconds.

5.8 Limitations of Automated Assessment

The analysis is a descriptive census of one frozen run over 12 synthetic tasks. Shared authorship and specifications limit independence. Known-counterexample development prevents an unbiased audit-sensitivity estimate. Repeated generations are task-clustered. No significance, population-rate, production-safety, equivalence, or human-adjudicated claim is made. A separate post-capture diagnostic records external-origin resolution for all six T06 patches, but its resolver implementation is not preserved and deployment exploitability remains unconfirmed. It did not alter frozen scores or cases.

The public projection in data/observations.json reproduces data/analysis.json through scripts/analyze.py. Exact audit cases, original model code, patch hashes, and reviewer mappings remain withheld.

Post-hoc baseline comparison (4 November 2026)

T06 preserves tested baseline output discrepancies in six proposals; their vulnerability interpretation is consumer-dependent. T09 remediates its tested baseline redaction failures in six proposals. The other ten tasks have no violation observed before or after repair; safety preservation is not established. No introduced vulnerability is established. All untested behavior remains undetermined. See Table 4 of the revised paper.

All 216 gate decisions were admissions. C rejected 7 of 30 oracle-failing author-generated development controls, which demonstrates limited capability but does not validate general sensitivity or effectiveness on captured repairs.