Bypass xác thực qua SSO do cắt ngắn mã định danh trong Bitwarden Server

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

Lỗ hổng CVE-2026-101878 là lỗ hổng Incorrect Implementation of Authentication Algorithm ảnh hưởng tới bitwarden server (phiên bản bị ảnh hưởng: 2025.6.0 – < 2026.5.0). Lỗ hổng này được xếp hạng ở mức Cao, với điểm CVSS 7.7. Lỗ hổng này đã có mã hoặc bằng chứng khai thác công khai, nhưng điều đó chưa xác nhận việc khai thác trong thực tế.

Giới thiệu chung

Dữ liệu gốc

Bitwarden Server từ phiên bản 2025.6.0 đến trước 2026.5.0 khai báo tham số @ExternalId của stored procedure User_ReadBySsoUserOrganizationIdExternalId là NVARCHAR(50), trong khi cột được truy vấn lưu NVARCHAR(300), âm thầm cắt ngắn mã định danh đăng nhập SSO trên các triển khai SQL Server và cho phép người dùng có mã định danh do identity provider cung cấp bắt đầu bằng toàn bộ mã định danh 50 ký tự của một thành viên khác trong tổ chức đăng nhập với tư cách thành viên đó và nhận access token thuộc phạm vi của nạn nhân.

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

  • Bitwarden Server: các phiên bản >= 2025.6.0, < 2026.5.0 được đánh dấu là bị ảnh hưởng.
  • Phạm vi triển khai: lỗi nằm trong đường xử lý SSO sử dụng stored procedure trên SQL Server. Các đường xử lý cơ sở dữ liệu khác không được bản ghi chuẩn xác nhận là bị ảnh hưởng.
  • Bản sửa: Bitwarden Server 2026.5.0 được xác định là bản phát hành có bản sửa. Không nên suy luận từ thông tin này rằng mọi nhánh song song hoặc nhánh về sau đều đã được xác minh nếu chưa kiểm tra riêng.

Chi tiết kỹ thuật

Bitwarden Server sử dụng stored procedure User_ReadBySsoUserOrganizationIdExternalId để tra cứu người dùng SSO trên đường xử lý SQL Server. Stored procedure này khai báo tham số @ExternalId là NVARCHAR(50), trong khi cột SsoUser.ExternalId được lưu dưới dạng NVARCHAR(300). SQL Server âm thầm chuyển giá trị dài hơn về 50 ký tự đầu tiên trước khi thực hiện phép so sánh bằng, thay vì báo lỗi hoặc từ chối yêu cầu. Nếu người tấn công có thể sử dụng hoặc tác động đến một identity-provider identifier bắt đầu bằng chính xác toàn bộ định danh 50 ký tự của thành viên nạn nhân, phép tra cứu có thể trả về bản ghi người dùng của nạn nhân. Luồng SSO sau đó có thể cấp access token mang danh tính của nạn nhân. Điều kiện này yêu cầu truy cập được luồng đăng nhập SSO và tạo được định danh có tiền tố phù hợp, nên không phải mọi tài khoản SSO đều có thể khai thác theo cùng cách. Bằng chứng hiện có xác định lỗi trong đường xử lý SQL Server; chưa đủ cơ sở để kết luận rằng các đường xử lý cơ sở dữ liệu khác cũng bị ảnh hưởng.

Khả năng khai thác

Lỗi có thể được tiếp cận qua mạng thông qua luồng đăng nhập SSO. Bản ghi đánh giá yêu cầu quyền ở mức thấp, không cần tương tác riêng của nạn nhân và có độ phức tạp khai thác cao. Người tấn công vẫn cần đăng nhập hoặc kiểm soát được danh tính do identity provider cung cấp, đồng thời phải đáp ứng điều kiện tiền tố định danh. Đã có tài liệu kỹ thuật công khai và bằng chứng khai thác cho lỗi này. Bản ghi không xác nhận việc lỗi đã bị khai thác trong thực tế hoặc trong một chiến dịch cụ thể.

