Vulnerabilities

Vulnerability · CVE-2026-55098

Arc: DuckDB I/O aliases bypass database RBAC after CVE-2026-47735

Published Nov 4, 2026 · catalog updated Nov 4, 2026 · Arc: DuckDB I/O aliases

Last checked Nov 5, 2026. A connected source was read within the last 7 days.

Check if you run it

No confirmed exploitation is on record for CVE-2026-55098. EPSS is 0.32%. Act only if a listed version of Arc: DuckDB I/O aliases is installed.

Gaps on this record

  • The stored product name is a package slug. The name on this page is taken from the title (Arc: DuckDB I/O aliases).
  • No vendor fix or required action is stored. Compare the linked advisory before you change production.
Severity
Medium6.5
Known exploitation
Not in CISA/VulnCheck KEV
EPSS
0.32%
Remediation
Version ranges on file
Affected products
Go github.com/basekick-labs/arc · go github.com/basekick-labs/arc

### Summary The fix for CVE-2026-47735 (released 2026.06.1) is incomplete. It added a DuckDB sandbox ( ) and an Arc SQL-layer denylist of the **literal** functions and . The sandbox correctly blocks reads **outside** the storage root (OS files, SSRF), but it allowlists the **entire multi-tenant storage root**, and the SQL denylist still misses the rest of the DuckDB I/O family the original advisory enumerated. As a result, any authenticated token — including one with — can read or enumerate **every other database's data** within the deployment, defeating RBAC. Verified at HEAD ( , includes 26.06.2). Confirmed still live; no later commit blocks these functions. ### Root cause (three composing gaps) 1. **Sandbox scope is the whole storage root, not the tenant.** allowlists (default ). Every database lives under it — => . Any in-root path is sandbox-permitted regardless of which database owns it. 2. **RBAC never inspects table-valued functions.** ( ) extracts table refs via , which skips any name followed by as a function ( ); with zero refs it returns allow ( ). So , , , , are never authorization-checked. 3. **The SQL denylist matches only the literal spelling.** ( ) is . DuckDB's documented alias ** ** is not matched, and / / / / / / are not blocked anywhere. The fix author documented this very threat at (“a user scoped to db1.m1 could read /data/db2/secrets/**/*.parquet”) but blocked only the literal . ### Exploit (authenticated, any token incl. permissions:[]) - passes ( is not , not a dangerous keyword, single statement). - extracts 0 table refs (it is a function call) and allows. - finds no literal and no bare to rewrite, so the query passes through unchanged. - DuckDB runs ; the path is inside , so the other database's rows are returned. enumerates every database/measurement/file; / leak column names and per-column min/max value statistics; returns raw file bytes. All operate within the allowlisted root. ### Proof (poc/poc_sandbox_alias_bypass.py, poc/OUTPUT.txt

Are you affected?

Enter the version you run. The result uses only the ranges stored on this record.

The check returns affected, not affected, or incomplete. It does not guess a version that is missing from the record.

  • Go github.com/basekick-labs/arc0 → 0.0.0-20260610131716-5dc8f53b70a3
  • go github.com/basekick-labs/arc< 0.0.0-20260610131716-5dc8f53b70a3

How to fix CVE-2026-55098

What to do

Three questions, each answered from this record only. Confirm the vendor advisory before you patch.

Should you patch?

No confirmed exploitation is on record for CVE-2026-55098. EPSS is 0.32%. Act only if a listed version of Arc: DuckDB I/O aliases is installed.

Which versions are affected?

Compare what you have installed with 0 → 0.0.0-20260610131716-5dc8f53b70a3, < 0.0.0-20260610131716-5dc8f53b70a3. Compare the installed version with the linked vendor advisory before you change production.

What should an analyst verify?

CWE-200: Exposure of Sensitive Information; CWE-863: Incorrect Authorization. EPSS 0.32%. There is no CISA KEV listing. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.

Code

The project this record applies to. Exploit listings stay in References.

Timeline

Detection, updates, and resolution for this record.

  1. Nov 4, 2026 · GitHub Advisory Database

    Detected

    ### Summary The fix for CVE-2026-47735 (released 2026.06.1) is incomplete. It added a DuckDB sandbox ( ) and an Arc SQL-layer denylist of the **literal** functions and . The sandbox correctly blocks reads **outside** the storage root (OS files, SSRF), but it allowlists the **entire multi-tenant storage root**, and the SQL denylist still misses the rest of the DuckDB I/O family the original advisor

  2. Nov 4, 2026 · GitHub Advisory Database

    Fix available

    github.com/basekick-labs/arc fixed in 0.0.0-20260610131716-5dc8f53b70a3

  3. Nov 4, 2026 · GitHub Advisory Database

    Fix available

    github.com/basekick-labs/arc fixed in 0.0.0-20260610131716-5dc8f53b70a3

  4. Nov 4, 2026 · GitHub Advisory Database

    Updated

    ### Summary The fix for CVE-2026-47735 (released 2026.06.1) is incomplete. It added a DuckDB sandbox ( ) and an Arc SQL-layer denylist of the **literal** functions and . The sandbox correctly blocks reads **outside** the storage root (OS files, SSRF), but it allowlists the **entire multi-tenant storage root**, and the SQL denylist still misses the rest of the DuckDB I/O family the original advisor

Sources

References

Freshness

Last verified in this catalog Nov 4, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.

  • Go Vulnerability DatabaseNov 5, 2026
  • GitHub Advisory DatabaseNov 5, 2026
  • OpenSSF OSV / OSV ScannerNov 5, 2026
  • CVE.orgNov 4, 2026