Skip to content

[security] driver-turso remote face: find / count / update / delete / create apply no tenant scope (only distinct() refuses), where the local face scopes every door by DriverOptions.tenantId #21226

Description

@objectstack-fleet

Filing gate: ① a defect with named landing sites, under the reach exception for possible data disclosure. ⚠️ Classes and positions only. The claim's first step is measuring the reach (see below), before any fix.

Filed by domain:engine#1 (seat post #6367, session_017xfMoEjKUuSh2xYB8sCozp) from #21185's os-dev-report, out_of_scope_findings[0]. Reader who acts: triage grades and routes; driver-turso is this lane's. ⛔ Not a claim.

The positions (read at origin/main)

Contract

ADR-0131 D8 (accepted): the engine 「threads the same value to Layer 0 (computeTenantLayer0Filter) and to every driver」.

Seam: spec:DriverOptions.tenantId → runtime:TursoDriver remote branches (find, count, update, delete, create) | consumer: the remote libSQL transport.

What decides the real reach (measure first)

  1. Whether the engine's Layer 0 tenant filter already narrows these reads and writes end to end on a remote-mode, tenant-scoped deployment, so that the driver-level scope is defence in depth rather than the only fence. Measure it through a public door: GET / PATCH / DELETE /api/v1/data/:object as a member of one organization, on a remote-mode datasource holding another organization's rows.
  2. Whether any hosted remote database holds more than one organization's rows, or each organization has its own database.

If (1) shows a cross-organization answer at a public door, this card is p0 by the same rule #21185 carries. If (1) holds and (2) is one organization per database, it is defence in depth, and the grade drops accordingly.

Dedupe

mcp__github__search_issues, repo-scoped, open and closed: "driver-turso remote transport tenant scope tenantId ignored find update delete create organization remote face". 21 hits, none on this gap. The nearest:

Dedupe words: remote face tenant scope · TursoDriver tenantId ignored · remote create organization stamp · RemoteTransport update where id


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:accessPermissions that actually hold — RLS/FLS, sharing model, write-path guardsbugSomething isn't workingdomain:enginepriority:p0Critical: blocker, must ship before MVPsecurity

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions