Một lỗi an toàn bộ nhớ tồn tại suốt 11 năm vừa được phát hiện trong Rust, ngôn ngữ lập trình nổi tiếng nhờ khả năng chặn các lỗi bộ nhớ ngay khi biên dịch. Đoạn mã chứng minh lỗi được đăng trên GitHub và nhanh chóng thu hút sự chú ý của cộng đồng công nghệ.
Lỗi nằm ở đâu?
Rust có một bộ kiểm tra gọi là borrow checker, giống như người bảo vệ đảm bảo không ai dùng đồ đã bị trả lại. Trong trường hợp này, một chương trình cố tình lưu lại tham chiếu tới dữ liệu đã bị xóa, và trình biên dịch vẫn cho qua. Kết quả là chương trình đọc nhầm vùng nhớ đã bị ghi đè bằng nội dung khác. Lỗi này có từ ít nhất phiên bản 1.85.0 và còn xuất hiện trên bản nightly.
Người dùng có cần lo lắng?
Nhóm phát triển Rust xếp lỗi vào mức ưu tiên cao. Theo họ, vì lỗi tồn tại 11 năm mà chưa ai gặp phải ngoài đời thực, nó không dễ bị kích hoạt vô tình. Muốn khai thác, kẻ tấn công cần viết riêng một đoạn mã dọn dẹp độc hại. Nhóm Types Team đang làm việc với bộ giải trait thế hệ mới và chương trình Project Zero để bịt các lỗ hổng tương tự về lâu dài. Với lập trình viên Việt Nam dùng Rust, chưa cần quá lo lắng, nhưng nên theo dõi các cập nhật từ nhóm phát triển.






