如果你 NAS 上的 Kavita 是几个月前(甚至一两年前)装的,装完就没再碰过,尤其是还按教程做了"公网暴露+反代"的远程阅读配置,那这篇文章值得你花十分钟看完。原因很简单:今年 5 月中旬 Kavita 发布了 v0.9.0.2,release notes 几乎只为一件事——项目发现了严重安全漏洞,0.9.0.2 之前的所有版本都受影响,官方原话是"强烈建议所有用户立即更新"。GitHub后续公布的 CVE 编号为 CVE-2026-47202。

这个漏洞到底干了什么
NVD(美国国家漏洞数据库)的描述很短,但分量很重:0.9.0.2 之前版本存在 Token 校验缺陷(Improper Token validation),远程、未认证的攻击者只要知道用户名,就能获取包括管理员在内任意用户的 JWT。美国国家漏洞数据库
翻译成人话:不需要密码,不需要撞库,攻击者只要知道一个用户名,就能直接拿到这个账号的登录凭证。而自建书库里最容易被猜中的用户名,恰恰就是 admin。拿到 JWT,对方就能以你的身份进你的书库;如果是管理员账号,书库、用户、设置全部任人处置。
谁该紧张,谁可以先松口气
攻击成立的前提,是攻击者能访问到你的 Kavita。先对号入座:
按教程开了公网访问的(DDNS 端口转发、cpolar、花生壳、内网穿透,或者干脆把端口直接暴露):暴露面最大,建议今天就升。国内不少远程看漫画的教程,标准动作就是内网穿透加端口转发。知乎
开给家人朋友共用的:Kavita 的定位本来就是"搭好书库分享给亲友",用户名在彼此之间基本是明牌,"知道用户名"这个条件天然满足。
纯局域网、完全不对外的:风险低,但不是零——同一网络里的任何设备都能发起请求,排个期升级即可。
更现实的问题是,中文社区至今几乎没人聊这个 CVE。我翻了知乎、微博、小红书上关于 Kavita 的内容,基本还停在两类:部署教程,和"界面真好看"的介绍,升级和安全几乎是空白。这也符合自托管圈的常态:部署即巅峰,装完不再碰。可漏洞不会等你想起来。

为什么还有那么多人停在旧版本
顺带排两个常见的坑:
一是你跟的教程本身就是过期的。官方 FAQ 页面已经明确标注:旧镜像仓库 kizaing/kavita 不再支持。Kavita 官方文档但国内视频平台上不少 Kavita 教程的 docker 命令还在拉 kizaing——那个仓库不会再更新,你天天 docker pull 也 pull 不到安全补丁。官方目前维护 DockerHub、LinuxServer.io、GitHub Container Registry 三个镜像渠道,文档示例命令用的是 jvmilazz0/kavita,NAS 玩家里 linuxserver 的镜像也用得很多。翻翻自己的 compose 文件,还是 kizaing 的话,这次升级一起换掉。
二是"新版改动我不喜欢,所以不想升"。官方确实知道有人这么想,v0.9.0 甚至加了"别再弹窗催我更新"的选项。但同一份 release notes 里也写了原话:不建议停留在旧版本,因为有安全补丁。GitHub
升级前,先看这份四步清单
升级本身不难,可怕的是不备份就动手:
先备份 config 目录。阅读进度、书签、用户、书库元数据全在 config 挂载目录里的 SQLite 数据库中。动手前停掉容器,把整个目录完整拷走。别想着手工去改数据库——微博上有个真实案例:有人让 AI 工具帮忙整理 Kavita 数据库,结果把整个库清空了。微博整目录备份才是唯一正解。
确认当前版本。后台设置页的关于信息、或 docker 启动日志里都能看到版本号,不是 0.9.0.2 及以后,就是受影响版本。
换镜像渠道再更新。kizaing 用户先改成官方渠道,然后 docker compose pull、up -d,一条命令的事。
起来后先验收:版本号对不对、阅读进度和书签还在不在;对公网暴露过、心里不踏实的,顺手把密码改掉,一分钟成本。

顺手的,还有今年最大的一次版本更新
别把 0.9.0.2 只当成补丁包:它基于的 v0.9.0 是 Kavita 今年最大的一次发布——阅读列表(Reading List)整套重做、支持 CBL v2 阅读顺序导入、终于支持批量下载,Mihon、Panels 这类第三方客户端的进度同步也开箱即用。GitHub再加上 0.8.9 带来的扫描速度大幅提升和全新统计页。这次升级既是把安全的门关上,也是把攒了小半年的新功能一次收齐。
官方说 CVE 细节会在稍后公开,编号 CVE-2026-47202 在 NVD 上已经能查到。在一个还没什么人讨论它的中文社区里,这篇内容值得你存下来,转给同样玩自托管的朋友。至于还没装 Kavita 的人——漏洞已修、版本正新,现在入坑反而是个干净的时间点。