Apache APISIX三重认证绕过漏洞深度分析:JWT、OpenID Connect、JWE插件全线失守,CVSS 9.1

Apache APISIX API网关在同一天曝出三个CVSS 9.1严重认证绕过漏洞,分别影响jwt-auth、openid-connect和jwe-decrypt三个核心认证插件。攻击者可在无需认证的情况下访问受保护的API资源。所有v2.2至v3.16.0版本均受影响,需紧急升级至v3.17.0。

三重漏洞齐发:API网关的信任危机

2026年6月19日,Apache安全团队同时披露了三个影响APISIX API网关的严重认证绕过漏洞。这不是三个独立的巧合,而是指向同一个根本问题:APISIX的认证插件在处理特定配置时存在系统性的信任边界缺陷。
三个漏洞的CVSS评分均为9.1(CRITICAL),向量为AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N。这意味着攻击者可以从网络远程、无需任何认证、无需用户交互地完全绕过认证,获取受保护资源的读取和修改权限。
| CVE编号 | 受影响插件 | 版本范围 | CVSS | 攻击向量 |
|---|---|---|---|---|
| CVE-2026-39999 | jwt-auth | v2.2 - v3.16.0 | 9.1 | JWT令牌伪造 |
| CVE-2026-44087 | openid-connect | v2.3 - v3.16.0 | 9.1 | 身份头欺骗 |
| CVE-2026-49230 | jwe-decrypt | v3.8.0 - v3.16.0 | 9.1 | 完整性校验绕过 |
Apache APISIX是全球使用最广泛的开源API网关之一,在Kubernetes Ingress、微服务架构和API管理场景中被大量采用。其认证插件是保护后端服务的第一道防线——当这道防线同时在三个方向被突破时,所有依赖APISIX进行认证的API服务都面临直接暴露的风险。
CVE-2026-39999:JWT认证插件欺骗绕过

jwt-auth插件是APISIX中最常用的认证插件之一,用于验证JSON Web Token(JWT)的合法性。该漏洞允许攻击者在特定配置下完全绕过JWT验证。
JWT的工作原理是:客户端在请求头中携带签名的JWT令牌,APISIX验证令牌的签名、有效期和声明(claims)。当验证通过时,APISIX将请求转发给上游服务。
CVE-2026-39999的根因在于jwt-auth插件对某些特定配置组合的处理存在逻辑缺陷。当插件配置中启用了某些高级选项(如多算法支持或自定义声明映射)时,攻击者可以构造特殊的JWT令牌,使验证逻辑进入预期之外的代码路径,从而绕过签名验证。
# 检查APISIX版本
curl -s http://localhost:9180/apisix/admin/version \
-H "X-API-KEY: your-admin-key" | python3 -c "
import json, sys
data = json.load(sys.stdin)
print(f'APISIX Version: {data}')
"
# 检查是否启用了受影响的插件
curl -s http://localhost:9180/apisix/admin/routes \
-H "X-API-KEY: your-admin-key" | python3 -c "
import json, sys
data = json.load(sys.stdin)
affected_plugins = ['jwt-auth', 'openid-connect', 'jwe-decrypt']
for route in data.get('list', []):
plugins = route.get('value', {}).get('plugins', {})
for plugin in affected_plugins:
if plugin in plugins:
print(f'[!] Route {route[\"key\"]} uses {plugin}')
"
CVE-2026-44087:OpenID Connect身份头欺骗

openid-connect插件用于将APISIX与外部身份提供商(IdP)集成,支持OAuth 2.0和OpenID Connect协议。该插件在默认配置下存在身份头欺骗漏洞。
在正常的OpenID Connect流程中,用户通过身份提供商认证后,APISIX验证ID Token并将用户身份信息注入请求头中传递给上游服务。上游服务信任这些由APISIX设置的身份头(如X-User-ID、X-User-Role等)。
CVE-2026-44087的问题在于:攻击者可以直接在请求中伪造这些身份头,而openid-connect插件在默认配置下不会清除或覆盖这些外部注入的头信息。这意味着攻击者可以冒充任何用户身份,包括管理员。
这是一个典型的"信任边界混淆"问题——上游服务信任APISIX设置的头,但APISIX没有确保这些头只能由自己设置。在微服务架构中,这种模式非常普遍,因此该漏洞的影响范围远超APISIX本身。
CVE-2026-49230:JWE解密完整性校验绕过

jwe-decrypt插件用于解密JSON Web Encryption(JWE)格式的令牌。JWE是JWT的加密版本,不仅提供签名验证,还提供载荷加密。
CVE-2026-49230的漏洞在于jwe-decrypt插件对完整性校验值(Integrity Check Value)的验证不足。在JWE规范中,认证标签(Authentication Tag)用于确保密文未被篡改。该插件在某些配置下未能正确验证认证标签,允许攻击者修改密文而不被检测到。
这意味着即使组织使用了JWE加密来保护敏感的API令牌,攻击者仍然可以在不知道加密密钥的情况下篡改令牌内容,可能修改用户身份、权限级别或其他安全相关的声明。
# 不安全的默认配置示例(3.17.0之前)
plugins:
jwe-decrypt:
key: your-encryption-key
# 默认配置下完整性校验不足
# 安全配置(升级到3.17.0后)
plugins:
jwe-decrypt:
key: your-encryption-key
# 3.17.0修复了完整性校验逻辑
修复方案与升级指南

Apache APISIX官方已发布v3.17.0版本修复所有三个漏洞。对于无法立即升级的环境,可以采取以下临时缓解措施:
# 升级到3.17.0(推荐方式)
# 使用Docker
docker pull apache/apisix:3.17.0-debian
docker stop apisix && docker rm apisix
docker run -d --name apisix \
-v /path/to/config:/usr/local/apisix/conf \
-p 9080:9080 -p 9180:9180 \
apache/apisix:3.17.0-debian
# 使用RPM
yum install apisix-3.17.0-0.el7.x86_64.rpm
# 使用luarocks
luarocks install apisix 3.17.0
# 验证版本
curl -s http://localhost:9180/apisix/admin/version \
-H "X-API-KEY: your-admin-key"
临时缓解措施(如无法立即升级):
- 禁用受影响插件:在routes中移除jwt-auth、openid-connect和jwe-decrypt插件
- 网络层防护:在WAF中添加规则,检测异常的JWT/JWE令牌格式
- 请求头清洗:在上游服务或反向代理层清除并重新设置身份相关头
- 访问控制:限制APISIX管理API的访问范围
# Nginx层面的身份头清洗(临时缓解)
proxy_set_header X-User-ID "";
proxy_set_header X-User-Role "";
proxy_set_header X-User-Email "";
# 由APISIX重新设置这些头
API网关安全最佳实践
CVE-2026-39999、CVE-2026-44087和CVE-2026-49230三个漏洞同时出现,暴露了API网关认证架构中的深层问题。对于使用APISIX或其他API网关(如Kong、Traefik、Envoy)的企业,以下安全实践至关重要:
纵深防御:不要将API网关作为唯一的认证层。上游服务应自行验证请求的合法性,而不是盲目信任网关注入的头信息。采用零信任架构,每一层都应独立验证。
插件最小化:仅启用必要的插件。每个启用的插件都是潜在的攻击面。定期审计已启用的插件列表,禁用未使用的认证机制。
配置审计:定期审查APISIX的路由配置,确保认证插件的配置符合安全基线。使用自动化工具检测配置漂移。
版本管理:建立API网关的版本跟踪机制,订阅Apache安全公告,在安全更新发布后48小时内完成评估和测试。
| 安全实践 | 实施难度 | 安全收益 | 优先级 |
|---|---|---|---|
| 纵深防御(上游独立验证) | 高 | 极高 | P0 |
| 插件最小化 | 低 | 高 | P0 |
| 配置审计自动化 | 中 | 高 | P1 |
| 版本跟踪与更新 | 低 | 高 | P1 |
| WAF规则补充 | 中 | 中 | P2 |
对微服务架构的深远影响
APISIX作为API网关在微服务架构中扮演着"门卫"角色。当门卫被绕过时,其后方所有服务的安全假设都将崩塌。这三个漏洞的影响远不止APISIX本身——任何依赖APISIX进行认证的微服务集群都需要重新评估其安全态势。
特别是在Kubernetes环境中,APISIX通常作为Ingress Controller运行,处理所有入站流量。如果认证被绕过,攻击者可以直接访问集群内部的任何服务,包括数据库、消息队列和内部API。这种"单点失败"的风险正是零信任架构要解决的核心问题。
对于使用APISIX的企业,建议在修复后进行一次全面的安全审计:检查所有通过APISIX认证的API端点,验证上游服务是否有独立的认证机制,评估被绕过期间可能的数据泄露风险。
数据来源与参考文献
- Apache. "APISIX Security Advisory - CVE-2026-39999." Apache Mailing List, 2026-06-19. https://lists.apache.org/thread/nfopt8cnxd3k0rs1oxtr7lzxrdw4mojq
- Apache. "APISIX Security Advisory - CVE-2026-44087." Apache Mailing List, 2026-06-19.
- Apache. "APISIX Security Advisory - CVE-2026-49230." Apache Mailing List, 2026-06-19. https://lists.apache.org/thread/n0blgkpvz38ghh5rrh6wtl476919xj1b
- NVD. "CVE-2026-39999 / CVE-2026-44087 / CVE-2026-49230." National Vulnerability Database, 2026. https://nvd.nist.gov/
- OSS-Security. "Apache APISIX multiple auth bypass." Openwall, 2026-06-19. http://www.openwall.com/lists/oss-security/2026/06/19/5
更新时间: 2026-06-26
评论