Tác động kỹ thuật

Kết quả kỹ thuật chính là kẻ tấn công có thể được xác thực như một thành viên khác trong cùng tổ chức và nhận access token mang user identity của thành viên đó. Điều này có thể mở rộng quyền truy cập của kẻ tấn công tới các chức năng, dữ liệu hoặc thao tác mà token của nạn nhân được phép sử dụng. Rủi ro đối với tính bí mật, tính toàn vẹn và tính sẵn sàng phụ thuộc vào quyền của nạn nhân và các endpoint có thể truy cập bằng token. Lỗi không tự động cho phép vượt qua mọi lớp mã hóa phía máy khách, và bằng chứng hiện có không xác nhận việc giải mã vault. Phạm vi tổ chức vẫn được áp dụng trong phép tra cứu, nên tác động được mô tả ở đây tập trung vào việc giả mạo thành viên trong tổ chức bị ảnh hưởng.

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

Kẻ tấn công có thể đăng nhập vào tổ chức dưới danh tính của một thành viên khác thay vì tài khoản của chính mình. Access token thuộc phạm vi của nạn nhân có thể cho phép truy cập các chức năng và dữ liệu mà tài khoản đó được cấp quyền, gây rủi ro đối với dữ liệu, cấu hình tổ chức và các thao tác quản trị. Mức độ ảnh hưởng thực tế phụ thuộc vào quyền của thành viên bị giả mạo và cấu hình mã hóa của tổ chức. Bằng chứng hiện có xác nhận việc cấp token mang danh tính nạn nhân, nhưng không chứng minh một kịch bản cụ thể về giải mã vault hoặc đánh cắp dữ liệu.

Cách khắc phục

  1. Nâng cấp Bitwarden Server lên chính xác phiên bản 2026.5.0, là phiên bản được xác định có bản sửa cho lỗi này.
  2. Xác nhận các migration cơ sở dữ liệu đã chạy thành công trên từng hệ thống SQL Server. Bản sửa bao gồm cập nhật stored procedure và migration util/Migrator/DbScripts/2026-04-23_00_UpdateReadBySsoUserOrganizationIdExternalI.sql.
  3. Sau khi nâng cấp, kiểm tra User_ReadBySsoUserOrganizationIdExternalId để bảo đảm @ExternalId được khai báo là NVARCHAR(300) và stored procedure đã được áp dụng vào cơ sở dữ liệu đang vận hành.
  4. Nếu chưa thể nâng cấp, hãy coi các triển khai SQL Server SSO trong phạm vi bị ảnh hưởng là chưa được bảo vệ và yêu cầu hướng dẫn giảm thiểu trực tiếp từ Bitwarden. Bản ghi hiện không cung cấp một workaround đã được xác nhận.

Cách phát hiện

  • Kiểm kê tất cả phiên bản Bitwarden Server và xác định các hệ thống đang nằm trong phạm vi >= 2025.6.0, < 2026.5.0.
  • Xác định hệ thống có bật SSO và sử dụng SQL Server làm cơ sở dữ liệu, vì đây là đường xử lý được xác định là chịu ảnh hưởng.
  • Kiểm tra định nghĩa của stored procedure User_ReadBySsoUserOrganizationIdExternalId trên SQL Server. Tham số @ExternalId phải có kiểu NVARCHAR(300) trong bản đã được sửa.
  • Rà soát các cấu hình SSO và identity-provider identifier có thể dài hơn 50 ký tự hoặc cho phép người dùng tác động đến giá trị định danh. Đây là kiểm tra điều kiện phơi nhiễm, không phải chỉ báo chắc chắn đã bị khai thác.
  • Đối chiếu danh tính từ IdP với tài khoản được gắn vào access token và các lần truy cập hồ sơ bất thường. Đây là biện pháp giám sát phòng ngừa; không có log event hoặc IOC cụ thể nào được xác nhận trong bằng chứng hiện có. Việc không tìm thấy log bất thường không chứng minh hệ thống an toàn.
Nguồn (13)
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.