Các ứng dụng dựa trên Golang bị ảnh hưởng bởi lỗ hổng bảo mật ‘ParseThru’ mới

Lỗ hổng ParseThru đã được các nhà nghiên cứu bảo mật phát hiện và lỗ hổng này làm ảnh hưởng đến các ứng dụng dựa trên Golang bằng các truy cập trái phép vào các ứng dụng dựa trên đám mây.

Công ty an ninh mạng Oxeye của Israel cho biết trong một tuyên bố được chia sẻ với The Hacker News: “Lỗ hổng mới được phát hiện cho phép một tác nhân đe dọa được bỏ qua các xác thực trong một số điều kiện nhất định, bằng cách sử dụng các phương pháp phân tích cú pháp URL không an toàn được nhúng trong ngôn ngữ này”

Vấn đề, cốt lõi của nó, liên quan đến sự không nhất quán do những thay đổi được giới thiệu trong logic phân tích cú pháp URL của Golang được triển khai trong thư viện “net /url”.

Trong khi các phiên bản của ngôn ngữ lập trình sớm hơn 1.17 coi dấu chấm phẩy là dấu phân cách truy vấn hợp lệ (ví example.com?a=1;b=2&c=3), hành vi này đã được sửa đổi để tạo ra lỗi khi tìm kiếm chuỗi truy vấn có chứa dấu chấm phẩy.

“Các lệnh net/url và net/http được chấp nhận “;” (dấu chấm phẩy) như một dấu phân tách tham số trong các yêu cầu URL, ngoài “&” (dấu và)”, theo ghi chú phát hành cho phiên bản 1.17 được phát hành vào tháng 1 năm ngoái.

“Bây giờ, các tham số với dấu chấm phẩy không được mã hóa theo tỷ lệ phần trăm bị từ chối và máy chủ net/http ghi lại cảnh báo trong ‘Server.ErrorLog’ khi chúng gặp một trong URL yêu cầu.”

Sự cố phát sinh khi một API công khai dựa trên Golang được xây dựng dựa trên phiên bản 1.17 trở lên giao tiếp với dịch vụ phụ trợ đang chạy phiên bản cũ hơn, dẫn đến tình huống trong đó tác nhân độc hại có thể gửi lậu các yêu cầu kết hợp các tham số truy vấn mà nếu không sẽ bị từ chối.

Nói một cách đơn giản, ý tưởng là gửi các yêu cầu có chứa dấu chấm phẩy trong chuỗi truy vấn, được API Golang dành cho người dùng bỏ qua nhưng được xử lý bởi dịch vụ nội bộ. Đến lượt nó, điều này có thể thực hiện được do một trong các phương thức chịu trách nhiệm nhận chuỗi truy vấn đã phân tích cú pháp âm thầm loại bỏ lỗi được trả về.

Oxeye cho biết họ đã xác định được một số trường hợp của ParseThru trong các dự án mã nguồn mở như Harbour, Traefik và Skipper, điều này khiến nó có thể bỏ qua các xác thực đã đặt ra và thực hiện các hành động trái phép. Các vấn đề đã được giải quyết sau khi tiết lộ có trách nhiệm cho các nhà cung cấp tương ứng

Đây không phải là lần đầu tiên việc phân tích cú pháp URL đặt ra vấn đề bảo mật. Đầu tháng 1, Claroty và đã tiết lộ tới 8 lỗ hổng trong các thư viện của bên thứ ba được viết bằng ngôn ngữ C, JavaScript, PHP, Python và Ruby từ việc nhầm lẫn trong phân tích cú pháp URL.

Nguồn: fr.techtribune.net

Leave a Reply

Your email address will not be published. Required fields are marked *