fix(deps/site-finder): 53 advisory в backend/uv.lock — точечный апгрейд восьми пакетов #3207
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#3207
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/deps-sitefinder-backend-cve"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Прогнал все локи репозитория через OSV batch API (2026-08-29, 1878 пакет-версий). Уязвимые версии нашлись только в
backend/uv.lock. Корневой лок «Меры» (tradein-mvp/uv.lock— именно из него собирается её образ) чист: ноль находок.Измерение, а не оценка
OSV прогнан по локу до и после:
Что поднято
Image.paste/crop, вImageFilter.RankFilter, обходы decompression-bomb.Image.openу нас на внешнем входеrequest.form()pdfminer-sixTemplateLookup; вектор Windows-only, у нас Linux — взято попутноПочему точечный апгрейд, а не общий
Все спеки в
pyproject.tomlвида>=Xбез верхней границы. Общийuv lock --upgradeзатянул бы заодно мажоры (redis 7→8, numpy, и т.д.) — это отдельная работа с отдельной приёмкой. Здесь--upgrade-packageна 8 имён.Проверено диффом: из 138 пакетов изменились ровно эти 8. Прямые спеки в
pyproject.tomlне тронуты — файл не в диффе.Проверка совместимости
Локально после
uv sync --frozen:FastAPI 0.136.1 поднимается на starlette 1.6.0, роут отвечает. WeasyPrint на Windows не импортируется (нет GTK) — его гоняет CI на Linux, это и есть гейт для мажора 68→69.
Что осталось за кадром
fastapi.testclientна starlette 1.6 предупреждаетStarletteDeprecationWarning: Using httpx with starlette.testclient is deprecated; install httpx2 instead. Это ворнинг, не отказ; тесты проходят. Отдельная задача.Прогон всех локов через OSV batch API (2026-08-29) показал: уязвимые версии есть только в backend/uv.lock. Корневой лок «Меры» (tradein-mvp/uv.lock, из которого и собирается её образ) чист полностью — ноль находок. Было 8 пакетов / 53 advisory, стало 0. Проверено повторным прогоном OSV по получившемуся локу. pillow 12.2.0 -> 12.3.0 26 advisory, среди них heap OOB write в Image.paste/crop и ImageFilter.RankFilter; Image.open у нас на внешнем входе (загрузка фото) starlette 1.0.0 -> 1.6.0 10 advisory, в т.ч. обход лимитов request.form() cryptography 47.0.0 -> 50.0.1 7 advisory; транзитив pdfminer-six urllib3 2.6.3 -> 2.7.0 4 advisory; обход защиты от decompression-bomb weasyprint 68.1 -> 69.0 CSS injection via presentational hints idna 3.13 -> 3.19 2 advisory mako 1.3.11 -> 1.4.1 path traversal в TemplateLookup (Windows-only, у нас Linux — берём попутно) pydantic-settings 2.14.0 -> 2.15.0 1 advisory Апгрейд ТОЧЕЧНЫЙ (--upgrade-package на 8 имён), не общий --upgrade: спеки в pyproject все вида ">=" без верхней границы, и общий апгрейд затянул бы мажоры вроде redis 7->8 и numpy заодно. Диффом подтверждено: из 138 пакетов изменились ровно эти 8, прямые спеки в pyproject.toml не тронуты. Проверка совместимости локально: fastapi 0.136.1 поднимается на starlette 1.6.0, TestClient отвечает. weasyprint импортировать на Windows нельзя (нет GTK), его гоняет CI на Linux. NB: fastapi.testclient на starlette 1.6 предупреждает, что связка с httpx устарела в пользу httpx2 — это ворнинг, не отказ; отдельная задача.