Skip to content

docs: Core Runtime Self-Extend Audit Report - #509

Merged
cursor[bot] merged 4 commits into
masterfrom
cursor/core-runtime-self-extend-audit-95c7
Sep 6, 2026
Merged

docs: Core Runtime Self-Extend Audit Report#509
cursor[bot] merged 4 commits into
masterfrom
cursor/core-runtime-self-extend-audit-95c7

Conversation

@IanFrelinger

Copy link
Copy Markdown
Owner

Summary

Comprehensive read-only audit of Ashlar's core runtime focusing on admission and self-extend readiness for autonomous operation with validation. Produces structured markdown report under docs/audits/ as requested.

Changes

  • Add docs/audits/2026-09-self-extend-core.md — comprehensive audit report covering:
    • Production-ready components (cert-gate, invariants A-D, trust APIs, hold admission)
    • Spike/hold-only components (self-extend runner adapter, certified loop, policy packs)
    • Requirements for claiming "autonomous self-extension with validation"
    • Top 10 gaps ranked by false-ADMIT risk with exploitability analysis
    • Core vs product boundary (what must never move out)
    • Critical security findings (3 trust signature holes: P0 severity)
    • Recommended next PRs with priorities

Key Findings

Production-Ready

  • ✅ Certification loop with invariants A-D enforced and tested
  • ✅ Trust log APIs (backend only, no UI)
  • ✅ HoldAdmission / aggressiveness mode (fail-closed defaults)
  • ✅ Policy pack infrastructure

Critical Gaps (P0)

  • ❌ Trust signatures have 3 exploitable security holes (limitations 7-9):
    • Committed HMAC key (trivial forgery)
    • Ed25519 signature downgrade (delete field → bypass)
    • Schema version downgrade (rewrite gate name post-certification)
  • ❌ Certified autonomy loop exists in spikes but not integrated into production path
  • ❌ No dashboard UI for trust events
  • ❌ Self-extend policy pack rules documented but not implemented

Coupling Found

  • ⚠️ Commercial ApprovalBridge (Discord integration) — verify it stays out of src/

Testing

Audit-only PR (no code changes) — read-heavy analysis of existing implementation.

Audit Methodology

  • Read 20+ source files across src/Ashlar.BackgroundAgents, src/Ashlar.Infrastructure, application/
  • Read 4 specification documents (SELF-EXTEND-AUDIT.md, certification-evidence.md, trust loop specs)
  • Traced control flow from BackgroundAgentService through self-extend execution path
  • Analyzed test coverage for invariants A-D (4 test files verified)
  • Reviewed spike evidence (spikes/autonomy-first-flight/ P2-P6, S1-S5)
  • ~7000 lines audited (5000 LOC implementation + 2000 LOC docs)

Testing strategy (blast radius)

Change typeMinimum proof (check what applies)
Documentation onlyN/A — no executable changes
  • make kernel-coverage-gate — N/A (docs only)
  • make kernel-gate — N/A (docs only)
  • make test-prod-style — N/A (docs only)

Checklist

  • make test passes locally — N/A (docs only, no code changes)
  • Documentation updated — this PR adds audit documentation
  • No TODO or NotImplementedException left unresolved — docs only
  • Breaking changes are documented — N/A (audit report)

Release

  • Not a versioned release — skip

Scope Notes

Per user request:

  • AUDIT ONLY (read-heavy) — no feature implementation
  • Focus: cert-gate, trust log, HoldAdmission, self-extend readiness, policy packs
  • Output: structured markdown report as PR under docs/audits/
  • Constraint: flag any Cursor/product coupling in core

Recommended Follow-Ups

Next PRs should address (per audit §8):

  1. P0: Fix trust signature security holes (limitations 7-9)
  2. P1: Integrate certified loop into background agent path
  3. P1: Implement watch window + auto-rollback
  4. P2: Dashboard UI for trust events
  5. P2: Self-extend policy pack rules

See audit report §8 for detailed task breakdowns and exit criteria.

Open in WebOpen in Cursor

@cursor
cursorBot marked this pull request as ready for review September 5, 2026 23:22
Comprehensive audit of Ashlar's admission and self-extend readiness covering:
- Production-ready components: Certification loop (invariants A-D), trust log APIs, hold admission
- Spike/hold-only components: Self-extend runner adapter, certified autonomy loop, policy packs
- Critical security gaps: Trust signature security holes (P0), signature/schema downgrade attacks
- Top 10 gaps ranked by false-ADMIT risk with exploitability analysis
- Requirements for autonomous self-extension with validation
- Core vs product boundary analysis (trust kernel non-extractable components)
- Recommended next PRs (P0: fix trust signatures, P1: integrate certified loop)
Key findings:
- Invariants A-D enforced and tested
- Trust signatures have 3 exploitable security holes (limitations 7-9)
- Certified loop exists in spikes but not integrated into production path
- No dashboard UI for trust events
- Self-extend policy pack rules documented but not implemented
Audit methodology: Read 20+ source files, 4 spec documents, ~7000 total lines.
Trace control flow from BackgroundAgentService through self-extend path.
Rank gaps by exploitability × impact for false-ADMIT risk.
Ref: docs/SELF-EXTEND-AUDIT.md, docs/certification-evidence.md, trust loop specs
Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
@cursor
cursorBotforce-pushed the cursor/core-runtime-self-extend-audit-95c7 branch from 8b24695 to a5b9cf6CompareSeptember 5, 2026 23:59
cursoragentand others added 3 commits September 6, 2026 01:20
Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
@cursor
cursorBot merged commit 968b779 into masterSep 6, 2026
9 of 11 checks passed
@cursor
cursorBot deleted the cursor/core-runtime-self-extend-audit-95c7 branch September 6, 2026 04:31
cursorBot pushed a commit that referenced this pull request Sep 6, 2026
Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
cursorBot pushed a commit that referenced this pull request Sep 6, 2026
Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
cursorBot pushed a commit that referenced this pull request Sep 6, 2026
Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
cursorBot pushed a commit that referenced this pull request Sep 6, 2026
Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
Sign up for freeto 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.

2 participants

@IanFrelinger@cursoragent