---
id: CVE-2026-80049
title: >-
  Airbyte Platform resolves the workspace used for its authorization decision
  from a field the caller supplies
summary: >-
  Airbyte Platform resolves the workspace used for its authorization decision
  from a field the caller supplies. AuthorizationServerHandler copies recognised
  identifiers out of the raw JSON request body into X-Airbyte-* headers, and
  Authent…
severity: high
cvss: 8.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cwe:
  - CWE-639
published: '2026-08-25'
updated: '2026-09-24'
sourceUpdated: '2026-09-24T20:43:32.537'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-80049'
references:
  - url: 'https://github.com/airbytehq/airbyte-platform'
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/airbytehq/airbyte-platform/blob/v2.0.0/airbyte-commons-server/src/main/kotlin/io/airbyte/commons/server/support/AuthenticationHeaderResolver.kt
    label: disclosure@vulncheck.com
  - url: 'https://github.com/geo-chen/oss/blob/main/airbyte-platform.md'
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/airbyte-platform-through-2.0.0-cross-workspace-authorization-bypass-via-caller-supplied-workspaceid
    label: disclosure@vulncheck.com
  - url: 'https://github.com/geo-chen/oss/blob/main/airbyte-platform.md'
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
tags:
  - nvd
epss: 0.00657
epssPercentile: 0.49228
ingestedAt: '2026-09-24T20:51:40.228Z'
---

## Overview

Airbyte Platform resolves the workspace used for its authorization decision from a field the caller supplies. AuthorizationServerHandler copies recognised identifiers out of the raw JSON request body into X-Airbyte-* headers, and AuthenticationHeaderResolver.resolveWorkspace consults X-Airbyte-Workspace-Id ahead of every resource-derived header, including those for connection, source and destination identifiers. Endpoints whose declared request bodies carry only a resource identifier are nonetheless reached with an added workspaceId field, because the extractor reads the body rather than the endpoint's schema, so the permission check is performed against the workspace the caller nominated while the handler acts on the resource identifier the caller supplied. Nothing afterwards compares the resource's owning workspace with the one that was authorized. A member of any workspace can therefore read source and destination configuration, trigger and cancel syncs, and delete connections, sources and destinations that belong to workspaces they have no access to, at whatever privilege level their own workspace membership grants them.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
