Telegram vừa vá một lỗ hổng zero-day nghiêm trọng trong ứng dụng dành cho Windows. Lỗ hổng này cho phép tin tặc vượt qua cảnh báo bảo mật và chạy các đoạn mã Python độc hại.
Tin đồn về lỗ hổng thực thi mã từ xa (RCE) trong Telegram dành cho Windows này đã lan truyền trên X (tên mới của Twitter) và các diễn đàn hacker trong những ngày qua.
Mặc dù một số bài đăng cho rằng đây là lỗ hổng zero-click (không cần tương tác của người dùng), các video minh họa cho thấy người dùng phải nhấp vào tệp media được chia sẻ để khởi chạy ứng dụng Máy tính (Calculator) của Windows.
Ban đầu, Telegram đã bác bỏ các cáo buộc này. Ứng dụng này tuyên bố rằng họ "không thể xác nhận sự tồn tại của lỗ hổng như vậy" và cho rằng video có thể là giả mạo.
Tuy nhiên, ngay ngày hôm sau, một mã độc ví dụ (proof of concept exploit) đã được chia sẻ trên diễn đàn hacker XSS. Kèm theo đó là lời giải thích rằng lỗi đánh máy trong mã nguồn của Telegram dành cho Windows có thể đã bị khai thác để chạy các tệp Python (.pyzw) khi người dùng nhấp vào mà không gặp phải cảnh báo bảo mật.
Điều này càng nghiêm trọng hơn khi đoạn mã độc trên ngụy trang tệp Python thành tệp video. Nó còn có cả hình thu nhỏ để đánh lừa người dùng nhấp vào.
Trả lời BleepingComputer, Telegram đã xác nhận sự xuất hiện của lỗ hổng cho phép các đoạn mã Python tự động khởi chạy khi được nhấp này. Mặc dù phủ nhận đó là lỗi zero-click, họ đã được khắc phục nó bằng một bản vá phía máy chủ.
Nguyên văn phản hồi của nhà phát triển Telegram:
“Có một số tin đồn không chính xác về lỗ hổng zero-click trong Telegram Desktop. Một số "chuyên gia" đã thậm chí khuyến nghị "tắt tải xuống tự động" trên Telegram. Thực tế là không có vấn đề nào liên quan đến tính năng này.
Tuy nhiên, Telegram Desktop có một lỗi yêu cầu người dùng PHẢI NHẤP vào tệp mã độc trong khi đã cài đặt trình thông dịch Python trên máy tính của họ.
Trái ngược với các báo cáo trước đó, đây không phải là lỗ hổng zero-click và nó chỉ có thể ảnh hưởng đến một phần rất nhỏ người dùng. Chưa đến 0,01% người dùng của chúng tôi đã cài đặt Python và sử dụng phiên bản Telegram Desktop có thể bị khai thác bằng lỗi này.
Một bản vá lỗi phía máy chủ đã được áp dụng cho lỗi này. Vì vậy tất cả các phiên bản của Telegram Desktop (bao gồm cả các phiên bản cũ hơn) sẽ không còn gặp phải vấn đề này nữa.”
Lỗ hổng bảo mật trong Telegram
Ứng dụng Telegram Desktop có một danh sách các đuôi tập tin được coi là nguy hiểm, chẳng hạn như các tập tin thực thi.
Khi ai đó gửi một trong những loại tập tin này trong Telegram và người dùng nhấp vào tập tin đó, thay vì tự động khởi chạy nó trên Windows, Telegram sẽ hiển thị cảnh báo bảo mật sau:
"Tập tin này có đuôi .exe. Nó có thể gây hại cho máy tính của bạn. Bạn có chắc chắn muốn chạy nó không?"
Tuy nhiên, các loại tập tin không xác định khác được chia sẻ qua Telegram sẽ tự động được khởi chạy trong Windows. Hệ điều hành sẽ quyết định chương trình nào sẽ dùng để chạy chúng.
Khi Python được cài đặt trên Windows, nó sẽ liên kết đuôi tập tin .pyzw với chương trình Python. Khi người dùng mở các tập tin này, Python sẽ chạy chúng và thực thi các đoạn mã bên trong.
Đuôi .pyzw vốn dĩ thuộc về các ứng dụng zipapp của Python. Đây là các chương trình Python độc lập chứa trong tập tin nén ZIP.
Phía nhà phát triển Telegram đã biết rằng các loại tập tin này nên được xem là nguy hiểm và đã xếp nó vào danh sách các tập tin thực thi.
Thật không may, khi họ thêm đuôi tập tin, họ đã đánh máy sai chính tả và nhập đuôi tập tin là 'pywz' thay vì đúng là 'pyzw'.
Do đó, khi người dùng mở những tập tin .pyzw được gửi qua Telegram, chúng sẽ tự động được khởi chạy bởi Python (nếu nó đã được cài đặt trên Windows).
Điều này cho phép kẻ tấn công tránh các cảnh báo bảo mật và thực thi mã từ xa trên thiết bị Windows của nạn nhân nếu chúng có thể lừa họ mở tập tin đó.
Để ngụy trang tập tin, các nhà nghiên cứu đã sử dụng một bot Telegram để gửi tập tin với loại mime là 'video/mp4', khiến Telegram hiển thị chúng dưới dạng video. Nếu nạn nhân nhấp vào video để xem, tập lệnh sẽ tự động được khởi chạy thông qua Python cho Windows.
BleepingComputer đã thử nghiệm lỗ hổng này với nhà nghiên cứu an ninh mạng AabyssZG.
Sử dụng phiên bản cũ của Telegram, BleepingComputer đã nhận được tập tin 'video.pywz' từ AabyssZG được ngụy trang dưới dạng video mp4. Tập tin này chỉ chứa mã Python để mở một cửa sổ lệnh. Khi họ nhấp vào video để xem, Python sẽ tự động thực thi đúng tập lệnh đó.
Lỗi này đã được báo cáo cho Telegram vào ngày 10 tháng 4 và họ đã khắc phục bằng cách sửa chính tả đuôi tập tin trong tập tin 'data_document_resolver.cpp' trong mã nguồn.
Tuy nhiên, bản sửa lỗi này dường như vẫn chưa được đưa vào hoạt động. Cảnh báo vẫn chưa xuất hiện khi người dùng nhấp vào tập tin để khởi chạy nó.
Thay vào đó, Telegram đã dùng một bản vá lỗi phía máy chủ nối thêm đuôi .untrusted vào các tập tin pyzw. Khi chúng được nhấp vào, Windows hỏi bạn muốn sử dụng chương trình nào để mở chúng thay vì tự động khởi chạy trong Python.
Các phiên bản tương lai của Telegram trên máy tính sẽ bao gồm thông báo cảnh báo bảo mật thay vì chỉ nối thêm đuôi ".untrusted" để tăng cường khả năng ngăn ngừa khả năng khai thác lỗ hổng này.
Theo BleepingComputer.