Skip to content

docs(audit): Eve-2 adversarial audit — 8 verified findings in fix-round code - #614

Merged
LinuxDevil merged 1 commit into
mainfrom
audit/eve2-findings
Oct 12, 2026
Merged

LinuxDevil merged 1 commit into
mainfrom
audit/eve2-findings

Conversation

@LinuxDevil

Copy link
Copy Markdown
Owner

Summary

Second competitor-style (\u0022Eve\u0022) audit of the SDK. Round 1 produced ~166 findings that were all fixed and merged (waves E1\u2013E21 + MAIN-HEALTH rounds). This round audited the fix code itself \u2014 run leases, the \u003cid\u003e.paused marker, secure-by-default routes, multi-approval pauses, abort handling.

8 verified findings, each with a deterministic repro (npx tsx audit/eve2/repro/\u003cfile\u003e):

# Finding Severity
1 Session-ownership check-then-act race \u2014 concurrent first-touch runs a turn inside another user's session and receives their data Critical
2 recordFailure writes lastError onto a foreign run's checkpoint without lease fencing High
3 \u003cid\u003e.paused marker lands after the pause checkpoint \u2014 a side run is admitted in the gap High
4 Sub-agent grouped approvals execute schema-invalid edited args High
5 Abort during tool execution never settles send()/approvals.resolve() High
6 Re-paused checkpoint drops approvalIds \u2014 durable state names 1 of N approvals Medium-High
7 uniqueToolCallIds fragments unindexed repeated-id stream deltas into phantom calls Medium
8 isStreamingRequest regex false-positive rewrites a JSON reply into SSE Medium

Finding 1 is an authorization-boundary breach \u2014 flagged as security-sensitive.

Also included: audit/eve/TRIAGE.md \u2014 all 166 round-1 findings re-verified on current main (142 fixed, 15 still-open, 9 changed). EVE-0 (resume divergence) confirmed fixed.

Test plan

  • Every repro runs deterministically with mockModel/fileStore \u2014 no network needed
  • No production source changed (docs + repro scripts only)
  • Follow-up fix PRs per finding (tracked in audit/eve2/README.md)

Generated with Devin

…nd code + triage of 166 prior findings

Round-2 competitor audit of the SDK, auditing the code added by the
round-1 fix waves (run leases, <id>.paused marker, secure-by-default
routes, multi-approval pauses, abort handling).

Eve-2 findings (all reproduced deterministically on main @ f4c8eb1):
- Critical: session-ownership check-then-act race leaks a turn + data
  across principals (f1-session-squat-toctou)
- High: unfenced recordFailure poisons a takeover run's checkpoint;
  <id>.paused write gap admits a side run beside a paused turn;
  sub-agent grouped approvals skip edited-args schema validation;
  abort during tool execution hangs send()/approvals.resolve()
- Medium: re-paused checkpoint drops approvalIds; unindexed
  repeated-id stream deltas fragment into phantom tool calls;
  isStreamingRequest regex false-positive rewrites JSON to SSE

Triage of all 166 round-1 findings against current main:
142 fixed, 15 still-open, 9 changed/partial (audit/eve/TRIAGE.md).

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@LinuxDevil
LinuxDevil merged commit e8b8f83 into main Oct 12, 2026
7 checks passed
@LinuxDevil
LinuxDevil deleted the audit/eve2-findings branch October 12, 2026 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant