Back to the catalog

claude-code-vulnerability-check

Detect CVE (Common Vulnerability Exposure) in PHP / JS project. Auto apply minor fixes and patch Alert on necessity of major update (prevent

Open source Repository Open in the app JSON README (API)

About

Detect CVE (Common Vulnerability Exposure) in PHP / JS project. Auto apply minor fixes and patch Alert on necessity of major update (prevent breaking changes)

Details

Kind
Plugins
Topic
Security & identity
Publisher
motchouk
Origin
marketplace
Category
ferramentas
Stars
1
Last push
2026-04-16T09:08:58Z
Repository state
ativo
Language
Python
License
GPL-3.0
Added
2026-08-30 01:48:58
Updated
2026-08-30 01:48:58
Origin id
motchouk/claude-skill-security-check/claude-code-vulnerability-check

README

# claude-skill-security-check

Skill [Claude Code](https://claude.com/product/claude-code) pour auditer les dépendances d'un projet contre les CVE publiques et appliquer les correctifs sûrs en un clic.

Inspiré des recommandations Anthropic sur la [préparation aux attaques accélérées par IA](https://claude.com/blog/preparing-your-security-program-for-ai-accelerated-offense) : fermer le patch gap, prioriser les CVE activement exploitées (CISA KEV), automatiser le triage.

## Ce que fait le skill

Quand tu tapes `/security-check` dans Claude Code depuis un projet :

1. **Détection auto** des lock files : `composer.lock`, `package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`
2. **Scan** des paquets installés contre [OSV.dev](https://osv.dev/) (base unifiée qui agrège GHSA, Packagist, npm, PyPI, etc.)
3. **Cross-check** des CVE remontées avec le catalogue [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) pour flagger celles qui sont exploitées dans la nature
4. **Résolution sémantique** : pour chaque vulnérabilité, identifie la plus petite version corrigée dans la bonne branche semver (ex : 7.1.11 → 7.3.7, pas 5.4.50)
5. **Classification** du bump requis : `patch` / `minor` / `major` / `pas de correctif`
6. **Rapport markdown** trié par sévérité, avec indicateur 🔥 sur les CVE exploitées
7. **Application automatique** (si `--apply`) des bumps patch et minor via `composer update` ou `npm update`, après confirmation. **Les majors restent toujours manuels** pour éviter les risque de breaking change et/ou de dépendances incompatibles.

## Installation

### Rapide (recommandée)

```bash
git clone https://github.com/Motchouk/claude-skill-security-check.git
cd claude-skill-security-check
./install.sh              # niveau utilisateur → ~/.claude/skills/security-check/
```

Après redémarrage Claude Code (ou recharge de la session).

### Options d'installation

```bash
./install.sh --project    # Installer dans le projet courant (./.claude/skills/)
./install.sh --force      # Écraser une install existante sans prompt
./install.sh --uninstall  # Supprimer l'installation (user + project)
```

### Installation manuelle

```bash
# Niveau utilisateur
mkdir -p ~/.claude/skills/security-check
cp -R skills/security-check/* ~/.claude/skills/security-check/

# Ou niveau projet
mkdir -p .claude/skills/security-check
cp -R skills/security-check/* .claude/skills/security-check/
```

### Prérequis

- **Python 3.8+** — uniquement la stdlib, aucun `pip install` requis
- **Claude Code** (desktop, CLI ou IDE extension)
- Accès réseau vers `api.osv.dev` et `www.cisa.gov`
- Pour `--apply` : `composer` et/ou `npm`/`yarn`/`pnpm` disponibles localement ou via `make exec`

## Usage

```
/security-check                       # Rapport seul (dry-run)
/security-check --severity HIGH       # Filtre: HIGH + CRITICAL uniquement
/security-check --apply               # Applique les bumps patch/minor après confirmation
```

### Exemple de sortie

```
# Rapport sécurité — 2026-04-16

> 203 paquets scannés dans Packagist.
> 3 vulnérabilités détectées : 0 patch, 2 minor, 1 major, 0 sans correctif.
> 0 exploitées activement (CISA KEV).

## Actions recommandées

### À appliquer automatiquement (patch + minor)

| Sévérité | Paquet | Actuelle → Corrigée | Bump | KEV | CVE |
|---|---|---|---|---|---|
| **HIGH** | `aws/aws-sdk-php` | 3.369.24 → 3.371.4 | minor |  | [GHSA-27qh-8cxx-2cr5](...) |
| **HIGH** | `symfony/http-foundation` | 7.1.11 → 7.3.7 | minor |  | [CVE-2025-64500](...) |

### À revoir manuellement (major bumps / pas de correctif)

| Sévérité | Paquet | Actuelle → Corrigée | Raison | Détails |
|---|---|---|---|---|
| **HIGH** | `phpoffice/phpspreadsheet` | 4.5.0 → 5.0.0 | breaking changes probables | [CVE-2025-54370](...) |
```

## Architecture

```
claude-skill-security-check/
├── .claude-plugin/
│   └── plugin.json                 # Manifest plugin Claude Code
├── skills/
│   └── security-check/
│       ├── SKILL.md                # Procédure suivie par Claude
│       └── scripts/
│           ├── scan.py             # Orchestrateur (sortie JSON)
│           ├── parsers.py          # composer.lock + package-lock/yarn/pnpm
│           └── sources.py          # Clients OSV.dev + CISA KEV
├── install.sh                      # Installeur
├── CHANGELOG.md
├── LICENSE                         # GPL-3.0
└── README.md
```

**Zéro dépendance externe** : tout tient dans la stdlib Python 3.8+.

## Sources de vulnérabilités

| Source | Rôle | Pourquoi ce choix |
|---|---|---|
| [OSV.dev](https://osv.dev/) | Détection des CVE | Base unifiée multi-écosystèmes (GHSA + Packagist + npm + …), API batch sans auth |
| [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) | Priorisation | Catalogue officiel des CVE exploitées dans la nature, mis à jour quotidiennement |

Le catalogue KEV est mis en cache 24 h dans `/tmp/security-check-cache/` pour éviter les requêtes répétées. Override possible via `SECURITY_CHECK_CACHE_DIR`.

## Limites connues

- **CVE fraîches** : les advisories publiées il y a moins de 24 h peuvent ne pas être encore indexées dans OSV.
- **Contraintes strictes** : si `composer.json` / `package.json` bloque un bump (ex. `"^5.0"` pour une version corrigée en 6.x), il faut assouplir la contrainte à la main. Le skill le signale mais ne modifie pas ces fichiers.
- **Majors non appliqués** : choix volontaire pour éviter les breaking changes.
- **Hors scope** : images Docker, extensions PHP natives, paquets système. Utiliser [Trivy](https://trivy.dev/) ou [Grype](https://github.com/anchore/grype) en complément.

## Portabilité

Le skill fonctionne sur les type de projets suivants :

- **Backend PHP** (Composer)
- **Frontend JS** (npm/yarn/pnpm seul)
- **Fullstack** (PHP + JS dans le même répository) — agrégé dans un seul rapport
- **Projet en conteneur Docker** (ex. Symfony + FrankenPHP) — détecte automatiquement `make exec` si disponible

## Contribuer

Les issues et PR sont bienvenues :

- Nouveaux écosystèmes (PyPI, RubyGems, Cargo, Go modules) — OSV.dev les supporte déjà, il faut ajouter un parser dédié
- Export du rapport (JSON, SARIF, HTML)
- Intégration CI (GitHub Actions, GitLab CI)

## Confidentialité

Le skill n'envoie aucune donnée personnelle : uniquement des couples `(nom_paquet, version)` à OSV.dev et une requête GET publique à CISA KEV. Détails dans [PRIVACY.md](PRIVACY.md).

## Licence

[GPL-3.0](LICENSE)

## Crédits

- Sources de données : [OSV.dev](https://osv.dev/) (Google), [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog)
- Inspiration : Anthropic, *[Preparing your security program for AI-accelerated offense](https://claude.com/blog/preparing-your-security-program-for-ai-accelerated-offense)*

More