Cross-database authorization bypass in Arc via DuckDB I/O functions
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Information disclosure, Security bypass
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-200 and CWE-863.
Summary
Arc by Basekick-Labs before 26.06.2 lets a low-privileged authenticated user bypass database access checks through DuckDB table-valued I/O functions. The query permission checks skip these functions, so a crafted query sent to the query endpoint can read other databases' time-series data and schema within the storage root. This is an incorrect authorization flaw (CWE-863).
Written with Claude Haiku 5.5 from the sources below · 2026-11-04
Description from the CNA
Arc is an open, SQL-native time-series database for telemetry. Prior to the repository-verified 26.06.2 repair, the remediation of `CVE-2026-47735` leaves a cross-database authorization bypass through DuckDB table-valued I/O functions. In `internal/database/sandbox.go`, `allowed_directories` uses `cfg.LocalStorageRoot`, configured by `storage.local_path`, while `enable_external_access=false` blocks access outside that entire multi-tenant root. `GetStoragePath` in `internal/storage/util.go` stores all databases beneath it. In `internal/api/query.go`, `extractTableReferences` skips names followed by an opening parenthesis and `checkQueryPermissions` allows queries with no extracted table references, including tokens with `permissions: []`. The `userSQLReadParquetPattern` denylist catches literal `read_parquet(` and the earlier protection also blocks `arc_partition_agg(`, but misses the `parquet_scan` alias and `glob`, `parquet_metadata`, `parquet_schema`, `read_blob`, `read_csv_auto`, `read_json` and `read_text`. A request to `POST /api/v1/query` using these unblocked functions passes `ValidateSQLRequest` and `convertSQLToStoragePaths` without tenant authorization, allowing reads and enumeration of other databases' time-series data, schema and per-column value-range statistics within the allowlisted root. The sandbox still blocks out-of-root OS files and HTTP SSRF, and the sibling SQLite token database outside the root is not exposed by this mechanism. The earlier 26.06.1 remediation does not comprehensively deny these I/O functions. Repository tag 26.06.2 contains the I/O-function repair and supplies the provisional remediation boundary; conflicting advisory affected-version statements require curator adjudication.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Basekick-Labs | arc | before 26.06.2 | 26.06.2 | Patch available | CNA |
| — | github.com/basekick-labs/arc (Go) | before 0.0.0-20260610131716-5dc8f53b70a3 | 0.0.0-20260610131716-5dc8f53b70a3 | Patch available | GHSA-93cm-2v4m-c56c |
- arc VendorBasekick-Labs Affected before 26.06.2 Fixed in 26.06.2 Patch available CNA
- github.com/basekick-labs/arc (Go) Vendor— Affected before 0.0.0-20260610131716-5dc8f53b70a3 Fixed in 0.0.0-20260610131716-5dc8f53b70a3 Patch available GHSA-93cm-2v4m-c56c
Remediation
The arc product is fixed in version 26.06.2. The github.com/basekick-labs/arc Go module is fixed in version 0.0.0-20260610131716-5dc8f53b70a3.
Written with Claude Haiku 5.5 from the sources below · 2026-11-04
- Fix · CNA arc (Basekick-Labs) Fixed in 26.06.2
- Fix · GHSA-93cm-2v4m-c56c github.com/basekick-labs/arc (Go) Fixed in 0.0.0-20260610131716-5dc8f53b70a3 Advisory →
Timeline
- 2026-10-30 Threatist record created from CVE-2026-55098
- 2026-11-01 Priority changed: MEDIUM → LOW
- 2026-11-02 CISA SSVC decision points changed
- 2026-11-02 Priority changed: LOW → MEDIUM
- 2026-11-04 Alias added: GHSA-93cm-2v4m-c56c
- 2026-11-04 Fix available: Go/github.com/basekick-labs/[email protected] · GHSA-93cm-2v4m-c56c
- 2026-11-04 CVSS score added · GHSA-93cm-2v4m-c56c
- 2026-11-04 Weakness changed · GHSA-93cm-2v4m-c56c
- 2026-11-04 6 new references · GHSA-93cm-2v4m-c56c
References
More Basekick-Labs vulnerabilities
- TI-2026-40199 Arc: Unauthenticated cluster node admission when `cluster.shared_secret` is unset CVSS 4.0MEDIUM 6.9
- TI-2026-35492 Arc: Unauthenticated access to Go debug pprof endpoints leaks runtime state and enables CPU-burn DoS CVSS 4.0HIGH 8.8
- TI-2026-35546 Missing authentication in Basekick-Labs arc CVSS 4.0HIGH 8.3
- TI-2026-35545 Path traversal in Basekick-Labs arc CVSS 4.0HIGH 8.3
- TI-2026-35236 Arc has an authenticated arbitrary local-file read via DuckDB I/O functions that bypasses RBAC table-level checks CVSS 4.0HIGH 7.1
Sources
- CVE-2026-55098 · CVE Program
- CVE-2026-55098 · NVD
- FIRST EPSS
- GHSA-93cm-2v4m-c56c · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences