fix: semgrep 1.157.0 dans un venv isole du job security et plancher pyjwt 2.13 BUG-091
This commit is contained in:
+20
-7
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user