Skip to content

以HTTPs启动服务时存在的安全漏洞 #497

@BugsGuru

Description

@BugsGuru

版本信息(Version)

2506

问题描述(Describe)

  1. dms启动https服务时支持了过时的密码组件:TLS_RSA_WITH_3DES_EDE_CBC_SHA,该密码组件存在SSL/TLS 协议信息泄露漏洞(CVE-2016-2183)
  2. 支持tls1.0、1.1,需要禁用
  3. 需要禁用rsa密钥交换

截图或日志(Log)

Image

如何复现(To Reproduce)

配置dms以https协议启动,使用nmap扫描支持的加密组件

nmap -p 443 --script ssl-enum-ciphers localhost
Starting Nmap 7.97 ( https://nmap.org ) at 2025-07-25 11:01 +0800
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000072s latency).
Other addresses for localhost (not scanned): ::1

PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   TLSv1.0:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (secp256r1) - C
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       64-bit block cipher 3DES vulnerable to SWEET32 attack
|   TLSv1.1:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (secp256r1) - C
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       64-bit block cipher 3DES vulnerable to SWEET32 attack
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (secp256r1) - C
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       64-bit block cipher 3DES vulnerable to SWEET32 attack
|   TLSv1.3:
|     ciphers:
|       TLS_AKE_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
|       TLS_AKE_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
|       TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
|     cipher preference: server
|_  least strength: C

问题原因

在使用 github.com/labstack/echo/v4 v4.10.2 通过 StartTLS 启动 HTTPS 服务时被检测出存在 SWEET32 (CVE-2016-2183) 漏洞,这意味着你的服务允许客户端协商并使用 64 位块大小的弱密码套件,主要是 3DES。

修复这个漏洞的关键在于禁用所有基于 3DES/DES 的弱密码套件,并强制服务器优先使用更强大、更现代的密码算法。

解决方案

echo 框架本身不直接处理 TLS 配置,它底层依赖 Go 语言标准库的 net/http 和 crypto/tls 包。因此,你需要通过配置 http.Server 的 TLSConfig 字段来解决这个问题。

变更影响面

受影响的模块或功能

外部引用的潜在问题或风险

版本兼容性

测试建议

Metadata

Metadata

Assignees

Labels

verified已经由测试验证过的issue

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions