Một lỗ hổng bảo mật nghiêm trọng trong thư viện chuẩn Rust có thể bị khai thác để nhắm mục tiêu vào người dùng Windows và thực hiện các cuộc tấn công Command Injection theo giai đoạn.

Lỗ hổng có mã định danh CVE-2024-24576 với điểm CVSS là 10,0, thể hiện mức độ nghiêm trọng tối đa. Điều đó có nghĩa nó chỉ tác động đến các tình huống trong đó các tệp batch được gọi trên Windows với các đối số không đáng tin cậy.

Nhóm Rust Security Response cho biết trong một lời khuyên được đưa ra vào ngày 9 tháng 4 năm 2024: “Thư viện tiêu chuẩn Rust đã không thoát khỏi các đối số một cách chính xác khi gọi các tệp batch (với phần mở rộng bat và cmd) trên Windows bằng Command API”.

‘Kẻ tấn công có thể kiểm soát các đối số được chuyển đến quy trình được sinh ra có thể thực thi các lệnh shell tùy ý bằng cách bỏ qua việc thoát.’

Lỗ hổng này ảnh hưởng đến tất cả các phiên bản Rust trước 1.77.2. Nhà nghiên cứu bảo mật RyotaK là người đã phát hiện và báo cáo lỗi này cho Trung tâm Điều phối CERT (CERT/CC).

RyotaK cho biết lỗ hổng – có tên BatBadBut – ảnh hưởng đến một số ngôn ngữ lập trình và nó phát sinh khi “ngôn ngữ lập trình có chứa chức năng CreateProcess [trong Windows] và thêm cơ chế thoát cho các đối số lệnh”.

Theo CERT/CC, lỗ hổng này là kết quả của việc các ngôn ngữ lập trình thiếu cơ chế xác thực đầy đủ khi gọi các lệnh trong môi trường Microsoft Windows, do đó cho phép kẻ tấn công thực thi mã tùy ý được ngụy trang dưới dạng đối số của lệnh.

“Tác động hoàn toàn của lỗ hổng này phụ thuộc vào việc triển khai sử dụng ngôn ngữ lập trình có khả năng bị tấn công hoặc mô-đun dễ bị khai thác”, CERT/CC chia sẻ thêm.

Nhưng thực tế là không phải mọi ngôn ngữ lập trình đều giải quyết được vấn đề, các nhà phát triển được khuyến nghị thận trọng khi thực thi các lệnh trên môi trường Windows.

“Để ngăn chặn việc thực thi các tệp batch không mong muốn, người sử dụng nên xem xét việc di chuyển các tệp batch sang một thư mục không có trong biến môi trường PATH”, RyotaK nói trong một lời khuyên cho người dùng.

‘Trong trường hợp này, các tệp batch sẽ không được thực thi trừ khi đường dẫn đầy đủ được chỉ định, do đó có thể ngăn chặn việc thực thi các tệp batch không mong muốn.’

Nguồn The Hacker News