Lỗi đăng xuất bằng bearer token của Apache Software Foundation Apache Airflow khiến phiên vẫn còn hiệu lực

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-86473 là gì?

Lỗ hổng CVE-2026-86473 là lỗ hổng Insufficient Session Expiration ảnh hưởng tới Apache Airflow (phiên bản bị ảnh hưởng: 3.0.0 – < 3.3.2). Lỗ hổng này được xếp hạng ở mức Nghiêm trọng, với điểm CVSS 9.1. 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

Apache Airflow: endpoint logout của Core API chỉ thu hồi session token được gửi dưới dạng cookie _token. Khi một client đăng xuất bằng cách gửi credential của mình dưới dạng Authorization bearer header thay vào đó, endpoint trả về phản hồi logout thông thường nhưng không thu hồi gì, vì vậy token vẫn hợp lệ cho đến khi hết hạn. Kẻ tấn công đã có bản sao của token đó vẫn giữ được quyền truy cập của nạn nhân sau khi nạn nhân đăng xuất và tin rằng session đã kết thúc; thời hạn token mặc định là 24 giờ và có thể cấu hình. Ảnh hưởng đến các API client xác thực bằng bearer token thay vì browser session cookie. Kẻ tấn công phải có sẵn bản sao của một token hợp lệ; việc lấy token nằm ngoài phạm vi của vấn đề này, và không có quyền nào ngoài quyền của chính nạn nhân được cấp thêm. Người dùng apache-airflow được khuyến nghị nâng cấp lên phiên bản 3.3.2 hoặc mới hơn, phiên bản này khắc phục vấn đề.

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

  • Gói apache-airflow của Apache Software Foundation bị ảnh hưởng từ phiên bản 3.0.0 và các phiên bản nhỏ hơn 3.3.2 theo semver.
  • Bản ghi chuẩn hóa đặt default_status là unaffected ngoài phạm vi được liệt kê, nhưng không cung cấp ranh giới riêng cho các nhánh song song hoặc nhánh khác. Không nên suy luận trạng thái của các nhánh chưa được nêu.
  • Apache cho biết vấn đề được khắc phục trong phiên bản 3.3.2.

Chi tiết kỹ thuật

Endpoint logout của Core API chỉ thu hồi session token được gửi trong cookie _token. Khi client gửi credential trong header Authorization: Bearer thay vì browser session cookie, endpoint vẫn trả về phản hồi logout bình thường nhưng bearer token không bị thu hồi. Token đó tiếp tục hợp lệ cho đến khi hết hạn; thời hạn mặc định là 24 giờ và có thể cấu hình. Bản sửa được mô tả trong upstream thay đổi quy trình để thu thập mọi credential được gửi trong request bằng collect_request_tokens() và thu hồi chúng trước redirect hoặc xóa cookie. Bằng chứng công khai không cho biết attacker đã lấy bản sao token bằng cách nào; việc lấy token nằm ngoài phạm vi của vấn đề này.

Khả năng khai thác

Lỗi có thể bị khai thác qua mạng thông qua Core API logout endpoint. Điều kiện tiên quyết là attacker đã có bản sao của một bearer token hợp lệ thuộc về nạn nhân; việc lấy token không nằm trong phạm vi lỗi. Sau khi nạn nhân đăng xuất, attacker có thể tiếp tục sử dụng token cho đến khi token hết hạn, trong phạm vi quyền vốn có của token. Advisory không mô tả yêu cầu tương tác bổ sung của nạn nhân và nêu rõ attacker không được cấp thêm quyền ngoài quyền của nạn nhân. Bằng chứng được xem xét không nêu một chiến dịch, nạn nhân cụ thể hoặc public exploit nào.

Tác động kỹ thuật

Kết quả kỹ thuật là logout không chấm dứt hiệu lực của bearer token được gửi trong header Authorization. Token bị sao chép có thể tiếp tục xác thực các request API sau khi chủ sở hữu đã logout, với quyền không vượt quá quyền của token ban đầu. Điều này có thể dẫn đến mất tính bí mật hoặc toàn vẹn của dữ liệu trong phạm vi mà token được phép truy cập, nhưng không tạo thêm đặc quyền cho attacker. Lỗi không được mô tả là ảnh hưởng đến availability và không cung cấp bằng chứng về một vector lấy token cụ thể.

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

Người dùng API có thể tin rằng phiên đã kết thúc trong khi bearer token vẫn còn hoạt động. Bất kỳ ai đã có bản sao token đều có thể tiếp tục thực hiện các thao tác API trong phạm vi quyền của nạn nhân, nên có thể xảy ra truy cập dữ liệu hoặc thay đổi tài nguyên mà token đó được phép sử dụng. Khoảng thời gian phơi nhiễm kéo dài đến khi token hết hạn, với thời hạn mặc định là 24 giờ và có thể cấu hình. Đây là lỗi session invalidation; việc attacker lấy được token không được xem là một phần của lỗi này.

Cách khắc phục

  1. Nâng cấp apache-airflow lên phiên bản 3.3.2 hoặc mới hơn theo khuyến nghị của Apache. Phạm vi được ghi nhận cần xử lý là 3.0.0 đến trước 3.3.2.
  2. Xác minh sau nâng cấp rằng mọi deployment, worker hoặc service dùng Core API đều chạy bản đã sửa; không chỉ kiểm tra browser session cookie vì lỗi tập trung vào bearer-token client.
  3. Trong quá trình triển khai bản sửa, coi các bearer token đã được dùng để logout là có thể còn hợp lệ cho đến khi hết hạn. Nguồn công khai không nêu một quy trình ứng phó khẩn cấp riêng để thu hồi chúng ngoài cơ chế quản lý credential hiện có của tổ chức.

Cách phát hiện

  1. Kiểm kê các bản cài đặt apache-airflow và đối chiếu với nhánh phiên bản bị ảnh hưởng.
  2. Xác định các API client gửi credential bằng header Authorization: Bearer, thay vì dùng cookie _token; đây là nhóm client chịu tác động trực tiếp.
  3. Trong môi trường kiểm thử có kiểm soát, đăng xuất bằng bearer token rồi xác minh một request tiếp theo bằng chính token đó bị từ chối. Không coi phản hồi logout bình thường là bằng chứng token đã bị thu hồi.
  4. Rà soát log của API gateway và Airflow để tìm việc tiếp tục sử dụng bearer token sau thời điểm logout. Đây là biện pháp giám sát phòng ngừa, không phải indicator được vendor xác nhận.
  5. Nếu hệ thống thuộc phạm vi ảnh hưởng, giả định các token đã dùng để logout có thể vẫn hợp lệ cho đến khi hết hạn; việc không thấy log tiếp tục sử dụng không chứng minh rằng token đã an toàn.
Nguồn (16)
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.

Khám phá CyStack VulnScan