Lỗ hổng này có tên gọi là BatBadBut, được GitHub gắn mã định danh là CVE-2024-24576 (điểm CVSS 10.0), cho thấy mức độ nghiêm trọng tối đa. Nhà nghiên cứu bảo mật RyotaK tới từ công ty an ninh mạng Flatt Security (Nhật Bản) là người đã phát hiện và báo cáo lỗ hổng này cho Trung tâm Điều phối CERT (CERT/CC).
Lỗ hổng tồn tại do hệ điều hành Windows tạo ra tiến trình cmd[.]exe khi thực thi các tệp batch có chức năng “CreatProcess” và các ngôn ngữ lập trình không thoát khỏi (escape) 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 lệnh API.
Hầu hết các ngôn ngữ lập trình đều bao bọc chức năng CreatProcess để cung cấp giao diện thân thiện hơn với người dùng. Trên Windows, CreatProcess() ngầm tạo ra tiến trình cmd[.]exe khi thực thi các tệp batch, ngay cả khi ứng dụng không chỉ định chúng trong dòng lệnh.
Vấn đề là cmd[.]exe có các quy tắc phân tích cú pháp phức tạp cho các đối số dòng lệnh và thời gian chạy (runtime) ngôn ngữ lập trình không thể thoát khỏi các đối số lệnh một cách chính xác.
Khai thác lỗ hổng này, kẻ tấn công có thể kiểm soát phần đối số lệnh của tệp batch để từ đó chèn lệnh vào các ứng dụng Windows. Tuy nhiên, theo nhà nghiên cứu bảo mật RyotaK, việc khai thác thành công lỗ hổng BatBadBut chỉ xảy ra khi đáp ứng các điều kiện sau:
- Ứng dụng cần thực thi một lệnh trên Windows.
- Ứng dụng không được chỉ định phần mở rộng của tệp lệnh hoặc phần mở rộng tệp là .bat hoặc .cmd.
- Lệnh đang được thực thi có đầu vào (input) do người dùng kiểm soát.
- Thời gian chạy của ngôn ngữ lập trình không thể thoát khỏi các đối số dòng lệnh với tiến trình cmd[.]exe một cách chính xác.
RyotaK lưu ý rằng hầu hết các ứng dụng không bị ảnh hưởng bởi lỗ hổng này và có một số biện pháp giảm thiểu. Hơn nữa, một số ngôn ngữ lập trình được thông báo về lỗ hổng đã thực hiện các bước để giải quyết nó, chẳng hạn như thêm một cơ chế escape khác cho các tệp batch.
“Để ngăn chặn việc thực thi các tệp batch không mong muốn, người dùng nên cân nhắc 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. 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 không mong muốn”, RyotaK khuyến nghị.
Cho đến nay, thư viện Haskell, Rust, Node.js, PHP và yt-dlp được biết là bị ảnh hưởng bởi lỗ hổng BatBadBut. 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 đề, hiện mới chỉ có Haskell, Rust và yt-dlp đã công bố các bản vá cập nhật, do đó các nhà phát triển được khuyến nghị nên thận trọng khi thực hiện các thao tác lệnh trên Windows.
Hải Yến
(Tổng hợp)
07:00 | 12/04/2024
09:00 | 03/04/2024
09:00 | 06/03/2024
10:00 | 19/11/2024
Các cuộc tấn công vào chuỗi cung ứng phần mềm trong vài năm gần đây đã để lại nhiều bài học đắt giá. Những sự cố này không chỉ gây thiệt hại tài chính mà còn ảnh hưởng đến niềm tin vào độ bảo mật của các dịch vụ công nghệ. Bài báo này điểm qua 10 cuộc tấn công chuỗi cung ứng phần mềm nổi bật và những bài học kinh nghiệm.
16:00 | 15/11/2024
Microsoft tiết lộ rằng, một nhóm tin tặc từ Trung Quốc được theo dõi với tên Storm-0940 đang sử dụng botnet Quad7 để dàn dựng các cuộc tấn công bằng cách dò mật khẩu (password spray) mà rất khó bị phát hiện.
15:00 | 12/11/2024
Theo các nhà nghiên cứu bảo mật, một trong những cuộc tấn công chuỗi cung ứng kỹ thuật số lớn nhất trong năm 2024 đã được thực hiện bởi một công ty ít tên tuổi, chuyển hướng một lượng lớn người dùng internet đến một mạng lưới các trang web cờ bạc nhái.
10:00 | 25/10/2024
Các cơ quan chính phủ tại Mỹ, Úc và Canada đưa ra cảnh báo các tác nhân đe dọa được nhà nước Iran bảo trợ sử dụng kỹ thuật tấn công Brute Force và nhiều phương thức khác để triển khai các chiến dịch tấn công mạng nhắm vào các tổ chức cơ sở hạ tầng quan trọng.
Chuyên gia bảo mật Jan Michael Alcantara của nhà cung cấp giải pháp an ninh mạng Netskope (Mỹ) cho biết, họ đã phát hiện ra một biến thể mới của mã độc NodeStealer đang tấn công các tài khoản Facebook Ads Manager.
13:00 | 03/12/2024