Read the docs
TI-2026-83373 Aliases CVE-2026-55098GHSA-93cm-2v4m-c56c

Cross-database authorization bypass in Arc via DuckDB I/O functions

Priority MEDIUM 62CWE-200Published · Updated

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

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00319 25th percentileScored 2026-11-07
Fix Fixed arc (Basekick-Labs): 26.06.2github.com/basekick-labs/arc (Go): 0.0.0-20260610131716-5dc8f53b70a3

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

VendorProductAffected versionsFixed inStatusSource
Basekick-Labsarcbefore 26.06.226.06.2Patch availableCNA
—github.com/basekick-labs/arc (Go)before 0.0.0-20260610131716-5dc8f53b70a30.0.0-20260610131716-5dc8f53b70a3Patch availableGHSA-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

  1. 2026-10-30 Threatist record created from CVE-2026-55098
  2. 2026-11-01 Priority changed: MEDIUM → LOW
  3. 2026-11-02 CISA SSVC decision points changed
  4. 2026-11-02 Priority changed: LOW → MEDIUM
  5. 2026-11-04 Alias added: GHSA-93cm-2v4m-c56c
  6. 2026-11-04 Fix available: Go/github.com/basekick-labs/[email protected] · GHSA-93cm-2v4m-c56c
  7. 2026-11-04 CVSS score added · GHSA-93cm-2v4m-c56c
  8. 2026-11-04 Weakness changed · GHSA-93cm-2v4m-c56c
  9. 2026-11-04 6 new references · GHSA-93cm-2v4m-c56c

References

  • 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