-
09/04/2020
-
125
-
1.580 bài viết
Go vá gấp hai lỗ hổng nghiêm trọng cho phép chèn mã và bỏ qua xác thực TLS
Nhóm phát triển Go vừa phát hành hai bản cập nhật bảo mật Go 1.25.7 và Go 1.24.13 nhằm khắc phục hai lỗ hổng nghiêm trọng trong các thành phần cốt lõi, có thể dẫn đến chèn mã trái phép hoặc bỏ qua cơ chế xác thực trong một số kịch bản triển khai. Các bản vá được khuyến nghị áp dụng khẩn cấp cho toàn bộ người dùng.
Lỗ hổng đầu tiên, mang mã CVE-2025-61732, ảnh hưởng đến công cụ cmd/cgo, thành phần cho phép chương trình Go tương tác với mã C/C++. Nguyên nhân bắt nguồn từ sự khác biệt trong cách Go compiler và các trình biên dịch C/C++ xử lý comment. Kẻ tấn công có thể lợi dụng sự không nhất quán này để chèn các chỉ thị độc hại vào bên trong khối comment, khiến nhà phát triển tưởng rằng đoạn mã đã bị vô hiệu hóa, trong khi trình biên dịch C/C++ vẫn coi đó là mã hợp lệ và đưa vào file nhị phân cuối cùng. Lỗ hổng này mở ra nguy cơ chèn mã thực thi một cách âm thầm, khó bị phát hiện trong quá trình rà soát mã nguồn.
Để khắc phục, bản vá đã điều chỉnh cơ chế xử lý, đảm bảo các documentation comment do người dùng cung cấp không còn được phân tích trong giai đoạn xây dựng cây cú pháp, qua đó loại bỏ khả năng cài cắm payload ẩn trong quá trình biên dịch.
Lỗ hổng thứ hai, được theo dõi với mã CVE-2025-68121, nằm trong gói crypto/tls và liên quan đến cơ chế khôi phục phiên TLS khi sử dụng Config.GetConfigForClient. Trong một số tình huống, TLS có thể tiếp tục sử dụng session ticket key từ cấu hình gốc ngay cả khi máy chủ đã thay đổi các tham số xác thực, chẳng hạn như ClientCAs. Hệ quả là một phiên TLS được thiết lập trước đó vẫn có thể được khôi phục mà không cần đáp ứng các yêu cầu xác thực mới, tạo ra nguy cơ bỏ qua xác thực phía client.
Để khắc phục, cơ chế TLS đã được điều chỉnh nhằm thực hiện kiểm tra chéo, chỉ cho phép khôi phục phiên khi chuỗi chứng thư đã xác thực vẫn có gốc tin cậy hợp lệ, tồn tại trong ClientCAs hoặc RootCAs. Biện pháp này áp dụng cho các cấu hình ClientAuth ở mức VerifyClientCertIfGiven và RequireAndVerifyClientCert.
Nhóm phát triển Go nhấn mạnh rằng việc cập nhật lên Go 1.25.7 hoặc Go 1.24.13 là cần thiết, đặc biệt với các hệ thống nhạy cảm về bảo mật hoặc các dịch vụ mạng đang vận hành trong môi trường sản xuất, nhằm giảm thiểu nguy cơ bị khai thác dẫn đến thực thi mã trái phép hoặc kết nối không đáp ứng đầy đủ yêu cầu xác thực.
Theo Cyber Press