Nettoyer Bearer Token exemple dans docs/api-contract-prices.md (faux positif Defenseur) #181

Closed
opened 2026-05-01 01:39:33 +00:00 by maximus · 0 comments
Owner

Source

Defenseur run du 2026-04-30 (defenseur-simpl-resultat,
check secrets).

Finding

Severite Categorie Location
HIGH secrets docs/api-contract-prices.md:471

Pattern detecte : Bearer Token (Authorization: Bearer eyJhbGciOiJFZERTQSI...).

Analyse

C'est un exemple de doc API tronque (... final), pas un secret reel.
Aucune fuite de token, mais le pattern Defenseur match parce que le placeholder
JWT est suffisamment long pour passer le seuil d'entropie.

Solution proposee

Remplacer la chaine par un placeholder explicite :

- Authorization: Bearer eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9...
+ Authorization: Bearer <license-token>

Note connexe (autre faux positif, issue separee cote agent-defenseurs)

Le meme run a aussi flag src/services/balance.service.ts:1332 :

auth: "balance.priceFetching.errors.authFailed",

C'est une cle i18n, pas un secret. Le pattern Generic Token Assignment
((?:token|secret|password|api_key|apikey|auth)\s*[=:]\s*["'][a-zA-Z0-9_\-/.+=]{20,}["'])
match l'identifiant auth: + une string >= 20 chars. Une issue distincte est
ouverte sur agent-defenseurs pour durcir cette regex. Pas d'action ici.

Acceptance criteria

  • La ligne 471 de docs/api-contract-prices.md ne contient plus de chaine
    ressemblant a un JWT (replacer par <license-token> ou similaire)
  • Le prochain run defenseur-simpl-resultat ne contient plus le finding
    defenseur-simpl-resultat-secrets-pattern-bearer-token-docs-api-contract-prices-md
## Source Defenseur run du 2026-04-30 (`defenseur-simpl-resultat`, check `secrets`). ## Finding | Severite | Categorie | Location | |---|---|---| | HIGH | secrets | `docs/api-contract-prices.md:471` | Pattern detecte : `Bearer Token` (`Authorization: Bearer eyJhbGciOiJFZERTQSI...`). ## Analyse C'est un **exemple de doc API tronque** (`...` final), pas un secret reel. Aucune fuite de token, mais le pattern Defenseur match parce que le placeholder JWT est suffisamment long pour passer le seuil d'entropie. ## Solution proposee Remplacer la chaine par un placeholder explicite : ```diff - Authorization: Bearer eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9... + Authorization: Bearer <license-token> ``` ## Note connexe (autre faux positif, **issue separee** cote agent-defenseurs) Le meme run a aussi flag `src/services/balance.service.ts:1332` : ```ts auth: "balance.priceFetching.errors.authFailed", ``` C'est une **cle i18n**, pas un secret. Le pattern `Generic Token Assignment` (`(?:token|secret|password|api_key|apikey|auth)\s*[=:]\s*["'][a-zA-Z0-9_\-/.+=]{20,}["']`) match l'identifiant `auth:` + une string >= 20 chars. Une issue distincte est ouverte sur `agent-defenseurs` pour durcir cette regex. Pas d'action ici. ## Acceptance criteria - [ ] La ligne 471 de `docs/api-contract-prices.md` ne contient plus de chaine ressemblant a un JWT (replacer par `<license-token>` ou similaire) - [ ] Le prochain run `defenseur-simpl-resultat` ne contient plus le finding `defenseur-simpl-resultat-secrets-pattern-bearer-token-docs-api-contract-prices-md`
maximus added the
status:ready
type:security
source:defenseur
labels 2026-05-01 01:39:33 +00:00
maximus added
status:in-progress
and removed
status:ready
labels 2026-05-02 20:05:49 +00:00
maximus added
status:approved
and removed
status:in-progress
labels 2026-05-02 20:07:50 +00:00
Sign in to join this conversation.
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: maximus/Simpl-Resultat#181
No description provided.