Loop Bug tuổi đời 6 năm lại được phát hiện, ảnh hưởng tới hầu hết trình xem PDF

Theo nhà phát triển phần mềm người Đức Hanno Böck, một lỗi đã được phát hiện trên thư viện cú pháp PDF từ năm 2011 lại xuất hiện trên những trình xem PDF phổ biến hiện nay.

Bug gốc ban đầu ảnh hưởng tới yếu tố cú pháp PDF trên Evince, ứng dụng đọc tài liệu cho Linux. Nó được nhà phát triển phần mềm Andreas Bogk phát hiện, anh cũng đã giúp Evince khắc phục lỗi và công bố kết quả tại sự kiện Chaos Communication Camp 2011.

Bogk phát hiện ra các tập tin PDF có cấu trúc nhất định - tham chiếu chéo tới bảng xref - sẽ khiến ứng dụng Evince đi vào vòng lặp liên tục, chiếm hết tài nguyên CPU và nhanh chóng đầy bộ nhớ rồi crash.

Bug này hầu hết đều bị làm ngơ vì không được cho là lỗi bảo mật nghiêm trọng và chỉ ảnh hưởng tới một ứng dụng nhỏ trên máy Linux mà thôi.

Bug tuổi đời 6 năm trở lại trên PDF Viewer nổi tiếng

6 năm sau, vấn đề trở nên quan trọng hơn sau khi Böck khám phá ra hành vi tương tự trên nhiều trình đọc PDF được nhiều người biết. Böck tìm thấy Loop Bug này trên PDFium, thư viện cho phép Chrome render tập tin PDF trên trình duyệt mà không cần plugin.

Thư viện pdf.js được dùng trên Firefox cũng bị ảnh hưởng. Pdf.js cũng được dùng trên GitHub để render file PDF trên giao diện website mà không cần người dùng tải tập tin để xem trong ứng dụng của bên thứ 3.

Lỗi bug vòng lặp khiến ứng dụng bị crash
Lỗi bug vòng lặp khiến ứng dụng bị crash

Thư viện Windows Runtime PDF Renderer, WinRT PDF đều bị ảnh hưởng. Đây là trình xem PDF tích hợp của Edge và cũng là cú pháp PDF mặc định cho Windows Reader App, trình xem PDF mặc định trên Windows 8 trở đi.

Tương tự, cú pháp PDF mã nguồn mở như Ghostscript và QPDF cũng bị ảnh hưởng, nghĩa là sẽ có nhiều ứng dụng xem PDF trên desktop và web sử dụng hai công cụ trên bị ảnh hưởng. Böck đã báo cáo bug tới các sản phẩm bị ảnh hưởng và bản vá sẽ sớm được đưa ra.

Adobe Reader không bị ảnh hưởng

Adobe Reader và trình xem PDF tích hợp trên OS X của Apple vẫn được an toàn.

Nhà nghiên cứu cho biết anh sử dụng thư viện kiểm thử (fuzzing library) để phân tích. Fuzzing là kỹ thuật kiểm thử bảo mật cơ bản sử dụng nhiều dữ liệu đầu vào ngẫu nhiên và phân tích phản ứng của đầu ra và tìm điểm bất thường. Các chuyên gia an ninh của Google rất hay dùng kỹ thuật này và khuyến khích mọi người sử dụng.

Böck cũng trách các nhà quản trị đã không chạy các bản suite thử nghiệm. Đây là bộ sưu tập các tập tin có vấn đề mà trình xem vẫn mở được mà không bị crash. Hoàn hảo nhất thì nhà phát triển phần mềm không được phát hành bản mới của ứng dụng mà không chạy thử bản suite thử nghiệm thành công.

Thứ Sáu, 22/09/2017 16:38
31 👨 132