-
09/04/2020
-
93
-
600 bài viết
GitHub phát hiện 7 lỗ hổng thực thi mã trong "tar" và npm CLI
Nhóm bảo mật GitHub đã xác định được một số lỗ hổng có mức độ nghiêm trọng cao trong các gói npm, "tar" và "@npmcli/arborist", được sử dụng bởi npm CLI.
Các gói tar trung bình có 20 triệu lượt tải về mỗi tuần, trong khi arborist được tải về hơn 300.000 lượt mỗi tuần.
Các lỗ hổng ảnh hưởng đến cả người dùng Windows và Unix. Nếu lỗ hổng không được vá, những kẻ tấn công có thể khai thác để thực thi mã tùy ý trên hệ thống cài đặt các gói npm không đáng tin cậy.
Các chuyên gia săn tìm lỗ hổng được thưởng 14.500 USD cho các lỗ hổng ZIP slip
Từ tháng 7 đến tháng 8 năm nay, các nhà nghiên cứu bảo mật Robert Chen và Philip Papurt đã tìm ra một số lỗ hổng thực thi mã tùy ý trong các mã nguồn mở Node.js, tar và @ npmcli/arborist và thông báo riêng cho npm thông qua chương trình Bug Bounty của GitHub.
Khi xem xét thêm báo cáo của các chuyên gia nghiên cứu, nhóm bảo mật GitHub đã tìm thấy một số lỗ hổng có mức độ nghiêm trọng cao hơn trong các gói nói trên, ảnh hưởng đến cả hệ thống dựa trên Windows và Unix.
Gói tar của Node.js là thành phần phụ thuộc chính của các trình cài đặt cần giải nén npm. Gói này cũng được sử dụng bởi hàng nghìn dự án mã nguồn mở khác nên được tải xuống khoảng 20 triệu lượt/tuần. Trong khi đó, arborist là thành phần phụ thuộc chính của npm CLI và được sử dụng để quản lý node_modules.
Các lỗ hổng ZIP slip này là một vấn đề khá đau đầu của các nhà phát triển cài đặt các gói npm không đáng tin cậy thông qua npm CLI hoặc sử dụng "tar" để giải nén các gói không đáng tin cậy.
Theo mặc định, các gói npm được phân phối dưới dạng .tar.gz hoặc .tgz, là các tệp lưu trữ dạng ZIP và cần được giải nén bằng các công cụ cài đặt.
Các công cụ giải nén kho lưu trữ này phải đảm bảo mọi đường dẫn độc hại không ghi đè lên các tệp hiện có, đặc biệt là những tệp “nhạy cảm”, trên hệ thống tệp.
Tuy nhiên, do các lỗ hổng được liệt kê bên dưới, gói npm khi được giải nén có thể ghi đè các tệp tùy ý với các đặc quyền của người dùng chạy lệnh npm install:
npm thuộc sở hữu của GitHub, đang khuyến cáo các nhà phát triển khắc phục các lỗ hổng này càng sớm càng tốt.
Cụ thể là người dùng nên nâng cấp phiên bản tar lên 4.4.19, 5.0.11 hoặc 6.1.10 và nâng cấp @npmcli/arborist phiên bản 2.8.2 để vá các lỗ hổng.
Đối với npm CLI, các phiên bản v6.14.15, v7.21.0 hoặc mới hơn có chứa bản vá. Ngoài ra, Node.js phiên bản 12, 14 hoặc 16 đi kèm với phiên bản tar cố định và có thể được nâng cấp lên một cách an toàn.
Các bạn có thể đọc thêm về các lỗ hổng trong bài đăng trên blog chi tiết của GitHub.
Các gói tar trung bình có 20 triệu lượt tải về mỗi tuần, trong khi arborist được tải về hơn 300.000 lượt mỗi tuần.
Các lỗ hổng ảnh hưởng đến cả người dùng Windows và Unix. Nếu lỗ hổng không được vá, những kẻ tấn công có thể khai thác để thực thi mã tùy ý trên hệ thống cài đặt các gói npm không đáng tin cậy.
Các chuyên gia săn tìm lỗ hổng được thưởng 14.500 USD cho các lỗ hổng ZIP slip
Từ tháng 7 đến tháng 8 năm nay, các nhà nghiên cứu bảo mật Robert Chen và Philip Papurt đã tìm ra một số lỗ hổng thực thi mã tùy ý trong các mã nguồn mở Node.js, tar và @ npmcli/arborist và thông báo riêng cho npm thông qua chương trình Bug Bounty của GitHub.
Khi xem xét thêm báo cáo của các chuyên gia nghiên cứu, nhóm bảo mật GitHub đã tìm thấy một số lỗ hổng có mức độ nghiêm trọng cao hơn trong các gói nói trên, ảnh hưởng đến cả hệ thống dựa trên Windows và Unix.
Gói tar của Node.js là thành phần phụ thuộc chính của các trình cài đặt cần giải nén npm. Gói này cũng được sử dụng bởi hàng nghìn dự án mã nguồn mở khác nên được tải xuống khoảng 20 triệu lượt/tuần. Trong khi đó, arborist là thành phần phụ thuộc chính của npm CLI và được sử dụng để quản lý node_modules.
Các lỗ hổng ZIP slip này là một vấn đề khá đau đầu của các nhà phát triển cài đặt các gói npm không đáng tin cậy thông qua npm CLI hoặc sử dụng "tar" để giải nén các gói không đáng tin cậy.
Theo mặc định, các gói npm được phân phối dưới dạng .tar.gz hoặc .tgz, là các tệp lưu trữ dạng ZIP và cần được giải nén bằng các công cụ cài đặt.
Các công cụ giải nén kho lưu trữ này phải đảm bảo mọi đường dẫn độc hại không ghi đè lên các tệp hiện có, đặc biệt là những tệp “nhạy cảm”, trên hệ thống tệp.
Tuy nhiên, do các lỗ hổng được liệt kê bên dưới, gói npm khi được giải nén có thể ghi đè các tệp tùy ý với các đặc quyền của người dùng chạy lệnh npm install:
- CVE-2021-32803
- CVE-2021-32804
- CVE-2021-37701
- CVE-2021-37712
- CVE-2021-37713
- CVE-2021-39134
- CVE-2021-39135
npm thuộc sở hữu của GitHub, đang khuyến cáo các nhà phát triển khắc phục các lỗ hổng này càng sớm càng tốt.
Cụ thể là người dùng nên nâng cấp phiên bản tar lên 4.4.19, 5.0.11 hoặc 6.1.10 và nâng cấp @npmcli/arborist phiên bản 2.8.2 để vá các lỗ hổng.
Đối với npm CLI, các phiên bản v6.14.15, v7.21.0 hoặc mới hơn có chứa bản vá. Ngoài ra, Node.js phiên bản 12, 14 hoặc 16 đi kèm với phiên bản tar cố định và có thể được nâng cấp lên một cách an toàn.
Các bạn có thể đọc thêm về các lỗ hổng trong bài đăng trên blog chi tiết của GitHub.
Theo Bleepingcomputer