Label Studio là một công cụ đánh dấu dữ liệu nguồn mở phổ biến được sử dụng bởi các machine learning với quy mô khác nhau để chuẩn bị và cải thiện dữ liệu đào tạo. Tuy nhiên, một lỗ hổng bảo mật gần đây trong Label Studio đã khiến người dùng có nguy cơ bị xâm phạm tài khoản.
Lỗ hổng bảo mật được gán mã định danh CVE CVE-2023-43791 và điểm CVSS là 9.8, là khóa bí mật Django được mã hóa cứng. Khóa bí mật là một khóa mật mã được sử dụng để ký và xác minh các thông báo phiên (session tokens). Trong ngữ cảnh của Label Studio, khóa bí mật được sử dụng để đảm bảo rằng chỉ những người dùng được ủy quyền mới có thể đăng nhập vào nền tảng.
Phiên bản 1.8.1 của Label Studio đã công khai chứa một Django SECRET_KEY được mã hóa cứng trong cài đặt ứng dụng của nó. SECRET_KEY là một yếu tố quan trọng trong hệ thống bảo vệ bảo mật ứng dụng web, chìa khóa này đảm bảo tính chính thức và toàn vẹn của các thông báo phiên (session tokens)
Django SECRET_KEY đóng vai trò như là con dấu của người viết mật mã, đảm bảo rằng mã thông báo phiên không bị giả mạo. Trong một môi trường được cấu hình an toàn, chìa khóa là một bí mật được bảo vệ chặt chẽ, không được tiết lộ.Tuy nhiên, khóa này đã được mã hóa cứng trong mã nguồn mở, khiến nó trở thành một loại chìa khóa chủ chốt cho kẻ tấn công mạng.
Lợi dụng lỗi bảo mật CVE-2023-43791, kẻ tấn công có quyền truy cập được xác thực có thể lợi dụng một lỗ hổng đồng thời trong Object Relational Mapper (ORM). Lỗ hổng này có thể cho phép người dùng với mục đích xấu lấy ra mã băm mật khẩu của bất kỳ tài khoản nào. Thông thường, có một phần bảo mật trong thông báo phiên là _auth_user_hash, nó là một loại mã băm đặc biệt từ mật khẩu người dùng, sẽ ngăn chặn việc giả mạo mã thông báo phiên không được phép. Tuy nhiên, khóa được mã hóa cứng và ORM Leak, kẻ tấn công có thể sao chép trái phép mã thông báo phiên cho bất kỳ người dùng nào.
Lỗ hổng này có thể khiến cho một kẻ xâm nhập cấp thấp leo lên vị trí quản trị viên siêu trong hệ thống, có quyền cao nhất trong ứng dụng.
Các nhà phát triển của Label Studio đã xóa SECRET_KEY được mã hóa cứng trong các phiên bản sau đó, bắt đầu từ phiên bản 1.8.2. Nếu bạn đang sử dụng Label Studio, quan trọng là phải nâng cấp lên phiên bản từ 1.8.2 trở lên càng sớm càng tốt. Phiên bản Label Studio này loại bỏ khóa bí mật được mã hóa cứng và khắc phục lỗ hổng ORM.