fix(deps): 升级 starlette 0.46.1→0.47.2 修复 CVE-2025-54121

starlette < 0.47.2 在解析 multipart 表单的大文件时,SpooledTemporaryFile
从内存溢写到磁盘的 rollover 是在事件循环线程内同步执行的,攻击者可借大文件
上传阻塞事件循环造成拒绝服务(GHSA-2c2j-9gv5-cj73)。0.47.2 把 rollover
写入移到线程池(UploadFile.write 命中 _will_roll 时走 run_in_threadpool)。

由于 FastAPI 0.115.12 的约束为 starlette<0.47.0,同步升级 FastAPI
0.115.12→0.116.2(约束放宽至 starlette<0.48.0/<0.49.0),与现有
pydantic 2.11.2 / anyio 4.9.0 / python-multipart 0.0.20 均兼容。

验证:pip check 无冲突;2MB multipart 上传走 rollover 路径正常;
docker 整套栈在新框架下 boot 健康(sys_health backend/db ok)。

Closes #411
Refs GHSA-2c2j-9gv5-cj73

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
huangjianwu
2026-06-23 11:45:28 +08:00
parent 5380f4c412
commit 55946b82ec

View File

@@ -29,7 +29,7 @@ distro==1.9.0
dnspython==2.7.0
email_validator==2.2.0
exceptiongroup==1.2.2
fastapi==0.115.12
fastapi==0.116.2
fastapi-cli==0.0.7
faster-whisper==1.1.1
ffmpeg-python==0.2.0
@@ -102,7 +102,7 @@ shellingham==1.5.4
six==1.17.0
sniffio==1.3.1
soupsieve==2.7
starlette==0.46.1
starlette==0.47.2
sympy==1.13.1
SQLAlchemy==2.0.41
tenacity==9.1.2