Forwarded from [分遗产] 2.5次元日常 (Coia Prant #BlueArchive)
This media is not supported in the widget
VIEW IN TELEGRAM
😁2
Forwarded from TGBlogLeaks
quick_replies_limit 100.0
quick_reply_messages_limit 20.0
upload_premium_speedup_upload 10.0
upload_premium_speedup_download 10.0
upload_premium_speedup_notify_period 3600.0
intro_title_length_limit 32.0
intro_description_length_limit 70.0
business_chat_links_limit 100.0
channel_restrict_sponsored_level_min 50.0
quick_reply_messages_limit 20.0
upload_premium_speedup_upload 10.0
upload_premium_speedup_download 10.0
upload_premium_speedup_notify_period 3600.0
intro_title_length_limit 32.0
intro_description_length_limit 70.0
business_chat_links_limit 100.0
channel_restrict_sponsored_level_min 50.0
Forwarded from TGBlogLeaks
+ 1/01/1874 is the minimum birth date
Forwarded from exploit.org
SECURITY ALERT ⚠️
Possible RCE was detected in Telegram's media processing in Telegram Desktop application.
This issue expose users to malicious attacks through specially crafted media files, such as images or videos.
For security reasons disable auto-download feature. Please follow these steps:
1. Go to Settings.
2. Tap on "Advanced".
3. Under the "Automatic Media Download" section, disable auto-download for "Photos", "Videos", and "Files" across all chat types (Private chats, groups, and channels).
We are currently investigating this vulnerability.
Possible RCE was detected in Telegram's media processing in Telegram Desktop application.
This issue expose users to malicious attacks through specially crafted media files, such as images or videos.
For security reasons disable auto-download feature. Please follow these steps:
1. Go to Settings.
2. Tap on "Advanced".
3. Under the "Automatic Media Download" section, disable auto-download for "Photos", "Videos", and "Files" across all chat types (Private chats, groups, and channels).
We are currently investigating this vulnerability.
Forwarded from 电报时报
exploit.org
SECURITY ALERT ⚠️
Possible RCE was detected in Telegram's media processing in Telegram Desktop application.
This issue expose users to malicious attacks through specially crafted media files, such as images or videos.
For security reasons disable auto-download feature. Please follow these steps:
1. Go to Settings.
2. Tap on "Advanced".
3. Under the "Automatic Media Download" section, disable auto-download for "Photos", "Videos", and "Files" across all chat types (Private chats, groups, and channels).
We are currently investigating this vulnerability.
Possible RCE was detected in Telegram's media processing in Telegram Desktop application.
This issue expose users to malicious attacks through specially crafted media files, such as images or videos.
For security reasons disable auto-download feature. Please follow these steps:
1. Go to Settings.
2. Tap on "Advanced".
3. Under the "Automatic Media Download" section, disable auto-download for "Photos", "Videos", and "Files" across all chat types (Private chats, groups, and channels).
We are currently investigating this vulnerability.
安全警报⚠️
在 Telegram Desktop 应用程序的 Telegram 媒体处理中检测到可能的 RCE。
此问题使用户面临通过特制媒体文件(例如图像或视频)的恶意攻击。
出于安全原因,禁用自动下载功能。 请按照以下步骤操作:
1. 前往“设置”。
2. 点击“高级”。
3. 在“自动媒体下载”部分下,禁用所有聊天类型(私人聊天、群组和频道)中“照片”、“视频”和“文件”的自动下载。
我们目前正在调查此漏洞。
在 Telegram Desktop 应用程序的 Telegram 媒体处理中检测到可能的 RCE。
此问题使用户面临通过特制媒体文件(例如图像或视频)的恶意攻击。
出于安全原因,禁用自动下载功能。 请按照以下步骤操作:
1. 前往“设置”。
2. 点击“高级”。
3. 在“自动媒体下载”部分下,禁用所有聊天类型(私人聊天、群组和频道)中“照片”、“视频”和“文件”的自动下载。
我们目前正在调查此漏洞。
Forwarded from The Stryker Project [🫣]
Turn off automatic media downloading now! Code execution starts after image/video downloading, automatically
No patch available yet.
Update 1: Originally a warning will popup "exe file can be harmful..", without user confirmation nothing will happen (at least as we know)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
exploit.org
SECURITY ALERT ⚠️ Possible RCE was detected in Telegram's media processing in Telegram Desktop application. This issue expose users to malicious attacks through specially crafted media files, such as images or videos. For security reasons disable auto-download…
Telegram
byteduck in EXPLOIT TIMES
We know only basic info and possible vector(maliciously created .jpg with some BOF).
We aren't aware of exact location of vulnerable code.
We aren't aware of exact location of vulnerable code.
👍1
Forwarded from &'a ::rynco::UntitledChannel (Rynco Maekawa)
该漏洞的真实性目前尚未证实。
Forwarded from TGBlogLeaks
CHANNELS YOU JOINED AND RECOMMENDED CHANNELS IN EMPTY SEARCH
Forwarded from Rosmontis's Daily🔆
结论:疑似攻击者通过利用错误MIME type实现客户端欺骗。
涉及Telegram中的两个API功能——
- (String)传递一个文件 ID(以字符串形式)来发送存储在 Telegram 服务器上的视频(推荐做法)
- (String/InputFile)传递一个 HTTP URL(以字符串形式)以便 Telegram 从互联网获取视频
- (InputFile)使用 multipart/form-data 上传一个新视频。
问题出在第二种,InputFile - Sending by URL时,目标资源可以拥有一个自定义的MIME标签,以指示其他Telegram客户端应该以什么方式加载这个资源。
而这些不怀好意的
响应标头:>图1<
请求方json:
另外,Telegram Desktop的影片播放方式决定了Telegram Desktop将会把这些较小的视讯资源放置在本地下载目录,然后通过“执行”的方式来加载本地影片至内嵌播放器,这也就是为什么在用户点击这些“假影片”后会自动执行攻击者编写的代码。
涉及Telegram中的两个API功能——
sendVideo
和InputFile
。sendVideo
中的video
字段支持两种输入方式,“InputFile or String”,- (String)传递一个文件 ID(以字符串形式)来发送存储在 Telegram 服务器上的视频(推荐做法)
- (String/InputFile)传递一个 HTTP URL(以字符串形式)以便 Telegram 从互联网获取视频
- (InputFile)使用 multipart/form-data 上传一个新视频。
问题出在第二种,InputFile - Sending by URL时,目标资源可以拥有一个自定义的MIME标签,以指示其他Telegram客户端应该以什么方式加载这个资源。
而这些不怀好意的
.pyzw
文件,(可能由于漏洞)在这里都被指定为了video/mp4
,导致其他Telegram客户端将以播放器模式展示这个文件。响应标头:>图1<
请求方json:
{
"dcId": number,
"location": {
"_": "inputDocumentFileLocation",
"id": "*",
"access_hash": "*",
"file_reference": [
*, *, *, *
]
},
"size": 42,
"mimeType": "video/mp4",
"fileName": "***.pyzw"
}
另外,Telegram Desktop的影片播放方式决定了Telegram Desktop将会把这些较小的视讯资源放置在本地下载目录,然后通过“执行”的方式来加载本地影片至内嵌播放器,这也就是为什么在用户点击这些“假影片”后会自动执行攻击者编写的代码。
Forwarded from Rong布星球 🧶 (Rongron🧊 | g𝐝𝐛)
Telegram
Rosmontis's Daily🌸
结论:疑似攻击者通过利用错误MIME type实现客户端欺骗。
涉及Telegram中的两个API功能——sendVideo和InputFile。
sendVideo中的video字段支持两种输入方式,“InputFile or String”,
- (String)传递一个文件 ID(以字符串形式)来发送存储在 Telegram 服务器上的视频(推荐做法)
- (String/InputFile)传递一个 HTTP URL(以字符串形式)以便 Telegram 从互联网获取视频
- (InputFile)使用…
涉及Telegram中的两个API功能——sendVideo和InputFile。
sendVideo中的video字段支持两种输入方式,“InputFile or String”,
- (String)传递一个文件 ID(以字符串形式)来发送存储在 Telegram 服务器上的视频(推荐做法)
- (String/InputFile)传递一个 HTTP URL(以字符串形式)以便 Telegram 从互联网获取视频
- (InputFile)使用…
有关 Telegram Desktop (tdesktop) 的远程代码执行(RCE)漏洞,已经有人分析过了,但分析仅仅建构于对 HTTP Bot API 的试验之上,其实说得不太全面,这里补充一下。
HTTP Bot API 并不是 Telegram 服务端最终暴露的 API,后者是 MTProto API。HTTP Bot API 只有机器人(bot)可使用,普通用户不能使用;而 MTProto API 既可以被 bot 使用,也可以被普通用户使用。前者开放源代码,任何人均可自行搭建。后者则只有 schema 提供。
进一步地,HTTP Bot API 其实是对 tdlib 的一个 HTTP 封装,同时提供许多便利方法;而 tdlib 又是对 MTProto API 的一个保姆级封装,覆盖了建构一个客户端所需的方方面面。被引用的这条分析里涉及的就是前面说的「便利方法」sendVideo。其关键在于对
经过一段复杂的调用链(从略)后,进入了 tdlib 内部。随后关键调用链如下:MessagesManager::send_message -> MessagesManager::do_send_message -> get_input_media_impl -> VideosManager::get_input_media。最后一步构造了一个 inputMediaDocumentExternal 实例,它最终将经由 MTProto API 传递给服务端。
该类型专门用于指示 Telegram 服务端从互联网上的 URL 下载文件。因此引用的分析中展示的漏洞如果真实存在的话,那么应当是服务端自己盲目轻信了 Content-Type 标头导致的漏洞,而不是产生了形如「服务端 -> tdlib -> HTTP Bot API -> Content-Type 标头」这样的盲目轻信链。
然而,如果使用 MTProto API,则直接上传的文件其实也是可以手动指定 MIME 的。MTProto API 将文件上传划分为两个阶段:上传、提供文件属性,分别对应 InputFile 和 inputMediaUploadedDocument 。后者有一个赫然的
不过,服务端对文件的元数据其实表现出很矛盾的处理方式,在我过往的试验中,即使该等文件是通过传递 URL 令服务端到互联网上拉取的,它仍会解析文件以确定分辨率、时长等元数据并返回给客户端。如果客户端上传文件,随意指定的元数据也会被服务端检测到并修正,这点在 tdlib 的源代码中也有所体现。不过,服务端的检测能力并不完美,即使是常见如
Disclaimer: 我没有进行实际调试以验证被引用的分析和我的猜想各自的正确性,也没有对 inputMediaUploadedDocument 是否任意接受
TL;DR: HTTP Bot API 是建构于 tdlib 之上的,是对 Telegram 服务端的 API (MTProto API) 的非常高层次的封装。我想知道盲目轻信 Content-Type 标头的 MIME 这一漏洞是直接出现在服务端,还是先出现在 HTTP Bot API、tdlib,然后再传递到服务端的。通过分析前两者的源代码,我认为是直接出现在服务端的。与此同时,直接经由 MTProto API 上传文件是可以手动指定 MIME 的,这可能是另一种漏洞利用的方式,同时也意味着后一种利用链条可能只是未被发掘。然而我认为客户端在这个漏洞里的责任更大。
HTTP Bot API 并不是 Telegram 服务端最终暴露的 API,后者是 MTProto API。HTTP Bot API 只有机器人(bot)可使用,普通用户不能使用;而 MTProto API 既可以被 bot 使用,也可以被普通用户使用。前者开放源代码,任何人均可自行搭建。后者则只有 schema 提供。
进一步地,HTTP Bot API 其实是对 tdlib 的一个 HTTP 封装,同时提供许多便利方法;而 tdlib 又是对 MTProto API 的一个保姆级封装,覆盖了建构一个客户端所需的方方面面。被引用的这条分析里涉及的就是前面说的「便利方法」sendVideo。其关键在于对
Client::get_input_file
这个方法的调用。注解如下:td::Status Client::process_send_video_query(PromisedQueryPtr &query) {
auto video = get_input_file(query.get(), "video");
// 略
}
td_api::object_ptr<td_api::InputFile> Client::get_input_file(const Query *query, td::Slice field_name,
bool force_file) const {
// 重载。query->arg(field_name) 实际上获取了请求参数 video 的值
return get_input_file(query, field_name, query->arg(field_name), force_file);
}
td_api::object_ptr<td_api::InputFile> Client::get_input_file(const Query *query, td::Slice field_name,
td::Slice file_id, bool force_file) const {
// 由于重载,通过 file_id 传入了请求参数 video 的值。
// video 的取值可参见 https://core.telegram.org/bots/api#sending-files
if (!file_id.empty()) {
// 本地模式,私有部署可用
if (parameters_->local_mode_) {
// 本地文件
td::Slice file_protocol{"file:/"};
if (td::begins_with(file_id, file_protocol)) {
return make_object<td_api::inputFileLocal>(get_local_file_path(file_id.substr(file_protocol.size())));
}
}
// bot 上传的文件
td::Slice attach_protocol{"attach://"};
if (td::begins_with(file_id, attach_protocol)) {
field_name = file_id.substr(attach_protocol.size());
// 传入了 URL 或 file_id
} else {
// force_file 表示强制将多媒体文件作为普通文件发送,sendVideo 一定导致传递 false,从而条件为真
if (!force_file) {
// 取得 URL 或 file_id,以后将会传递给 tdlib,最终传递给服务端
// 如果是 URL,由服务端自行下载 URL;如果是 file_id,服务端查询对应于 file_id 的服务端文件
// 引用的分析(sendVideo 传入远程 URL)会是这种情况
return make_object<td_api::inputFileRemote>(file_id.str());
}
}
}
// 执行到这里意味着这是 bot 上传的文件,或者 bot 传入了 force_file=true
auto file = query->file(field_name);
if (file != nullptr) {
// 取得本地的临时文件名,以后将会传递给 tdlib,最终上传到服务端
return make_object<td_api::inputFileLocal>(file->temp_file_name);
}
return nullptr;
}
经过一段复杂的调用链(从略)后,进入了 tdlib 内部。随后关键调用链如下:MessagesManager::send_message -> MessagesManager::do_send_message -> get_input_media_impl -> VideosManager::get_input_media。最后一步构造了一个 inputMediaDocumentExternal 实例,它最终将经由 MTProto API 传递给服务端。
tl_object_ptr<telegram_api::InputMedia> VideosManager::get_input_media(/* 略 */) const {
// 略
if (file_view.has_url()) {
// 略
return make_tl_object<telegram_api::inputMediaDocumentExternal>(flags, false /*ignored*/, file_view.url(), ttl);
}
// 略
}
该类型专门用于指示 Telegram 服务端从互联网上的 URL 下载文件。因此引用的分析中展示的漏洞如果真实存在的话,那么应当是服务端自己盲目轻信了 Content-Type 标头导致的漏洞,而不是产生了形如「服务端 -> tdlib -> HTTP Bot API -> Content-Type 标头」这样的盲目轻信链。
然而,如果使用 MTProto API,则直接上传的文件其实也是可以手动指定 MIME 的。MTProto API 将文件上传划分为两个阶段:上传、提供文件属性,分别对应 InputFile 和 inputMediaUploadedDocument 。后者有一个赫然的
mime_type
字段。在该字段提供不匹配的 MIME 理论上也是一条漏洞利用的路径,同时也意味着上述的「盲目轻信链」有可能存在于别处。不过,服务端对文件的元数据其实表现出很矛盾的处理方式,在我过往的试验中,即使该等文件是通过传递 URL 令服务端到互联网上拉取的,它仍会解析文件以确定分辨率、时长等元数据并返回给客户端。如果客户端上传文件,随意指定的元数据也会被服务端检测到并修正,这点在 tdlib 的源代码中也有所体现。不过,服务端的检测能力并不完美,即使是常见如
.mov
容器,它也常常失能于属性检测而依赖客户端提供正确的属性(是的,大部分客户端也会在上传文件时解析元数据并传送给服务端),否则转为普通文件。无论如何,其实 Telegram 服务端对媒体文件还是有着更多离谱的服务端限制的,我已经踩过很多坑了,因此这个漏洞在这个背景下就显得比较低级错误了。不过我认为更大程度上应该归咎于客户端:客户端自己也盲目轻信了服务端,没有做到时刻谨慎行事。Disclaimer: 我没有进行实际调试以验证被引用的分析和我的猜想各自的正确性,也没有对 inputMediaUploadedDocument 是否任意接受
mime_type
进行试验。上述结论是基于粗略的代码审计及我长久以来使用 MTProto API 的经验(尤其是我在业余项目 RSS-to-Telegram-Bot 中大量使用 inputMedia*External 的经验)得出的,未必完全正确。读者如果进行了试验,可以在评论区留言,我会跟进更新。👍1
Forwarded from Surge TestFlight Feed
关于通过代理使用 Telegram 出现持续 Updating 和其他异常的问题
我们一直有观察到 Telegram 有概率出现卡在 Updating 的问题(该问题还可表现为图片加载困难、上传持续失败等),并且该问题会出现在所有同类软件中。
为此我们进行了大量分析,甚至深入 Telegram 源码进行 Debug,逐字节的对比转发的数据包,均未发现异常,具体表现为服务端不对部分请求产生回应,但是底层的 TCP 连接状态却是正常的。
在经过更多的测试和调查后,我们目前认为最大的可能是:Telegram 的服务端会限制单访问 IP 的客户端数量,若多个用户在同一时间通过同一出口 IP 访问 Telegram 则会容易出现问题。
- 不确定该问题是服务端的故意设置的安全限制还是 Bug。
- 暂不确定这个限制是 by user 还是 by device
目前唯一解决方案是使用独立的出口 IP 连接 Telegram 服务器。
我们一直有观察到 Telegram 有概率出现卡在 Updating 的问题(该问题还可表现为图片加载困难、上传持续失败等),并且该问题会出现在所有同类软件中。
为此我们进行了大量分析,甚至深入 Telegram 源码进行 Debug,逐字节的对比转发的数据包,均未发现异常,具体表现为服务端不对部分请求产生回应,但是底层的 TCP 连接状态却是正常的。
在经过更多的测试和调查后,我们目前认为最大的可能是:Telegram 的服务端会限制单访问 IP 的客户端数量,若多个用户在同一时间通过同一出口 IP 访问 Telegram 则会容易出现问题。
- 不确定该问题是服务端的故意设置的安全限制还是 Bug。
- 暂不确定这个限制是 by user 还是 by device
目前唯一解决方案是使用独立的出口 IP 连接 Telegram 服务器。
👎6