Description
gotd/td is a T Telegram MTProto API client in Go. Prior to 0.145.1, proto.UnencryptedMessage.Decode in proto/unencrypted_message.go read attacker controlled dataLen from an unauthenticated MTProto unencrypted packet and allocated make([]byte, dataLen) before checking the remaining buffer, allowing remote unauthenticated denial of service through excessive memory allocation and CPU or garbage collection pressure. This issue is fixed in version 0.145.1.
Published: 2026-07-28
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability resides in the proto.UnencryptedMessage.Decode routine of the gotd/td Telegram MTProto client. An attacker can control the dataLen field in an unencrypted MTProto packet. Before validating the packet length, the code allocates a slice of that size, allowing the attacker to request an arbitrarily large allocation. This leads to excessive memory usage and application instability without any authentication requirement, effectively causing a denial of service. The weakness maps to CWE-770 and CWE-789.

Affected Systems

The affected product is the gotd/td Go MTProto client. All releases prior to version 0.145.1 are vulnerable. The fixed release is 0.145.1 and later.

Risk and Exploitability

The CVSS score of 7.5 indicates a serious risk. The EPSS score is below 1 %, suggesting that exploitation is currently unlikely, and the vulnerability is not listed in CISA’s KEV catalogue. The flaw is exploitable remotely by an unauthenticated attacker who can send a crafted unencrypted packet to the client; no other credentials or privileged access are required. Successful exploitation would exhaust system memory or heavily tax the garbage collector, leading to service unavailability.

Generated by OpenCVE AI on August 3, 2026 at 14:07 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the gotd/td client to version 0.145.1 or newer.
  • If an upgrade is not immediately possible, restrict incoming unencrypted MTProto traffic using a firewall or rate limiter to reduce the impact of oversized packets.
  • Monitor application memory usage and GC statistics for anomalous spikes, and consider restarting the process if spikes exceed thresholds.

Generated by OpenCVE AI on August 3, 2026 at 14:07 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-whmm-qj9r-wvr2 td has pre-auth denial of service via unbounded memory allocation in proto.UnencryptedMessage.Decode
History

Wed, 29 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
First Time appeared Gotd
Gotd td
Vendors & Products Gotd
Gotd td
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 28 Jul 2026 22:30:00 +0000

Type Values Removed Values Added
Description gotd/td is a T Telegram MTProto API client in Go. Prior to 0.145.1, proto.UnencryptedMessage.Decode in proto/unencrypted_message.go read attacker controlled dataLen from an unauthenticated MTProto unencrypted packet and allocated make([]byte, dataLen) before checking the remaining buffer, allowing remote unauthenticated denial of service through excessive memory allocation and CPU or garbage collection pressure. This issue is fixed in version 0.145.1.
Title td has pre-auth denial of service via unbounded memory allocation in proto.UnencryptedMessage.Decode
Weaknesses CWE-770
CWE-789
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-29T14:20:26.682Z

Reserved: 2026-06-15T20:07:02.186Z

Link: CVE-2026-54638

cve-icon Vulnrichment

Updated: 2026-07-29T14:20:22.827Z

cve-icon NVD

Status : Received

Published: 2026-07-28T23:17:08.617

Modified: 2026-07-29T15:16:24.990

Link: CVE-2026-54638

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T14:15:05Z

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling

  • CWE-789

    Memory Allocation with Excessive Size Value