Oracle 2026 年 10 月 Critical Patch Update 已经正式挂出来了,页面标题不再带 Pre-Release。MySQL 这一家就有 98 个新补丁,其中 29 个可以在无认证的条件下远程打进来。两条 CVSS 9.8 都落在 MySQL Server 的编译依赖上:OpenSSL 和 curl,成功利用可以直接接管实例。公告刚放出那天,官方 mysql:8.4 还停在 8.4.11;发稿前再查一次,浮动标签已经挪到 8.4.13。
公告里 MySQL 写了什么
Advisory 标题是 Oracle Critical Patch Update Advisory - October 2026。受影响的 MySQL Server 版本是 8.4.0-8.4.12、9.7.0-9.7.3、26.7.0-26.7.1。升到公告列出的上界之后的那个构建,才算离开这张风险矩阵。Cluster、Enterprise Backup、Router、Connectors 各自还有单独条目,Cluster 的 8.0 线也在名单里。
两条 9.8 分的漏洞编号是 CVE-2025-15467 和 CVE-2026-9547。组件都标成 Server: Compiling,分别挂 OpenSSL 和 curl。描述都是 Easily exploitable,未认证攻击者走网络就能打,后果是 takeover。同一组补丁还会捎上各自一长串相关 CVE,OpenSSL 那条和 curl 那条都不是单点修复。
再往下几档也值得看一眼。Server: Group Replication GCS 的 CVE-2026-101781 是 8.8 分,攻击面写的是物理通信网段,未认证就能接管。Server: JSON 的 CVE-2026-101785 是 8.3 分,低权限账号走网络即可,能改关键数据,也能把实例打到反复崩溃。Client programs 还有几条 8.1 分的未认证远程接管。MySQL Router 有一条 7.5 分的未认证远程拒绝服务。
Java 这边,Connector/J 单独列了 CVE-2026-101768,CVSS 8.1,受影响版本只写了 26.7.0,攻击路径是 HTTP,Difficult to exploit,后果同样是 takeover。Connector/Python 有一条 7.5 分的未认证数据读取。
这类安全公告之前写过一篇 Argo CD 修了三个严重漏洞,3.3 至 3.5 都要升到对应补丁版,读法一样:先看分数和认证条件,再对版本号。
公告放出后,镜像和驱动到哪了
第一次核对是 2026-10-21 08:14 北京时间。当时公告页已经正式放出:
### A: Oracle CPU 页面标题与是否仍写 Pre-Release
$ curl -sL -A Mozilla/5.0 -o /tmp/cpuoct-check.html -w http=%{http_code}\n https://www.oracle.com/security-alerts/cpuoct2026.html
http=200
title= Oracle Critical Patch Update Advisory - October 2026
pre-release_count= 0
mysql_intro= contains 98 new security patches for Oracle MySQL. 29 of these vulnerabilities may be remotely exploitable without authentication, i.e., may be exploited over a network without requiring user credentials. The English text form of this Risk Matrix can be found her
同一时刻 Docker Hub 官方 library/mysql 还停在 10-19 那批:8.4 对应 8.4.11,9.7 对应 9.7.2;公告上界 8.4.12、9.7.3、26.7.1 以及通常会跟在后面的 8.4.13、9.7.4、26.7.2 当时全部 404。
发稿前 2026-10-22 22:16 北京时间再查一遍,情况变了。8.4 与 8.4.13 同 digest,最近推送是 10-21 23:02 UTC;9.7 与 9.7.4 同 digest,最近推送是 10-21 23:03 UTC。8.4.12、9.7.3、26.7.1、26.7.2 依旧 404:
### B: Docker Hub 官方 mysql 镜像(2026-10-22 22:16 北京时间再查)
8.4: exists last_updated=2026-10-21T23:02:46 -> 8.4.13
8.4.11: exists last_updated=2026-10-19T23:02:53
8.4.12: missing http=404
8.4.13: exists last_updated=2026-10-21T23:02:52
9.7: exists last_updated=2026-10-21T23:03:10 -> 9.7.4
9.7.2: exists last_updated=2026-10-19T23:03:18
9.7.3: missing http=404
9.7.4: exists last_updated=2026-10-21T23:03:16
26.7.1: missing http=404
26.7.2: missing http=404
公告写的 Server 上界是 8.4.12 和 9.7.3。Hub 上直接跳出了 8.4.13 和 9.7.4,按版本号已经越过风险矩阵那一档。现在执行 docker pull mysql:8.4 或 mysql:9.7,拉到的是 10-21 那批新构建,不再是 10-19 的 8.4.11 / 9.7.2。企业订阅用户走 MOS 或 Oracle 自己的仓库仍可能更快;社区镜像和发行版包装要以 SELECT VERSION() 和发行说明为准,别只看浮动标签。
Connector/J 这边,Maven Central 的 latest 已经是 26.10.0,lastUpdated=20261020114319,也就是 CPU 当天前后刚推上去的。26.7.0 还在仓库里,26.7.1 没有。Spring Boot 4.1.1 的 spring-boot-dependencies 把 mysql.version 钉在 9.7.0,对应的就是 mysql-connector-j:
### C: Maven Central mysql-connector-j 版本与 Spring Boot 4.1.1 管理版本
$ curl -sL -o /tmp/cj-meta.xml https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/maven-metadata.xml
mysql-connector-j latest=26.10.0 release=26.10.0 lastUpdated=20261020114319
connector-j 26.7.0: http=200
connector-j 26.7.1: http=404
connector-j 26.10.0: http=200
connector-j 9.7.0: http=200
$ curl -sL -o /tmp/boot411.pom https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/4.1.1/spring-boot-dependencies-4.1.1.pom
spring-boot-dependencies 4.1.1 mysql.version= 9.7.0
connector-j snippet= y> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <version>${mysql.version}</version> <exclusions> <exclusion> <groupId>c
公告里 Connector/J 的受影响版本只写了 26.7.0。Boot 4.1.1 默认带的 9.7.0 不在这个名单上。这只说明驱动那一条对默认 BOM 不直接命中,Server 端的 9.8 和 Group Replication、JSON 那些条目该升级还是要升级。有人如果显式改成了 26.7.0,就对上 CVE-2026-101768 了,至少要离开这个版本。
一起交流
分享你的思考,让讨论更进一步。