Lỗ hổng chèn công thức CSV lưu trữ trong bulk media export của AzuraCast

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

Lỗ hổng CVE-2026-121433 là lỗ hổng Improper Neutralization of Formula Elements in a CSV File ảnh hưởng tới AzuraCast (phiên bản bị ảnh hưởng: < 0.24.0). Lỗ hổng này được xếp hạng ở mức Trung bình, với điểm CVSS 5.1. 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

AzuraCast trước 0.24.0 chứa lỗ hổng chèn công thức CSV dạng lưu trữ, cho phép người dùng station có quyền Media lưu metadata có tiền tố công thức thông qua bulk media import. Kẻ tấn công có thể nhập các title, artist hoặc custom field được tạo riêng qua /api/station/{station_id}/files/bulk để công thức được đánh giá khi người dùng khác mở các CSV đã xuất trong spreadsheet.

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

  • AzuraCast AzuraCast từ 0 đến trước 0.24.0 được xác định là bị ảnh hưởng.
  • Nhánh triển khai bị ảnh hưởng là nơi station user có quyền Media có thể sử dụng bulk media import và metadata đó sau đó được đưa vào bulk CSV export.
  • 0.24.0 được nguồn CNA/vendor đánh dấu là không bị ảnh hưởng.
  • Trạng thái của các nhánh song song hoặc các bản phát hành muộn hơn ngoài phạm vi được nêu rõ trong hồ sơ không được xác lập độc lập bởi các nguồn đã kiểm tra.

Chi tiết kỹ thuật

AzuraCast xử lý metadata media do người dùng kiểm soát thông qua luồng import và export media hàng loạt của station. Người dùng đã xác thực có quyền Media có thể gửi tiêu đề, tên nghệ sĩ, album, thể loại, lời bài hát, ISRC, metadata bổ sung hoặc custom field chứa tiền tố công thức đến POST /api/station/{station_id}/files/bulk. Dữ liệu này được lưu lại và có thể xuất hiện trong file CSV khi người dùng khác gọi GET /api/station/{station_id}/files/bulk.

Khi file CSV được mở bằng ứng dụng spreadsheet có khả năng đánh giá công thức, các giá trị bắt đầu bằng =, +, -, @, tab hoặc carriage return có thể bị xử lý như công thức thay vì văn bản. Đây là lỗi CWE-1236, Improper Neutralization of Formula Elements in a CSV File. Advisory cho biết luồng dữ liệu được xác nhận qua phân tích mã nguồn, nhưng kết quả đánh giá công thức không được tái hiện động trong quá trình đánh giá. Chi tiết triển khai đầy đủ của bản vá không được nêu trong các nguồn đã kiểm tra.

Khả năng khai thác

Lỗ hổng có thể bị khai thác qua mạng bởi người dùng station đã đăng nhập và có quyền Media; không cần quyền quản trị toàn hệ thống. Điều kiện chính là người dùng này có thể nhập metadata media hàng loạt, sau đó một người dùng khác phải tải và mở file CSV bằng ứng dụng spreadsheet có hỗ trợ công thức. Việc mở file là tương tác của người dùng đích, nên payload không tự động thực thi chỉ do được lưu trên máy chủ. Hồ sơ ghi nhận public proof of concept, và advisory có các bước tái hiện với payload vô hại; tuy nhiên advisory nêu rõ tác động chưa được tái hiện động trong quá trình đánh giá. Không có bằng chứng trong các nguồn đã kiểm tra cho thấy khai thác không cần xác thực, thực thi mã phía máy chủ hoặc thực thi lệnh hệ điều hành.

Tác động kỹ thuật

Người dùng có quyền Media có thể tác động đến dữ liệu được lưu trong station bằng cách đưa metadata có tiền tố công thức vào bulk media import. Khi một người dùng khác tải và mở CSV bằng spreadsheet phù hợp, ô dữ liệu có thể được tính như công thức thay vì hiển thị nguyên văn.

