Telegram khắc phục lỗ hổng zero-day trên Windows

10:00 | 24/04/2024 | DOANH NGHIỆP
Telegram đã sửa một lỗ hổng zero-day trong ứng dụng máy tính để bàn Windows có thể được sử dụng để vượt qua (bypass) các cảnh báo bảo mật và tự động khởi chạy các tập lệnh Python.

Trong thời gian gần đây đã xuất hiện những thông tin trên X và các diễn đàn tin tặc về một lỗ hổng thực thi mã từ xa được cho là tồn tại trên ứng dụng Telegram dành cho Windows và cho rằng đây là lỗ hổng Zero-Click.

Ngày 9/4, Telegram nhanh chóng phản bác những tuyên bố này, cho rằng họ không thể xác nhận rằng lỗ hổng như vậy có tồn tại và những thông tin lan truyền trên các nền tảng mạng xã hội là lừa đảo.

Tuy nhiên ngay sau đó (ngày 10/4), một bằng chứng về khái niệm (PoC) đã được chia sẻ trên diễn đàn tấn công XSS giải thích rằng một lỗi đánh máy trong mã nguồn của Telegram trên cho Windows có thể bị khai thác để gửi tệp Python là .pyzw và bypass các cảnh báo bảo mật khi người dùng kích chuột vào tệp này. Khi đó Python sẽ tự động thực thi mà không có cảnh báo từ Telegram giống như đối với các tệp thực thi khác.

Telegram đã phủ nhận mọi thông tin nhưng xác nhận rằng họ đã khắc phục sự cố trên ứng dụng Telegram đối với phiên bản Windows để ngăn các tập lệnh Python tự động khởi chạy khi được nhấp vào.

Ứng dụng Telegram trên Windows theo dõi danh sách các phần mở rộng tệp được liên kết với các tệp có nguy cơ rủi ro bảo mật, đặc biệt là các tệp thực thi. Khi người dùng gửi một trong các loại tệp này trên Telegram và người nhận nhấp vào tệp, thay vì tự động khởi chạy trong chương trình được liên kết trong Windows, trước tiên Telegram sẽ hiển thị cảnh báo bảo mật như Hình 1.

Hình 1. Cảnh báo bảo mật khi mở các tệp thực thi rủi ro

Khi cài đặt Python trên Windows, ứng dụng sẽ liên kết với phần mở rộng tệp .pyzw với tệp thực thi khác, khiến Python tự động thực thi các tập lệnh khi tệp được người dùng kích chọn.

Phần mở rộng .pyzw dành cho các ứng dụng zip Python, là các chương trình Python có trong kho lưu trữ ZIP. Các nhà phát triển Telegram nhận thức được rằng những loại tệp thực thi này được coi là rủi ro bảo mật và đã thêm nó vào danh sách các phần mở rộng tệp thực thi.

Tuy nhiên khi thêm tiện ích mở rộng, các nhà phát triển đã mắc lỗi đánh máy, nhập tiện ích mở rộng là “pywz” thay vì viết đúng chính tả là “pyzw”.

Hình 2. Sửa lỗi chính tả cho phần mở rộng .pyzw

Do đó, khi những tệp này được gửi qua Telegram và được kích chọn, chúng sẽ tự động được Python khởi chạy nếu nó được cài đặt trong Windows. Điều này cho phép kẻ tấn công bypass các cảnh báo bảo mật một cách hiệu quả và thực thi mã từ xa trên thiết bị Windows của mục tiêu nếu chúng có thể đánh lừa họ mở tệp.

Để giả mạo tệp, các nhà nghiên cứu đã nghĩ ra cách sử dụng bot Telegram để gửi tệp có định dạng video/mp4, khiến Telegram hiển thị tệp dưới dạng video được chia sẻ. Nếu người dùng nhấp vào video để xem, tập lệnh sẽ tự động được khởi chạy thông qua Python dành cho Windows.

Trang BleepingComputer đã thử nghiệm cách khai thác này với nhà nghiên cứu an ninh mạng AabyssZG. Sử dụng phiên bản Telegram cũ hơn, BleepingComputer đã nhận được tệp video[.]pywz được ngụy trang dưới dạng video mp4. Tệp này chỉ chứa mã Python để mở CMD.

Hình 3. PoC video về tệp pyzw

Tuy nhiên, như trong Hình 4, khi người dùng nhấp vào video để xem, Python sẽ tự động thực thi tập lệnh để mở ứng dụng CMD.

Hình 4. Python tự động thực thi tập lệnh để mở CMD

Lỗi này đã được báo cáo cho Telegram vào ngày 10/4 và phía công ty đã cập nhật bản vá bằng cách sửa lỗi chính tả của phần mở rộng trong tệp mã nguồn data_document_resolver[.]cpp.

Tuy nhiên, bản vá này dường như chưa có sẵn vì các cảnh báo không xuất hiện khi người dùng nhấp vào tệp để khởi chạy. Thay vào đó, Telegram sử dụng một bản vá sửa lỗi phía máy chủ gắn thêm phần mở rộng .untrusted vào các tệp pyzq, khi được nhấp vào, Windows sẽ hỏi người dùng muốn sử dụng chương trình nào để mở nó, thay vì tự động khởi chạy bằng Python.

Telegram cho biết, các phiên bản trong tương lai của ứng dụng trên Windows sẽ bao gồm các thông báo về cảnh báo bảo mật thay vì gắn thêm tiện ích mở rộng “.untrusted”, qua đó tăng thêm tính bảo mật cho quy trình thực thi.

Hồng Đạt

(Bleepingcomputer)

Tin cùng chuyên mục

Tin mới