Lỗi prototype pollution trong thư viện Node.js cho phép tấn công DoS, truy cập shell từ xa

16/06/2015
83
672 bài viết
Lỗi prototype pollution trong thư viện Node.js cho phép tấn công DoS, truy cập shell từ xa
Một lỗ hổng trong thư viện express-fileupload cho phép tin tặc thực hiện các cuộc tấn công Prototype pollution trên các máy chủ Node.js, một nhà nghiên cứu cho biết.

express-fileupload, gói Node.js với hơn 7 triệu lượt tải xuống, cho phép các ứng dụng xử lý tệp được tải lên trong các ứng dụng web.

Lỗ hổng có khả năng dẫn đến các cuộc tấn công từ chối dịch vụ (DoS) và, trong một số trường hợp, truy cập shell từ xa. Lỗ hổng đã được vá trong bản phát hành mới nhất của thư viện,

node.jpg

JavaScript, ngôn ngữ lập trình của Node.js, sử dụng các prototype để xác định các chức năng và thuộc tính của đối tượng. Các cuộc tấn công Prototype pollution khai thác đặc điểm này để thao túng hành vi của ứng dụng.

express-fileupload có tùy chọn parseNested để tạo các cấu trúc đối tượng được xếp lồng vào nhau từ các tệp được tải lên. Khi tùy chọn này được bật, kẻ tấn công có thể sử dụng tên tệp được tạo cẩn thận trong các yêu cầu web để thực hiện các cuộc tấn công Prototype pollution.

Trong bài đăng trên blog của mình, nhà nghiên cứu có tên ‘Posix’ đã chỉ ra cách lỗ hổng có thể bị khai thác để khiến máy chủ Node.js bị crash và trả lại lỗi máy chủ nội bộ trên mọi yêu cầu, dẫn đến từ chối dịch vụ.

Truy cập shell

Theo Posix, lỗi này cũng có thể được sử dụng để tấn công các thư viện khác, chẳng hạn như công cụ mẫu EJS phổ biến, thường được sử dụng kết hợp với express-fileupload.

Kẻ tấn công có thể sử dụng express-fileupload để 'làm bẩn' tham số outputFunctionName của EJS và giành quyền truy cập shell vào máy chủ Node.js.

Posix bổ sung rằng cuộc tấn công như vậy không giới hạn ở EJS. Vì prototype pollution có thể thay đổi luồng của các bối cảnh khác nhau, thêm một vài mô-đun tham chiếu có thể tạo ra nhiều khả năng cho kẻ tấn công.

Lỗ hổng đã được vá sau khi Posix báo cáo vấn đề với các nhà phát triển của express-fileupload. Theo Richard Girges, người duy trì gói Node.js, phần lớn người dùng thư viện có lẽ không bị ảnh hưởng bởi lỗ hổng này.

“Vấn đề cụ thể này chỉ áp dụng cho những người dùng đã bật tùy chọn parseNested trong express-fileupload. Theo mặc định, tùy chọn này không được bật vì nó được sử dụng để giải quyết một trường hợp sử dụng rất cụ thể trong cách xử lý các yêu cầu nhiều phần”.

“Ngay sau khi chúng tôi nhận thức được lỗ hổng, chúng tôi đã phát hành một bản sửa lỗi (khoảng 15 giờ từ báo cáo ban đầu trên GitHub). Chúng tôi cũng đã thông báo các điều nên tránh thực hiện của express-fileupload các phiên bản trước trong NPM registry vì đây là cách hiệu quả nhất để thông báo cho người dùng về nhu cầu nâng cấp gói.

Theo Posix, EJS vẫn dễ bị tấn công Prototype pollution.

Theo Daily Swig
 
Chỉnh sửa lần cuối:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Thẻ
dos node.js shell
Bên trên