🔍 CVE-2026-45426

3.1
CVSS Score
LOW
2026-06-01
2026-07-21 19:10
✅ 완료

🇰🇷 한글 설명

Apache Airflow의 로그 서버가 JWT의 sub 클레임을 검증할 때 Python의 `str.lstrip()` 함수를 사용하여 경로를 처리하는 과정에서 발생하는 취약점입니다. 이로 인해 특정 DAG에 대한 권한을 가진 인증된 워커가 문자 집합 기반의 잘못된 매칭을 통해 다른 DAG의 로그에 접근할 수 있습니다. 결과적으로 격리된 로그 데이터가 유출될 수 있습니다.

💡 쉬운 설명

로그를 볼 수 있는 권한을 가진 사용자가 이름이 비슷한 다른 작업의 로그까지 몰래 볼 수 있는 보안 허점이 발견되었습니다. 특정 글자들의 조합이 겹치면 권한 검증이 제대로 이루어지지 않아 정보가 유출될 수 있습니다.

🇺🇸 원문 (English)

Exploitation requires the attacker to already be an authenticated Airflow worker holding a valid Log-server JWT issued for at least one Dag. Apache Airflow's Log server authorized JWT tokens against Dag IDs by applying Python's `str.lstrip()` to the requested path segment when verifying the JWT's `sub` claim. `str.lstrip()` strips any of a *set* of characters from the left (not a prefix), so a JWT issued for a Dag named e.g. `dag_a` would authorize log access to any other Dag whose name began with any subset of the characters `{d, a, g, _}` (e.g. `dag_attacker`, `aaaa_target`, `_dag_secret`). Such an authenticated worker could enumerate and read worker logs of other Dags whose names happened to share that character-class prefix, leaking task output and error traces beyond the documented per-Dag isolation boundary. Affects deployments relying on per-Dag log-access scoping (multi-team, shared-executor, shared-worker topologies). Users are advised to upgrade to `apache-airflow` 3.2.2 or later.

📍 영향받는 시스템

Apache Airflow 3.2.2 미만 버전 (per-Dag 로그 접근 제어를 사용하는 환경)

⚔️ 공격 벡터

인증된 Airflow 워커가 특정 DAG의 JWT를 사용하여 문자 집합 매칭 취약점을 이용한 타 DAG 로그 요청

🛡️ 대응 방법

Apache Airflow를 3.2.2 이상의 버전으로 업그레이드하십시오.

🔧 검증 코드

출력된 버전이 3.2.2 미만인 경우 해당 취약점에 노출되어 있습니다.

Shell / Script
pip show apache-airflow | grep Version

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N

💻 영향받는 소프트웨어

Python