Lỗ hổng trong gói NPM pac-resolver với 3 triệu lượt tải xuống mỗi tuần

Gói NPM pac-resolver, có hơn 3 triệu lượt tải xuống mỗi tuần, có lỗ hổng (CVE-2021-23406) cho phép thực thi mã JavaScript trong ngữ cảnh của ứng dụng khi gửi yêu cầu HTTP từ các dự án Node.js. hỗ trợ chức năng tự động cấu hình máy chủ proxy.

Gói pac-resolver phân tích các tệp PAC bao gồm tập lệnh cấu hình proxy tự động. Tệp PAC chứa mã JavaScript thông thường có chức năng FindProxyForURL xác định logic để chọn proxy tùy thuộc vào máy chủ và URL được yêu cầu. Bản chất của lỗ hổng bảo mật là để thực thi mã JavaScript này trong pac-resolver, API VM được cung cấp trong Node.js đã được sử dụng, cho phép bạn thực thi mã JavaScript trong ngữ cảnh khác của công cụ V8.

API được chỉ định được đánh dấu rõ ràng trong tài liệu là không nhằm mục đích chạy mã không đáng tin cậy vì nó không cung cấp sự cô lập hoàn toàn cho mã đang chạy và cho phép truy cập vào ngữ cảnh ban đầu. Sự cố đã được giải quyết trong pac-resolver 5.0.0, đã được chuyển sang sử dụng thư viện vm2, cung cấp mức cách ly cao hơn phù hợp để chạy mã không đáng tin cậy.

Lỗ hổng trong gói NPM pac-resolver với 3 triệu lượt tải xuống mỗi tuần

Khi sử dụng phiên bản pac-resolver dễ bị tấn công, kẻ tấn công thông qua việc truyền tệp PAC được thiết kế đặc biệt có thể thực thi mã JavaScript của mình trong ngữ cảnh mã của dự án sử dụng Node.js, nếu dự án này sử dụng các thư viện có phần phụ thuộc với trình phân giải pac. Thư viện có vấn đề phổ biến nhất là Proxy-Agent, được liệt kê là phụ thuộc vào các dự án 360, bao gồm urllib, aws-cdk, mailgun.js và firebase-tools, với tổng số hơn ba triệu lượt tải xuống mỗi tuần.

Nếu một ứng dụng phụ thuộc vào pac-resolver tải tệp PAC do hệ thống hỗ trợ giao thức cấu hình tự động proxy WPAD cung cấp thì những kẻ tấn công có quyền truy cập vào mạng cục bộ có thể sử dụng tính năng phân phối cài đặt proxy qua DHCP để chèn các tệp PAC độc hại.

Nguồn: opennet.ru

Thêm một lời nhận xét