BUG-108 — closeContextMenu() retirait le nœud du menu AVANT de déférencer _menu : le retrait émet focusout en synchrone (le menu tient le focus), qui rappelle closeContextMenu() ; le second remove() sur un nœud démonté lève NotFoundError et avorte le handler de l'action « Coller » du viewer — le coller par menu contextuel était silencieusement mort (régression de la fermeture au focus #179, reproduite par l'E2E « coller une plage », CI #850→#854). Déférencement avant retrait. Sécurité CI (job security, run #853) : - plancher multidict>=6.9.1 (CVE-2026-104874 ; 6.7.x préinstallée dans la toolcache de l'image du runner, même piège « already satisfied » que pypdf BUG-093) + entrée dans le garde-fou TestDependencySecurityFloors ; - exception documentée CVE-2026-85394 (python-jose, AUCUN correctif upstream) : non atteignable ici, jwt.decode passe toujours algorithms=["HS256"] avec un secret symétrique serveur — jamais de clé publique comme clé HMAC. Vérifié : E2E -g « coller une plage » 1/1 ; xlsx-menus 11/11, xlsx-formula 14/14, ai 100/100, ai-quick-actions 13/13 ; pytest 1586 passés ; ruff/mypy 0 erreur ; ISSUES_TODOLIST + CHANGELOG à jour.
47 lines
1.5 KiB
Plaintext
47 lines
1.5 KiB
Plaintext
fastapi==0.141.1
|
|
uvicorn==0.54.0
|
|
websockets>=12.0
|
|
python-frontmatter==1.1.0
|
|
mistune==3.3.3
|
|
python-multipart==0.0.31
|
|
aiofiles==23.2.1
|
|
aiohttp>=3.9.0
|
|
watchdog>=4.0.0
|
|
argon2-cffi>=23.1.0
|
|
python-jose>=3.3.0
|
|
sortedcontainers>=2.4.0
|
|
snowballstemmer>=2.2.0
|
|
weasyprint>=70.0
|
|
httpx>=0.27.0
|
|
# Plancher de sécurité (BUG-093) : 6.16.0 est vulnérable à deux DoS de
|
|
# ressources (PYSEC-2026-3910 outlines, PYSEC-2026-3911 XForm, fix 6.16.1),
|
|
# atteignables via backend/pdf_reader.py (PDF fournis par l'utilisateur).
|
|
# Le plancher doit être >= 6.16.1 : l'image Act du runner embarque 6.16.0
|
|
# dans sa toolcache Python, donc un plancher trop bas est « already satisfied »
|
|
# et n'est jamais mis à niveau.
|
|
pypdf>=6.16.1
|
|
pyotp>=2.10.0
|
|
segno>=1.5.0
|
|
webauthn==2.6.0
|
|
psutil>=5.9
|
|
pywebpush>=2.3.0
|
|
mcp==1.28.1
|
|
# Plancher de sécurité (BUG-091, BUG-095) : pyjwt est une dépendance transitive
|
|
# (mcp). 2.12.x → PYSEC-2026-178 (fix 2.13.0) ; 2.13.0 → CVE-2026-102274
|
|
# (fix 2.14.0). pip-audit étant bloquant, on reste au-dessus du dernier correctif.
|
|
pyjwt[crypto]>=2.14.0
|
|
sse-starlette==2.1.3
|
|
openpyxl>=3.1
|
|
xlrd==2.0.2
|
|
odfpy==1.4.1
|
|
python-docx>=1.1
|
|
reportlab>=4.0
|
|
pillow>=10.0
|
|
# Plancher urllib3 >= 2.8.0 (CVE-2026-97687, CVE-2026-97688, CVE-2026-97689)
|
|
urllib3>=2.8.0
|
|
# Plancher de sécurité (CVE-2026-104874, fix 6.9.1) : multidict est transitive
|
|
# (aiohttp/yarl). 6.7.x est la version pré-installée dans la toolcache de
|
|
# l'image du runner — sans plancher, pip répond « already satisfied » et
|
|
# n'aligne jamais (même piège que pypdf, BUG-093).
|
|
multidict>=6.9.1
|