fix(constraints): pisos de CVE — jinja2, python-multipart, sentry-sdk [TMF9-69150] #97

Merged
tarcisio merged 2 commits from fix/TMF9-69150-constraints-pisos-cve into develop 2026-10-09 23:45:20 -03:00
Owner

O que

Pisos de CVE no constraints/frota.txt. Origem: pip-audit do reusable-trivy-scan no tmf9 (TMF9-69150). Decisão de frota, pelo Lineu.

Lib Piso Fonte
jinja2 >=3.1.6,<4 PYSEC-2026-1471, PYSEC-2026-1472, PYSEC-2026-1475
python-multipart >=0.0.32 PYSEC-2026-3040
sentry-sdk >=1.45.1 PYSEC-2026-1917

Desvio do pedido: sem <2 no sentry-sdk

O pedido era sentry-sdk>=1.45.1,<2. Medido nos uv.lock da develop: DANI 2.66, fina 2.63, helpcor 2.63, Priceshow 2.58 e tmf-management 2.69 já estão na 2.x. O teto rebaixaria os cinco, então ficou só o piso. A 2.x é alvo separado.

Efeito no CI (provado em tmf-ci-python:3.12, uv 0.11.26)

Projeto com jinja2==3.1.4 + constraint jinja2>=3.1.6,<4:

  • uv lock --check: passa. A constraint não age no gate.
  • uv sync --frozen: passa. O lock manda.
  • pip install jinja2==3.1.4: falha (ResolutionImpossible). Só o modo pip legado é afetado.

Todo produto Python medido tem uv.lock no backend, então nenhum CI de produto quebra. O piso é uma declaração da frota; quem está abaixo sobe o próprio lock.

Quem está abaixo (develop, 09/10)

Produto Arquivo Lib Versão
tmf9 backend/uv.lock jinja2 3.1.4
tmf9 backend/uv.lock python-multipart 0.0.30
tmf9 backend/uv.lock sentry-sdk 1.40.0
tmf9 backend/requirements*.txt jinja2 ==3.1.4
tmf9 scripts/mcp-hub, scripts/mcp-tmf9 (uv.lock) python-multipart 0.0.22
tmf-management backend/uv.lock python-multipart 0.0.31
fina backend/uv.lock python-multipart 0.0.31

Os demais (DANI, helpcor, Priceshow, tmf-video, tmf-management/mcp-hub) já estão no piso ou acima.

🤖 Generated with Claude Code

https://claude.ai/code/session_01ES1xwVdpQV69zEsuLLKzx2

## O que Pisos de CVE no `constraints/frota.txt`. Origem: pip-audit do `reusable-trivy-scan` no tmf9 (**TMF9-69150**). Decisão de frota, pelo Lineu. | Lib | Piso | Fonte | |---|---|---| | jinja2 | `>=3.1.6,<4` | PYSEC-2026-1471, PYSEC-2026-1472, PYSEC-2026-1475 | | python-multipart | `>=0.0.32` | PYSEC-2026-3040 | | sentry-sdk | `>=1.45.1` | PYSEC-2026-1917 | ## Desvio do pedido: sem `<2` no sentry-sdk O pedido era `sentry-sdk>=1.45.1,<2`. Medido nos `uv.lock` da develop: **DANI 2.66, fina 2.63, helpcor 2.63, Priceshow 2.58 e tmf-management 2.69 já estão na 2.x**. O teto rebaixaria os cinco, então ficou só o piso. A 2.x é alvo separado. ## Efeito no CI (provado em `tmf-ci-python:3.12`, uv 0.11.26) Projeto com `jinja2==3.1.4` + constraint `jinja2>=3.1.6,<4`: - `uv lock --check`: passa. A constraint não age no gate. - `uv sync --frozen`: passa. O lock manda. - `pip install jinja2==3.1.4`: **falha** (`ResolutionImpossible`). Só o modo pip legado é afetado. Todo produto Python medido tem `uv.lock` no backend, então **nenhum CI de produto quebra**. O piso é uma declaração da frota; quem está abaixo sobe o próprio lock. ## Quem está abaixo (develop, 09/10) | Produto | Arquivo | Lib | Versão | |---|---|---|---| | tmf9 | backend/uv.lock | jinja2 | 3.1.4 | | tmf9 | backend/uv.lock | python-multipart | 0.0.30 | | tmf9 | backend/uv.lock | sentry-sdk | 1.40.0 | | tmf9 | backend/requirements*.txt | jinja2 | ==3.1.4 | | tmf9 | scripts/mcp-hub, scripts/mcp-tmf9 (uv.lock) | python-multipart | 0.0.22 | | tmf-management | backend/uv.lock | python-multipart | 0.0.31 | | fina | backend/uv.lock | python-multipart | 0.0.31 | Os demais (DANI, helpcor, Priceshow, tmf-video, tmf-management/mcp-hub) já estão no piso ou acima. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01ES1xwVdpQV69zEsuLLKzx2
fix(constraints): pisos de CVE para jinja2, python-multipart e sentry-sdk [TMF9-69150]
Some checks failed
PR checks (ci-shared) / testes (pull_request) Has been cancelled
67bf064c92
Achado do pip-audit do reusable-trivy-scan no tmf9: três libs com CVE que tem
correção. Pisos na constraint da frota: jinja2>=3.1.6,<4 (PYSEC-2026-1471/1472/
1475), python-multipart>=0.0.32 (PYSEC-2026-3040), sentry-sdk>=1.45.1
(PYSEC-2026-1917). Sem teto <2 no sentry: 5 produtos já estão na 2.x.

Provado em tmf-ci-python:3.12 (uv 0.11.26): uv lock --check e uv sync --frozen
ignoram UV_CONSTRAINT; pip install com pin abaixo do piso falha. Todo produto
medido tem uv.lock no backend, então nenhum CI quebra; quem está abaixo sobe o
lock.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ES1xwVdpQV69zEsuLLKzx2
docs(constraints): cabeçalho diz o alcance — uv com lock ignora a lista; só pip legado é barrado [TMF9-69150]
All checks were successful
PR checks (ci-shared) / testes (pull_request) Successful in 3m45s
a79c43a450
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ES1xwVdpQV69zEsuLLKzx2
tarcisio merged commit c9e9078bbd into develop 2026-10-09 23:45:20 -03:00
tarcisio deleted branch fix/TMF9-69150-constraints-pisos-cve 2026-10-09 23:45:20 -03:00
Sign in to join this conversation.
No reviewers
No labels
seguranca
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
TMF/ci-shared!97
No description provided.