fix: semgrep 1.157.0 dans un venv isole du job security et plancher pyjwt 2.13 BUG-091
CI / lint (push) Successful in 2m27s
CI / security (push) Failing after 2m21s
CI / test (push) Successful in 4m19s
CI / build (push) Successful in 2m31s
CI / e2e (push) Successful in 15m1s

This commit is contained in:
2026-09-28 21:54:12 -04:00
parent c72f852a55
commit d6d081c0e9
12 changed files with 56 additions and 29 deletions
+20 -7
View File
@@ -131,13 +131,24 @@ jobs:
python-version: "3.11"
- name: Install dependencies
# semgrep épinglé (BUG-091) : la série 1.175+ embarque des libs natives
# compilées pour x86-64-v2, refusées par le CPU du runner Gitea
# (« CPU ISA level is lower than required » → exit 127). 1.174.0 est la
# dernière version qui s'exécute sur ce runner.
# BUG-091 : semgrep vit dans un venv isolé, pour deux raisons.
# 1) CPU du runner : la dernière version publiée en wheel
# manylinux2014 (baseline x86-64 v1) est 1.157.0 ; la série 1.158+
# ne publie plus que manylinux_2_34/2_35, dont les libs natives
# exigent x86-64-v2 → « CPU ISA level is lower than required »
# (exit 127) au moindre appel.
# 2) Dépendances incompatibles avec l'env principal : semgrep 1.157.0
# fixe tomli~=2.0.1 (pip-audit 2.10+ exige >=2.2.1) et
# pyjwt~=2.12.0 (PYSEC-2026-178) — le plancher pyjwt>=2.13.0 de
# requirements.txt resterait insatisfaisable s'il était co-installé.
run: |
pip install bandit pip-audit semgrep==1.174.0
# setuptools récent : l'image de base peut embarquer une version
# couverte par un advisory fraîchement publié (PYSEC-2026-3447).
pip install -U pip setuptools
pip install bandit pip-audit
pip install -r backend/requirements.txt
python -m venv /tmp/semgrep-venv
/tmp/semgrep-venv/bin/pip install --quiet semgrep==1.157.0
- name: Bandit (SAST, bloquant — #87)
# B105 est exclu (aligné avec [tool.bandit] de pyproject.toml :
@@ -148,7 +159,8 @@ jobs:
- name: Semgrep (SAST local, bloquant — #87)
# Règles 100 % locales (semgrep-rules/, 8 règles) : aucun
# téléchargement de registre (runner au réseau fragile).
run: semgrep --config semgrep-rules/ backend/
# Venv isolé (BUG-091) : cf. l'étape « Install dependencies ».
run: /tmp/semgrep-venv/bin/semgrep --config semgrep-rules/ backend/
- name: Pip-audit (bloquant — #87)
# Bloquant depuis T6 (#87) : dépendances qualifiées (mistune 3.3.3,
@@ -157,7 +169,8 @@ jobs:
# Seule exception documentée : PYSEC-2026-1325 (ecdsa, Minerva) —
# aucun correctif upstream ET ObsiGate ne signe/vérifie qu'en HS256
# (backend/auth/jwt_handler.py), les chemins ECDSA P-256 ne
# s'exécutent jamais.
# s'exécutent jamais. PYSEC-2026-178 (pyjwt) est, lui, corrigé par le
# plancher pyjwt>=2.13.0 de backend/requirements.txt (BUG-091).
# NOTE runner Gitea Act (BUG-083) : aucun `#` dans le `run:`.
run: pip-audit --ignore-vuln PYSEC-2026-1325