Lỗ hổng Telegram Desktop cho phép đánh cắp tệp và chiếm đoạt tài khoản chỉ bằng một cú nhấp chuột

Công nghệ10 tháng 10, 2026·5 phút đọc

Một lỗ hổng nghiêm trọng trong Telegram Desktop (bản 7.2.8 trở về trước) cho phép kẻ tấn công chiếm đoạt tài khoản người dùng chỉ bằng một liên kết độc hại. Lỗi nằm ở cơ chế chuyển tiếp liên kết qua socket nội bộ không thoát ký tự phân tách, kết hợp với giao thức interpret: nội bộ cho phép đọc tệp tùy ý mà không cần xác thực. Telegram đã vá lỗi trong bản 7.2.9.

Lỗ hổng Telegram Desktop cho phép đánh cắp tệp và chiếm đoạt tài khoản chỉ bằng một cú nhấp chuột

Một lỗ hổng trong Telegram Desktop vừa được công bố cho thấy chỉ cần người dùng nhấp vào một liên kết tưởng chừng vô hại, kẻ tấn công có thể đọc tệp tùy ý trên máy nạn nhân và tiến xa hơn là chiếm đoạt hoàn toàn tài khoản Telegram.

Lỗ hổng có mã CVE-2026-107181, được đánh giá mức 8.1 (High) theo thang CVSS, ảnh hưởng đến Telegram Desktop từ phiên bản 7.2.8 trở về trước và đã được vá trong bản 7.2.9.

Kịch bản tấn công: một liên kết, hai tiến trình

Câu chuyện bắt đầu từ cách Telegram Desktop xử lý các liên kết mang giao thức tg://. Khi hệ điều hành gặp một liên kết như vậy, nó sẽ khởi chạy một tiến trình Telegram mới với URL làm tham số.

Nếu Telegram đang chạy sẵn, tiến trình mới sẽ kết nối tới socket nội bộ của tiến trình cũ để chuyển tiếp liên kết. Vấn đề nằm ở chỗ: dữ liệu truyền qua socket chỉ là chuỗi văn bản, và Telegram dùng dấu chấm phẩy (;) để phân tách các lệnh.

Kẻ tấn công có thể nhét thêm dấu chấm phẩy vào URL để chèn lệnh (injection). Một liên kết như:

tg://x?a=1;OPEN:interpret:instructions.txt

sẽ bị tiến trình đang chạy "cắt" thành hai lệnh riêng biệt, trong đó lệnh thứ hai kích hoạt giao thức nội bộ interpret:.

Giao thức interpret: — công cụ bị lạm dụng

interpret: vốn là giao thức Telegram dùng nội bộ để đăng bản phát hành lên kênh. Nó đọc một tệp chỉ định rồi gửi tệp đó đến một cuộc trò chuyện, dựa trên nội dung của tệp lệnh.

Điểm chết người: hàm InterpretSendPath không hề kiểm tra quyền hạn và không yêu cầu xác nhận từ người dùng. Khi được gọi từ dòng lệnh, điều này không đáng ngại. Nhưng khi có thể kích hoạt qua socket — và qua lệnh chèn — nó trở thành một công cụ đọc tệp tùy ý từ xa.

Từ đọc tệp đến chiếm đoạt tài khoản

Để khai thác, kẻ tấn công cần đặt được tệp lệnh lên máy nạn nhân:

  • Tạo một siêu nhóm và thêm nạn nhân vào (Telegram cho phép điều này mà không cần người được mời xác nhận theo mặc định)
  • Đăng các tệp lệnh dạng văn bản vào nhóm — Telegram Desktop tự động tải xuống tệp dưới 8 MiB trong nhóm, lưu vào thư mục Downloads\Telegram Desktop\
  • Do đó, kẻ tấn công biết chính xác đường dẫn lưu tệp

Sau đó, chúng gửi một liên kết https bình thường vào nhóm. Liên kết này chuyển hướng đến URL tg:// được chế tạo sẵn để kích hoạt nhiều lệnh interpret: cùng lúc, mỗi lệnh đọc một tệp nhạy cảm và gửi về nhóm của kẻ tấn công.

Ba tệp mục tiêu chính là:

  • tdata/key_datas — chứa salt và DEK (khóa mã hóa dữ liệu) đã mã hóa
  • tdata/D877F783D5D3EF8Cs — ủy quyền MTProto (tương đương session cookie)
  • tdata/D877F783D5D3EF8C/maps — chỉ mục dữ liệu tài khoản

Đáng chú ý: tên thư mục D877F783D5D3EF8C không phải ngẫu nhiên mà được sinh ra từ chuỗi mặc định, giống hệt nhau trên mọi bản cài đặt.

Khi không đặt mật khẩu cục bộ (mặc định của Telegram), khóa KEK được suy ra từ chuỗi rỗng và salt — mà salt lại nằm ngay trong key_datas. Chỉ cần đọc được tệp này là đủ để giải mã toàn bộ dữ liệu, kể cả phiên đăng nhập.

Kẻ tấn công chỉ cần chép ba tệp trên vào một thư mục tdata mới, mở Telegram và tài khoản của nạn nhân sẽ tự động mở ra.

Cách khắc phục

Telegram đã vá lỗi trong bản 7.2.9 (commit db3405699f, ngày 16/9/2026):

  • Loại bỏ hoàn toàn giao thức interpret:// và hàm InterpretSendPath
  • Thoát ký tự phân tách trên socket bằng mã hóa hex có tiền tố phần trăm, khiến dấu chấm phẩy trong dữ liệu không còn tạo được ranh giới lệnh
  • Bỏ qua các bản ghi CMD: và CTRL: nếu kết nối đã mang lệnh OPEN:
  • Loại bỏ đường dẫn tệp cục bộ khi xuất hiện URL không cục bộ trên cùng kết nối

Đáng chú ý, bản vá được phát hành âm thầm: changelog của 7.2.9 chỉ đề cập đến một sửa lỗi hiển thị, và không có bản tin cảnh báo nào kèm theo.

Khuyến nghị cho người dùng Việt Nam

Người dùng Telegram Desktop tại Việt Nam nên chủ động bảo vệ mình:

  • Cập nhật lên phiên bản 7.2.9 hoặc mới hơn — đây là biện pháp duy nhất thực sự khắc phục triệt để
  • Bật tùy chọn "Hỏi nơi lưu mỗi tệp" — khi đó tệp không tự động tải về, chặn đứng chuỗi tấn công ngay từ bước đầu
  • Giới hạn người có thể thêm bạn vào nhóm ở mức "Chỉ danh bạ" — kẻ tấn công cần một kênh hoặc siêu nhóm để gửi tệp đánh cắp về
  • Đặt mật khẩu cục bộ và chọn nó như một mật khẩu thật sự — biện pháp này không ngăn tệp bị đánh cắp, nhưng khiến phiên đăng nhập bị đánh cắp trở nên vô dụng

Với người dùng cá nhân lẫn doanh nghiệp tại Việt Nam đang dùng Telegram cho công việc, đây là lời nhắc nhở quen thuộc: đừng nhấp vào liên kết lạ, kể cả khi nó đến từ một nhóm bạn vừa được thêm vào mà không rõ lý do.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