CVE-2024-43367 in boa
Tóm tắt
Bởi VulDB • 10/07/2026
Boa là một công cụ JavaScript nhúng và mang tính thử nghiệm, được viết bằng Rust. Bắt đầu từ phiên bản 0.16 trở đi cho đến trước phiên bản 0.19.0, một giả định sai lầm khi xử lý các thao tác `AsyncGenerator` của ECMAScript có thể gây ra ngoại lệ không được bắt (uncaught exception) trên một số kịch bản nhất định. Việc triển khai `AsyncGenerator` trong Boa dựa trên giả định rằng trạng thái của đối tượng `AsyncGenerator` không thay đổi trong quá trình giải quyết lời hứa (promise) do các phương thức như `%AsyncGeneratorPrototype%.next`, `%AsyncGeneratorPrototype%.return` hoặc `%AsyncGeneratorPrototype%.throw` tạo ra. Tuy nhiên, một đoạn mã được xây dựng cẩn thận có thể kích hoạt sự chuyển trạng thái từ một getter của thuộc tính `then` trên promise, khiến công cụ gặp lỗi kiểm tra giả định này và dẫn đến ngoại lệ không được bắt. Điều này có thể bị lợi dụng để thực hiện tấn công Từ chối Dịch vụ (Denial of Service) đối với các ứng dụng chạy mã ECMAScript tùy ý do người dùng bên ngoài cung cấp. Phiên bản 0.19.0 đã được vá để xử lý đúng trường hợp này. Người dùng không thể nâng cấp lên phiên bản đã vá nên sử dụng `std::panic::catch_unwind` để đảm bảo rằng bất kỳ ngoại lệ nào gây ra bởi công cụ đều không ảnh hưởng đến tính sẵn có của ứng dụng chính.
If you want to get best quality of vulnerability data, you may have to visit VulDB.