🛡️ A 32-Year-Old Bug Walks Into A Telnet Server

来源: labs.watchtowr.com

分类: 安全漏洞TelnetCVE-2026-32746RCE

评分: ⭐⭐⭐⭐ (4星)

发现者: DREAM Security Research Team

漏洞概述

CVE-2026-32746 是一个存在于 GNU inetutils telnetd 中的 BSS-based buffer overflow 漏洞,允许攻击者篡改约400字节的相邻变量。该漏洞源于1994年,与经典电影《黑客》同年诞生!

核心发现: 漏洞存在于 LINEMODE SLC (Set Linemode Characters) 协商处理程序中,服务器将数据存储在固定大小的全局数组中,没有进行边界检查

影响范围

该漏洞影响范围极其广泛,包括:

  • Linux发行版: Ubuntu, Debian (已验证)
  • BSD系统: FreeBSD 13/15, NetBSD 10.1, DragonFlyBSD
  • 苹果系统: Apple Mac Tahoe
  • 网络设备: Citrix NetScaler, TrueNAS Core
  • 其他: Haiku, uCLinux, libmtev

历史背景

有趣的是,同一个漏洞在2005年(CVE-2005-0469)曾在Telnet客户端中被发现并修复。而服务端的问题则被忽略了长达30年!

Telnet协议的LINEMODE功能源自RFC 1184,设计目的是在慢速网络上减少流量——那个时代网络按数据包计费!

技术细节

Telnet连接建立后会进行"协商":

  • 服务器发送 IAC DO LINEMODE (0xFF 0xFD 0x22)
  • 客户端响应 IAC WILL LINEMODE (0xFF 0xFB 0x22)
  • 服务器发送SLC字符定义的三字节组:IAC SB LINEMODE LM_SLC <triplets> IAC SE

问题出在:服务器将客户端返回的值存储在没有边界检查的全局数组中。

为什么2026年还有Telnet?

Telnet在生产环境中仍然存在,原因包括:

  • 老旧硬件只支持Telnet(如某些工业CNC机器)
  • 嵌入式系统没有SSH客户端
  • 遗留系统的兼容性要求

相关漏洞

  • CVE-2026-24061: Telnet环境变量共享功能的RCE漏洞
  • CVE-2005-0469: Telnet客户端的同源漏洞(2005年)

← 返回索引