Skip to content

docs(audit): consolidate the three independent v3.8.55 reviews - #74

Merged
LMPrado-DZ23 merged 1 commit into
release/v3.8.55from
docs/audit-3855
Sep 20, 2026
Merged

LMPrado-DZ23 merged 1 commit into
release/v3.8.55from
docs/audit-3855

Conversation

@LMPrado-DZ23

Copy link
Copy Markdown
Owner

The release gate requires three independent audits with their findings consolidated. This is that record for release/v3.8.55.

Three auditors ran in parallel — architecture, offensive security, product/QA — each in its own worktree, without access to the others' conclusions, and each required to git fetch and re-verify every finding against the current tip before reporting. The tree advanced under them (#53, #56, #64, #65, #66 merged mid-audit); all three confirmed by diff which of their findings survived.

Auditor CRITICAL HIGH
A — architecture 0 1
B — security 1 1
C — product/QA 0 1

What the section records that a summary would lose

  • The CRITICAL, and that I missed it. /v1/** answered anonymous internet callers because requireLogin governs /api/** only — and the VM deployment guide prescribed REQUIRE_API_KEY=false for a public domain. My own 3.8.54 smoke test probed /api/** and GET /v1/models (gated by a different switch) and reported the image closed. That is written down.
  • The HIGH that is still open. No full-CI verdict exists for this line at any commit; three sweeps died at exit 143 with no output. ci(release-green): a killed sweep must still say which gate it was in #70 makes the next one diagnosable and does not close it. The section says so.
  • Auditor C revising itself from MEDIUM to HIGH after discovering its earlier evidence came from a stale log — kept, because an audit that corrects itself is worth more than one that is right by luck.
  • Auditor B's disclosure that one probe made real upstream calls to opencode's free tier. Unexpected, and itself the headline finding.
  • Every MEDIUM/LOW still open, including B-M1: behind a reverse proxy, anyone on the internet can lock the owner out of their own dashboard indefinitely. Deliberately not rushed — re-keying the lockout trades a guaranteed DoS for a possible brute-force hole, and the right answer is probably two counters with different ceilings.
  • What could not be tested, unrounded: no real provider was connected, so live routing and real spend roll-up are untested; and /dashboard/costs/workspaces would not render in auditor C's browser — not reported as a finding, because an untouched sibling page fails the same way, but flagged for the owner to confirm, with the consequence stated if it does not.
  • The negative space: npm audit --omit=dev 0 vulnerabilities across 890 production deps, 314/314 authz tests, IDOR attacked from several angles without a hole, Host-spoofing and path-normalisation bypasses tried and failed.
Gate Result
check:doc-links PASS
check:fabricated-docs clean
prettier --check clean

🤖 Generated with Claude Code

Three auditors ran in parallel — architecture, offensive security, and
product/QA — each in its own worktree, without access to the others'
conclusions, and each required to re-verify every finding against the
current tip before reporting. The tree advanced under them (#53, #56,
#64, #65, #66 merged mid-audit) and all three confirmed by diff which of
their findings survived.

Verdicts: A 0/1, B 1/1, C 0/1 (CRITICAL/HIGH).

The CRITICAL is the one that matters for a published instance: the whole
/v1/** surface answered anonymous internet callers, because requireLogin
governs /api/** and /v1/** is governed by REQUIRE_API_KEY, which ships
false — and the VM deployment guide prescribed exactly that. Fixed in
#69. The section records that my own 3.8.54 smoke test missed it by
probing the wrong surface.

Also recorded, rather than summarised away:

  - the one HIGH still OPEN (no full-CI verdict exists for this line)
    and why #70 does not close it
  - auditor C revising its own report from MEDIUM to HIGH after finding
    its earlier evidence came from a stale log
  - auditor B's disclosure that one probe made real upstream calls
  - every MEDIUM/LOW still open, including B-M1, which is deliberately
    NOT rushed: re-keying the login lockout trades a guaranteed DoS for a
    possible brute-force hole
  - what could not be tested at all, unrounded — no real provider
    connection, and a page that would not render in one auditor's
    browser that the owner should confirm

  [doc-links] PASS   [fabricated-docs] clean   prettier clean

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 20, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 30ab14e3-accc-4ecf-a3ca-e59e0e3a6486


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@LMPrado-DZ23
LMPrado-DZ23 merged commit cff932c into release/v3.8.55 Sep 20, 2026
11 checks passed
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.

2 participants