Stored XSS do bypass xác thực biểu thức Vega trong OpenSearch Dashboards của OpenSearch

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

Lỗ hổng CVE-2026-84942 là lỗ hổng Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') ảnh hưởng tới OpenSearch Dashboards (phiên bản bị ảnh hưởng: v2.0.0 – ≤ v3.5.0). Lỗ hổng này được xếp hạng ở mức Trung bình, với điểm CVSS 6.3. 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

Việc kiểm tra input không đúng cách trong phần triển khai hàm biểu thức Vega của OpenSearch Dashboards cho phép một tác nhân từ xa đã xác thực, có quyền ghi dashboard, thực thi JavaScript tùy ý trong context của các phiên trình duyệt của người dùng khác bằng cách lưu một Vega visualization được tạo thủ công. Routine xác thực checkForFunctionProperty không đệ quy vào các array chứa object, cho phép một function property nằm bên trong array vượt qua bước xác thực.

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

  • OpenSearch Dashboards, open-source, self-managed: affected từ v2.0.0 đến v2.19.0 và từ v3.0.0 đến v3.5.0, theo các bản minor release được AWS advisory liệt kê. Fixed releases được xác nhận là v2.19.5 và v3.6.0. Trạng thái của các nhánh hoặc bản phát hành song song không được liệt kê riêng nên cần đối chiếu trực tiếp với advisory và nhánh triển khai.
  • Amazon OpenSearch Service, AWS managed: advisory liệt kê các phiên bản affected gồm v2.3.0, v2.5.0, v2.7.0, v2.9.0, v2.11.0, v2.13.0, v2.15.0, v2.17.0, v2.19.0, v3.1.0, v3.3.0 và v3.5.0. AWS cho biết các phiên bản dịch vụ bị ảnh hưởng đã được patch thông qua service software update.
  • Amazon OpenSearch Serverless: not affected theo advisory.

Chi tiết kỹ thuật

Lỗi nằm trong cơ chế xác thực function của triển khai biểu thức Vega trong OpenSearch Dashboards. Routine checkForFunctionProperty kiểm tra các object nhưng không đệ quy vào các object nằm bên trong array, vì vậy một thuộc tính function được lồng trong array có thể vượt qua kiểm tra. Tác nhân từ xa đã xác thực cần có quyền ghi dashboard hoặc visualization để lưu một Vega visualization được tạo thủ công; khi visualization được người dùng khác mở trong trình duyệt, JavaScript tùy ý có thể chạy trong context của phiên trình duyệt đó. Pull request khắc phục lỗi bổ sung xử lý array và test tương ứng, đồng thời advisory cho biết các bản sửa có thêm hardening cho việc xác thực biểu thức Vega. Bằng chứng hiện có không mô tả payload cụ thể, endpoint cụ thể, API trình duyệt bị lạm dụng hoặc khả năng thực thi mã trực tiếp trên máy chủ.

Khả năng khai thác

Lỗi có thể bị tiếp cận qua mạng và yêu cầu tác nhân đã xác thực với quyền ghi dashboard hoặc visualization. Record mô tả attack complexity là thấp và yêu cầu passive user interaction, tức là phiên trình duyệt của người dùng khác phải tương tác với hoặc hiển thị visualization đã lưu; chi tiết về hành động chính xác của nạn nhân không được công bố. Record không xác định public exploit và không cung cấp trạng thái khẳng định về việc khai thác thực tế. Việc không có thông tin đó không chứng minh rằng chưa từng có hoạt động khai thác.

Tác động kỹ thuật

Lỗi cho phép JavaScript tùy ý chạy trong context trình duyệt của người dùng khác khi họ tương tác với visualization đã lưu. Do mã chạy trong phiên của nạn nhân, tác động thực tế có thể mở rộng đến dữ liệu, dashboard và thao tác mà người dùng đó được phép truy cập, nhưng record không xác định quyền cụ thể của từng vai trò. Lỗi không yêu cầu quyền quản trị toàn hệ thống, nhưng yêu cầu quyền ghi dashboard hoặc visualization trước đó. Evidence hiện có không cho thấy server-side code execution, ảnh hưởng trực tiếp đến availability hoặc việc vượt qua xác thực máy chủ.

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

Một visualization độc hại có thể được lưu lại và kích hoạt khi những người dùng khác sử dụng dashboard, thay vì chỉ ảnh hưởng đến trình duyệt của tác nhân tạo visualization. JavaScript chạy trong context của phiên nạn nhân có thể, tùy theo quyền của phiên đó, đọc dữ liệu được hiển thị hoặc thực hiện các thao tác thay mặt người dùng; đây là hậu quả có thể xảy ra, không phải bằng chứng về một vụ rò rỉ cụ thể. Rủi ro tập trung vào confidentiality và integrity của các phiên trình duyệt bị tác động, trong khi evidence hiện có không xác lập khả năng thực thi mã phía máy chủ hoặc gây mất availability cho OpenSearch.

Cách khắc phục

  1. OpenSearch Dashboards tự quản lý: nâng cấp theo đúng nhánh lên v2.19.5 hoặc v3.6.0. Đây là các fixed release được advisory xác nhận; cần chọn bản phù hợp với nhánh đang vận hành và không suy luận trạng thái của nhánh khác nếu chưa được xác minh.
  2. Amazon OpenSearch Service: áp dụng service software update do AWS cung cấp cho domain. Advisory cho biết không cần nâng cấp engine version; domain bật automatic software updates sẽ nhận bản cập nhật trong off-peak window tiếp theo.
  3. Trong thời gian chưa thể cập nhật, hạn chế quyền ghi visualization và saved-object APIs chỉ cho người dùng tin cậy, đồng thời cân nhắc tắt loại visualization Vega. Đây là biện pháp giảm thiểu tạm thời, không thay thế bản sửa.
  4. Nếu sử dụng fork hoặc derivative code, đưa thay đổi sửa checkForFunctionProperty và các hardening liên quan đến Vega expression validation vào codebase, sau đó chạy bộ test phù hợp trước khi triển khai.
  5. Sau cập nhật, xác minh lại phiên bản thực tế của từng deployment và rà soát các Vega visualization đã được lưu bởi tài khoản có quyền ghi trong thời gian hệ thống còn bị ảnh hưởng.

Cách phát hiện

  1. Kiểm kê các bản triển khai OpenSearch Dashboards tự quản lý và các domain Amazon OpenSearch Service, sau đó đối chiếu phiên bản đang chạy với các nhánh bị ảnh hưởng và đã sửa.
  2. Xác định các deployment còn cho phép người dùng không hoàn toàn tin cậy ghi dashboard, visualization hoặc saved object; ưu tiên rà soát những tài khoản có quyền này.
  3. Rà soát các Vega visualization đã lưu để tìm thay đổi bất thường, đặc biệt là function property nằm trong object thuộc một array. Đây là kiểm tra theo cơ chế lỗi, không phải IOC đã được vendor xác nhận.
  4. Kiểm tra audit record của các thao tác lưu hoặc sửa dashboard và visualization, rồi đối chiếu với việc các người dùng khác đã mở những object đó.
  5. Không có log event, signature hoặc IOC cụ thể nào được nguồn hiện có công bố. Việc không thấy log đáng ngờ không đủ để kết luận hệ thống an toàn; cần xác nhận phiên bản và áp dụng bản sửa trước.
Nguồn (20)
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.