TeamCity CVE-2026-63077实战:未认证绕过RCE挖掘、检测、修复与供应链防御全流程 一、漏洞基础情报与边界厘清1.1 官方漏洞基线CVE编号CVE-2026-63077风险等级CVSS 9.8 严重漏洞类型身份认证逻辑缺陷 Java不可信数据反序列化CWE-502影响产品TeamCity On-Premises 自建本地部署版完全不受影响实例JetBrains TeamCity Cloud 托管云实例。受影响版本区间2017.1 ~ 2026.1.2官方修复基线版本2025.11 分支升级至 2025.11.72026.1 分支升级至 2026.1.3老旧版本无法停机完整升级场景JetBrains提供独立补丁插件最低兼容版本下探至2017.1。很多企业运维存在一个致命误区内网部署就放任不管。攻击者只要触达8111服务端口无需账户、Cookie、Token、访客权限就能发起攻击。漏洞触发链路完全脱离登录模块关闭Guest访客账号不会形成任何防护效果。1.2 与历史同类漏洞边界区分业内大量安全人员容易将本漏洞和CVE-2023-42793混淆。两个漏洞同属TeamCity高危未认证漏洞但底层接口、触发协议、流量特征、防御规则完全隔离。CVE-2023-42793依赖REST API路径缺陷CVE-2026-63077作用于Agent Polling 构建代理通信协议端点。直接复用旧版WAF规则、Nuclei检测规则无法拦截本次攻击企业现有安全设备规则库必须单独更新。1.3 攻击前置条件梳理硬性条件网络可达TeamCity服务监听端口默认8111。无任何附加条件无需注册账号、不需要有效会话、不存在人机验证不需要上传文件不需要用户交互。执行权限说明漏洞执行命令权限等同于TeamCity Server进程运行账号。大量企业使用root、Administrator启动TeamCity一旦被利用攻击者直接拿到服务器最高权限。二、底层技术原理Agent通信协议认证断层分析2.1 TeamCity分布式架构基础TeamCity采用服务端分布式Agent集群架构。TeamCity Server统一存储流水线配置、凭证、源码关联信息、构建任务调度中心。Build Agent部署在多台节点主动持续轮询Server拉取构建任务执行编译、打包、镜像构建等工作。推送代码/触发流水线下发构建任务下发构建任务下发构建任务构建结果回传构建结果回传直接访问Agent协议接口开发人员TeamCity Server 8111Build Agent 节点1Build Agent 节点2Build Agent 节点N攻击者正常通信流程Agent启动携带自身唯一Agent Token向Server完成注册认证建立长轮询通道持续请求待执行任务Server校验Agent身份下发合法任务数据2.2 漏洞触发核心逻辑开发设计预期只有完成身份校验的Agent才允许接收、解析二进制协议数据包。程序实现缺陷处理Agent轮询二进制请求的代码分支优先执行反序列化逻辑身份校验后置。执行顺序错误链路HTTP请求抵达Agent协议端点服务端读取请求Body二进制载荷直接执行Java对象反序列化完成反序列化之后代码才执行身份合法性校验校验顺序倒置形成致命安全缺口。恶意序列化对象在身份验证执行前完成解析原生Java反序列化gadget链被触发实现操作系统命令调用。身份校验逻辑无法补救已经执行完成的恶意代码校验失败仅会断开本次请求攻击行为已经生效。TeamCityServerAttackerTeamCityServerAttacker第一步读取Body执行反序列化恶意Gadget触发执行系统命令命令执行已经完成响应结果不影响攻击效果POST 请求携带恶意序列化二进制payload第二步执行Agent身份校验返回身份认证失败响应2.3 协议与流量特征总结攻击请求为POST类型目标接口属于内部Agent私有协议不在公开REST API文档内。请求载荷为大块二进制数据流标准HTTP表单、JSON格式不会出现此类流量。正常业务流量中该接口请求全部来自内网可信Build Agent节点。公网IP访问该接口并携带大容量二进制包属于极高危异常行为可以作为IDS、防火墙告警基准规则。三、完整攻击链路CI服务器沦陷到供应链投毒全路径CI/CD平台处于软件供应链信任链核心位置单点失守会形成连锁渗透。绝大多数企业只关注漏洞本身服务器失陷风险忽略下游供应链持续危害。3.1 第一阶段TeamCity服务端权限控制攻击者获取服务器权限后优先执行四类操作遍历TeamCity数据库、配置文件提取所有持久化凭证Git账号SSH密钥、云厂商AK/SK、数据库连接密码、制品仓库访问令牌、生产环境发布密钥。平台内凭证大量以明文或者弱加密形式保存。读取全部流水线配置梳理代码仓库地址、制品推送目标、线上环境连通路径。检索构建历史产物下载软件二进制包、容器镜像、内部文档。创建持久化后门保证权限长期持有规避管理员重启服务、修改管理员密码造成权限丢失。3.2 第二阶段内网横向移动扩大攻击面依托攻陷的TeamCity服务器作为跳板向内网扩散使用窃取的Agent通信凭证控制全部Build Agent集群节点。构建节点往往拥有访问代码仓库、测试环境、预发环境网络权限。利用Git凭证入侵代码托管平台读取全部业务源代码。访问Nexus、Harbor、PyPI私有制品库篡改存量软件包。3.3 第三阶段供应链投毒最高危攻击下一跳供应链投毒分为两种技术路线溯源难度差距极大。源码静态投毒直接修改Git仓库源代码植入后门。代码变更会留下提交记录安全审计时更容易被发现。构建阶段动态投毒不改动任何源码文件。在CI流水线编译、打包脚本内注入恶意逻辑。正常源码入库仅在构建运行阶段加载恶意代码。代码仓库不存在任何修改痕迹常规代码审计无法发现问题。面向外部交付SDK、客户端程序、固件、硬件配套软件的企业一旦发生构建投毒恶意代码跟随安装包扩散至大量客户侧引发大规模安全事件。TeamCity Server 被攻陷窃取各类凭证控制Build Agent集群入侵Git代码仓库访问制品仓库Harbor/Nexus流水线恶意改造源码植入后门构建投毒 无代码变更记录源码投毒 存在git提交记录污染软件包/容器镜像软件下发至企业内部/外部客户四、资产自查、漏洞检测工具与完整可运行脚本分为三类检测手段远程无损探测脚本、服务器本地巡检脚本、日志审计排查方案。所有代码仅用于企业授权资产自查禁止外部未授权扫描。4.1 Python远程资产探测脚本存活TeamCity实例识别作用内网批量识别开放8111端口、运行TeamCity自建服务的资产区分Cloud托管与本地部署版本。# teamcity_scan.py TeamCity资产探测脚本importsocketimportrequestsfromconcurrent.futuresimportThreadPoolExecutor headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0 Safari/120.0.0.0}defcheck_teamcity(target,port8111):try:urlfhttp://{target}:{port}resprequests.get(url,headersheaders,timeout3,allow_redirectsTrue)ifTeamCityinresp.text:ifteamcity.cloudinresp.url:print(f[SAFE]{target}:{port}- TeamCity Cloud托管实例不受CVE-2026-63077影响)else:print(f[RISK]{target}:{port}- TeamCity On-Prem自建实例需要核查版本)exceptException:returnif__name____main__:ip_segment192.168.1.tasks[]withThreadPoolExecutor(max_workers30)aspool:forhostinrange(1,255):ipip_segmentstr(host)pool.submit(check_teamcity,ip)运行命令python3 teamcity_scan.py4.2 Nuclei检测规则模板无损探测标记风险资产说明该规则仅识别目标存在Agent通信接口无法确认漏洞是否完成补丁修复仅作为初步筛查不能当作漏洞确认依据。保存文件命名cve-2026-63077-teamcity.yamlid:cve-2026-63077-teamcity-checkinfo:name:TeamCity CVE-2026-63077 Agent Endpoint Detectionauthor:securityseverity:highdescription:Detect TeamCity Agent polling protocol endpoint,risk of CVE-2026-63077reference:-https://www.jetbrains.com/security/tags:teamcity,cve,cve2026,ci/cdrequests:-raw:-|POST /app/agent HTTP/1.1 Host: {{Hostname}} Content-Length: 0matchers-condition:andmatchers:-type:statusstatus:-400-type:headerpart:headername:Servercontains:TeamCity执行扫描命令nuclei-uhttp://192.168.1.100:8111-tcve-2026-63077-teamcity.yaml4.3 Linux本地巡检脚本服务器内执行入侵痕迹排查当管理员怀疑TeamCity服务器已经遭受入侵在主机内部执行巡检排查异常进程、陌生定时任务、未知构建任务。#!/bin/bash# teamcity_local_check.sh 入侵痕迹本地巡检脚本echo 1. 查看TeamCity进程及子进程 psaux|grep-iteamcityecho 2. 检索反弹shell特征进程 psaux|grep-Enc|bash -i|python.*socket|socatecho 3. 系统定时任务核查 crontab-lls-l/etc/cron.*echo 4. 查看TeamCity日志目录默认路径 ls-lh/opt/TeamCity/logs/echo 5. 检索日志内异常Agent访问记录 grep-i/app/agent/opt/TeamCity/logs/server.log2/dev/nullecho 巡检完成 赋予执行权限并运行chmodx teamcity_local_check.sh ./teamcity_local_check.sh五、分级应急处置方案按照执行优先级排序5.1 一级方案版本升级彻底根除漏洞所有具备停机窗口的实例优先选择升级修复。升级操作清单升级前完整备份TeamCity数据目录、数据库。2026.1分支升级至2026.1.32025.11分支升级至2025.11.7。Docker容器部署环境拉取官方最新镜像重建容器禁止直接在旧容器内替换程序文件。升级完成重启服务访问管理后台确认版本号保留升级日志。5.2 二级方案临时补丁插件无法停机升级场景业务无法中断、长期找不到维护窗口的老旧版本部署JetBrains官方应急补丁插件。操作步骤从JetBrains安全公告页面下载对应补丁插件zip包。登录TeamCity管理员后台进入插件管理页面上传插件。启用插件无需重启服务即可生效。持续规划长期升级时间表补丁仅作为过渡手段不建议长期依赖。5.3 三级缓解策略网络访问控制网络策略只能缩小攻击面不能独立防御漏洞。内网存在攻击者时防护完全失效。防火墙/安全组配置要点禁止0.0.0.0/0公网地址访问8111端口。仅放行固定运维IP段、Build Agent节点网段访问TeamCity服务。WAF添加告警规则公网IP访问/app/agent等Agent协议接口直接告警并拦截。六、长期安全加固配置清单CI/CD平台基线规范6.1 进程运行权限约束禁止使用root、Administrator账号启动TeamCity服务。新建专用低权限系统账号仅分配程序目录读写权限不赋予sudo、管理员权限。限制进程横向访问内网核心服务器的能力。6.2 凭证安全改造绝大多数失陷之后造成大规模泄露的根源是平台明文存储密钥。改造动作清单逐步移除流水线内硬编码账号、密钥。对接外部密钥管理系统HashiCorp Vault流水线动态拉取密钥不在TeamCity持久存储凭证。设置密钥定期轮换机制漏洞修复完成后批量轮换所有存在TeamCity内的业务密钥。6.3 网络架构隔离三层网络分段规范TeamCity Server放置在独立CI专区网段。Build Agent集群划分独立子网。CI网段与生产业务环境之间部署访问控制策略默认阻断双向连通按需开放最小权限访问。6.4 流水线审计机制落地开启所有流水线配置变更审计日志记录修改人、修改时间、变更内容。核心业务流水线开启双人审批任意脚本修改必须经过二次审核才允许执行构建。长期监控无人触发的自动构建任务异常构建第一时间告警。6.5 定期资产巡检机制每月执行一次内网CI资产扫描识别新增未登记TeamCity、Jenkins、GitLab自建实例。很多业务团队私自搭建持续集成平台长期脱离安全管控成为内网突破口。七、常见认知误区梳理内网部署等于安全攻击者通过钓鱼、其他漏洞横向进入内网后可以直接利用该漏洞。大量重大供应链安全事件初始突破口均为内网CI平台。启用HTTPS加密可以防御漏洞漏洞属于应用层代码逻辑缺陷TLS加密只防止流量窃听无法阻止攻击者发送恶意二进制请求。关闭Guest访客账号实现防护漏洞攻击链路完全绕过账号认证体系整套登录模块不会参与请求校验访客账号状态不会产生任何防护效果。部署WAF就能彻底拦截攻击攻击载荷为二进制序列化数据通用WAF默认规则很难识别。必须配合专门针对Agent接口的访问控制策略。八、CI供应链防御延伸思考持续集成平台已经成为现代网络攻击的重点目标。近几年公开披露的多起重大供应链事件攻击起点全部瞄准CI/CD工具。攻击者的战术已经发生明显转变不再执着于直接入侵线上业务服务器转向攻击软件构建链路。一旦控制构建流程恶意代码跟随软件持续分发攻击收益更高排查难度更大。企业安全建设不能把重心单一放在边界防火墙、业务Web应用防护。必须建立软件供应链安全体系将Jenkins、TeamCity、GitLab、制品仓库纳入核心重点防护资产。定期梳理整条软件交付链路信任节点评估每个节点被攻陷之后产生的连锁风险制定对应止损方案。互动问题你们企业内网是否存在业务人员私自搭建、不受安全管控的TeamCity实例日常采用什么方式完成CI资产持续摸排如果你的TeamCity服务器确认遭遇CVE-2026-63077攻击你会优先轮换哪一类凭证来阻断供应链持续渗透风险我之前也整理过大量CI/CD平台漏洞检测与防御实战内容更多相关工具脚本、加固配置模板可以来我博客看看。