Apache Software Foundation Apache Airflow bị session fixation, gây nhầm lẫn principal

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Lỗ hổng CVE-2026-82355 là gì?

Lỗ hổng CVE-2026-82355 là lỗ hổng Session Fixation ảnh hưởng tới Apache Airflow (phiên bản bị ảnh hưởng: 3.3.0 – < 3.3.2). Lỗ hổng này được xếp hạng ở mức Trung bình, với điểm CVSS 4.2. Các nguồn hiện có chưa ghi nhận lỗ hổng này bị khai thác.

Giới thiệu chung

Dữ liệu gốc

Khi một request tới Airflow core API mang cả session cookie và token Authorization: Bearer được cung cấp rõ ràng, Airflow phân giải caller từ cookie và bỏ qua bearer token, đảo ngược thứ tự ưu tiên dự kiến là bearer trước cookie. Sau đó request được thực thi -- và được ghi vào audit log -- dưới principal của cookie thay vì danh tính mà client đã chủ động cung cấp. Chỉ Apache Airflow 3.3.0 và 3.3.1 bị ảnh hưởng. Các bản phát hành trước đó không có code path cache người dùng được phân giải từ cookie và không dễ bị lỗi này. Để khai thác, trước hết kẻ tấn công phải đặt một session cookie hợp lệ của chính mình vào browser hoặc client của nạn nhân: chẳng hạn bằng cookie tossing từ sibling subdomain, thông qua cross-site scripting trong một ứng dụng riêng dùng chung parent domain, hoặc qua shared workstation. Vì vậy, các deployment host Airflow UI trên một domain dùng chung với những ứng dụng khác có mức phơi nhiễm cao nhất; deployment trên domain riêng không có ứng dụng đồng lưu trữ không thể bị tiếp cận theo cách này. Hậu quả là principal confusion và audit record bị gán sai, thay vì privilege escalation trực tiếp. Người dùng 3.3.0 hoặc 3.3.1 nên nâng cấp lên Apache Airflow 3.3.2 hoặc mới hơn, bản này sẽ phân giải caller từ credential được cung cấp rõ ràng bất cứ khi nào có credential đó.

Sản phẩm và phạm vi ảnh hưởng

  • Apache Software Foundation Apache Airflow, package apache-airflow-core: Apache Airflow 3.3.0 và 3.3.1 bị ảnh hưởng. Structured affected facts biểu diễn phạm vi là 3.3.0 với điều kiện nhỏ hơn 3.3.2.
  • Các bản phát hành trước đó không chứa code path cache người dùng lấy từ cookie theo advisory đã được cung cấp.
  • Bản sửa được xác nhận trong Apache Airflow 3.3.2. Không nên suy ra trạng thái của mọi nhánh phát hành song song chỉ từ việc một nhánh đã được sửa.
  • Phạm vi thực tế yêu cầu request tới Airflow core API có cả session cookie và credential rõ ràng. UI trên domain dùng chung với ứng dụng khác có mức phơi nhiễm cao hơn; deployment trên domain riêng không có ứng dụng đồng lưu trữ không tiếp cận được theo đường tấn công được mô tả.

Chi tiết kỹ thuật

Lỗi nằm trong cơ chế phân giải danh tính của core API trong package apache-airflow-core. JWTRefreshMiddleware phân giải người dùng chỉ từ cookie _token, sau đó gắn người dùng đã phân giải vào request.state cùng trust sentinel. Trước bản sửa, get_user() trả về người dùng đã cache này trước khi kiểm tra bearer hoặc OAuth2 token, nên khi một request có cả session cookie và Authorization: Bearer, cookie được ưu tiên thay vì credential được cung cấp rõ ràng.

Luồng tác động ở mức cao là:

  1. Kẻ tấn công đặt một session cookie hợp lệ của chính mình vào browser hoặc client của nạn nhân.
  2. Client gửi request tới Airflow core API đồng thời mang cookie đó và credential rõ ràng của client.
  3. Airflow xử lý request dưới principal của cookie và ghi audit record dưới danh tính sai.

Các cách đặt cookie được nguồn mô tả gồm cookie tossing từ sibling subdomain, cross-site scripting trong ứng dụng khác dùng chung parent domain, hoặc shared workstation. Việc triển khai UI trên domain dùng chung với ứng dụng khác vì vậy có mức phơi nhiễm cao hơn. Chi tiết bằng chứng hiện có xác nhận lỗi precedence và việc ghi audit sai, nhưng không xác lập một đường dẫn privilege escalation trực tiếp hoặc rằng mọi phương thức đặt cookie đều áp dụng cho mọi deployment.

Khả năng khai thác

Đường tấn công tới core API có thể thực hiện qua mạng. Bản ghi cung cấp không ghi nhận yêu cầu privilege trước đó, nhưng kẻ tấn công vẫn phải có một session cookie hợp lệ của chính mình và đưa cookie đó vào browser hoặc client của nạn nhân.

  • Điều kiện: request phải mang đồng thời session cookie và Authorization: Bearer token.
  • Độ phức tạp: cao, vì cần tác động trước tới cookie của client nạn nhân.
  • Tương tác người dùng: bắt buộc, vì client hoặc browser của nạn nhân phải gửi request sau khi cookie bị đặt.
  • Phạm vi triển khai: Airflow UI trên domain dùng chung với ứng dụng khác dễ bị tiếp cận theo đường này hơn; deployment trên domain riêng không có ứng dụng đồng lưu trữ không tiếp cận được bằng đường tấn công được mô tả.

Bản ghi được cung cấp không xác định một public exploit. Trạng thái khai thác thực tế hiện không được xác lập, vì trường known-exploited không có kết luận.

Tác động kỹ thuật

Kết quả kỹ thuật là Airflow có thể thực thi request dưới principal của session cookie và ghi audit dưới danh tính đó, trong khi client đã trình bày một bearer credential khác. Điều này tạo ra principal confusion và làm sai nguồn gốc hành động trong audit trail.

  • Quyền được áp dụng có thể không phải quyền của credential mà client dự định sử dụng, nhưng bằng chứng không cho thấy đây là cơ chế privilege escalation trực tiếp.
  • Tác động tổ chức thực tế có thể gồm điều tra sự cố khó khăn hơn, audit trail thiếu tin cậy và quyết định cấp quyền hoặc từ chối request không khớp với ý định của client.
  • Tác động được mô tả không bao gồm thay đổi phạm vi sang hệ thống khác hoặc làm gián đoạn dịch vụ.
  • Khả năng tác động phụ thuộc vào việc kẻ tấn công đặt được session cookie của mình vào client nạn nhân; deployment trên domain riêng không có ứng dụng đồng lưu trữ không tiếp cận được bằng đường này.

Tác động đến tổ chức

Lỗi có thể khiến một request được xử lý dưới danh tính của session cookie thay vì danh tính mà client chủ động trình bày bằng bearer token.

  • Audit record có thể gán hành động cho sai principal, làm sai lệch điều tra, đối soát và kiểm toán.
  • Request có thể được đánh giá theo ngữ cảnh quyền của cookie principal thay vì credential dự kiến, dẫn tới hành vi chấp nhận hoặc từ chối không đúng với ý định của client.
  • Các deployment dùng chung domain với ứng dụng khác cần được ưu tiên kiểm tra vì có thêm các đường đặt cookie được nguồn mô tả.
  • Bằng chứng không xác nhận một kịch bản chiếm quyền trực tiếp, mở rộng đặc quyền hoặc gián đoạn dịch vụ.

Cách khắc phục

  1. Nâng cấp Apache Airflow bị ảnh hưởng lên 3.3.2, là bản phát hành được nguồn Apache xác nhận đã backport bản sửa cho nhánh 3.3.x. Xác minh package apache-airflow-core thực tế sau khi triển khai.
  2. Sau nâng cấp, thực hiện kiểm thử xác nhận trong môi trường kiểm thử rằng khi request có cả cookie và credential rõ ràng, credential rõ ràng được dùng để phân giải caller và audit identity tương ứng được ghi nhận. Không dùng dữ liệu hoặc tài khoản production cho bước xác nhận này.
  3. Nếu chưa thể nâng cấp ngay, ưu tiên giảm phơi nhiễm của deployment bằng cách xem xét tách Airflow UI khỏi các ứng dụng dùng chung parent domain và rà soát các đường đặt cookie từ sibling subdomain, ứng dụng đồng miền hoặc shared workstation. Đây là biện pháp giảm điều kiện tấn công, không phải bản sửa đã được xác nhận.
  4. Bằng chứng được xem xét không nêu một configuration workaround đầy đủ. Không coi việc tách domain hoặc không quan sát thấy audit bất thường là thay thế cho nâng cấp bản sửa.

Cách phát hiện

  1. Kiểm kê các instance và package apache-airflow-core, xác định chính xác nhánh phát hành đang chạy trước khi đánh giá trạng thái an toàn.
  2. Tại reverse proxy, API gateway hoặc telemetry của ứng dụng, rà soát các request tới Airflow core API có đồng thời cookie _token và header Authorization: Bearer.
  3. Đối chiếu audit record của các request hỗn hợp với danh tính của credential rõ ràng, nếu hệ thống client hoặc gateway có lưu thông tin đó. Ưu tiên các record trong đó principal được ghi nhận là người dùng phiên cookie thay vì danh tính mà client chủ động trình bày.
  4. Kiểm tra topology domain, sibling subdomain và các ứng dụng dùng chung parent domain. Xem xét khả năng cookie tossing, XSS trong ứng dụng đồng miền và việc dùng chung workstation như các điều kiện phơi nhiễm, không coi chúng là IOC đã được xác nhận.
  5. Việc không tìm thấy record bất thường không chứng minh deployment an toàn; cần kết hợp kết quả telemetry với phiên bản thực tế và cấu hình domain.
Nguồn (19)
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.