Hậu quả có thể gồm sửa đổi dữ liệu hiển thị, báo cáo hoặc phép tính sai, gọi tài nguyên bên ngoài do spreadsheet hỗ trợ và trong điều kiện phù hợp là tiết lộ thông tin mà spreadsheet có thể truy cập. Tác động phụ thuộc vào ứng dụng spreadsheet, cấu hình bảo mật và tương tác của người mở file. Lỗ hổng không được mô tả là cho phép truy cập trái phép vào AzuraCast, thực thi mã phía máy chủ hoặc làm gián đoạn dịch vụ.

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

Lỗ hổng có thể làm sai lệch nội dung hiển thị trong spreadsheet, gây ra các phép tính hoặc báo cáo sai và làm giảm độ tin cậy của dữ liệu media được xuất. Tùy ứng dụng spreadsheet, phiên bản, cấu hình bảo mật và thao tác của người dùng, công thức có thể gọi tài nguyên bên ngoài mà ứng dụng cho phép. Trong một số điều kiện, điều này có thể dẫn đến tiết lộ thông tin mà spreadsheet có thể truy cập, nhưng advisory không xác nhận một kịch bản tiết lộ cụ thể.

Ảnh hưởng chính nằm ở người dùng mở CSV và các quy trình downstream sử dụng file này, không phải ở việc AzuraCast tự động thực thi mã trên máy chủ. Advisory cũng không xác nhận thực thi mã máy chủ, thực thi trong tiến trình AzuraCast hoặc thực thi lệnh hệ điều hành.

Cách khắc phục

  1. Nâng cấp AzuraCast lên 0.24.0, là bản phát hành được nguồn CNA/vendor xác định là đã được xử lý hoặc không bị ảnh hưởng. Không nên tự động suy diễn trạng thái của các nhánh song song chưa được xác minh.
  2. Rà soát metadata đã tồn tại trong media records, extra metadata và station custom fields; loại bỏ hoặc mã hóa an toàn các giá trị có thể được spreadsheet diễn giải như công thức trước khi phân phối CSV.
  3. Nếu có custom fork hoặc lớp tích hợp tự tạo CSV, áp dụng chính sách spreadsheet-safe encoding nhất quán cho mọi ô export do người dùng kiểm soát, bao gồm các tiền tố công thức như =, +, -, @, tab và carriage return.
  4. Trong thời gian chưa nâng cấp, giảm số tài khoản có quyền Media xuống mức cần thiết và yêu cầu người dùng kiểm tra CSV bằng text editor hoặc quy trình an toàn trước khi mở bằng spreadsheet. Đây là biện pháp giảm rủi ro tạm thời, không thay thế bản vá.
  5. Các nguồn đã kiểm tra không cung cấp một workaround triển khai riêng biệt ngoài việc nâng cấp và trung hòa dữ liệu export.

Cách phát hiện

Các bước kiểm tra nên tập trung vào quyền, phiên bản, dữ liệu lưu trữ và file export:

  1. Kiểm kê các instance AzuraCast và xác định các instance thuộc nhánh bị ảnh hưởng trong affected_summary.
  2. Rà soát station user có quyền Media, đặc biệt các tài khoản có thể thực hiện bulk media import.
  3. Kiểm tra metadata media, extra metadata và station custom fields để tìm các giá trị bắt đầu bằng =, +, -, @, tab hoặc carriage return. Thực hiện việc này bằng parser hoặc text editor, không mở trực tiếp file bằng spreadsheet có thể đánh giá công thức.
  4. Kiểm tra các file bulk media CSV đã xuất trước khi phân phối hoặc mở, và xác định các ô có giá trị giống công thức.
  5. Nếu có audit log, rà soát các yêu cầu POST /api/station/{station_id}/files/bulk gắn với tài khoản có quyền Media. Đây là biện pháp giám sát phòng ngừa, không phải IOC chuyên biệt được advisory xác nhận.

Không nên coi việc không tìm thấy giá trị đáng ngờ trong một file export là bằng chứng rằng toàn bộ metadata lưu trữ đã an toàn.

Nguồn (8)
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.