Aller au contenu

GET /v1/cves

Accès programmatique à la base de vulnérabilités de TechWatchAlert : recherche multicritères et fiche complète (CVSS, EPSS, KEV, PoC, produits affectés). Données publiques — aucun projet requis.

GET /api/v1/cves
Authorization: Bearer twa_votre_cle_ici
Paramètre Type Description
q string Recherche dans l’ID, la description, le vendor ou le produit
severity string Filtre, virgule-séparé : CRITICAL,HIGH,MEDIUM,LOW
is_kev boolean true = uniquement les CVE du catalogue KEV de la CISA
has_poc boolean true = uniquement les CVE avec exploit public connu
has_workaround boolean true = uniquement les CVE avec un contournement ou une atténuation connu (mesures provisoires) ; false = sans
vendor string Filtre par éditeur — cherché dans toutes les entrées affected
product string Filtre par produit — cherché dans toutes les entrées affected
match string partial (défaut) ou exact pour vendor/product. exact ignore casse et séparateurs
updated_since string Date ISO 8601 : ne rend que les CVE modifiées depuis
include string affected pour joindre les intervalles de versions à la liste
page integer Page (défaut 1)
page_size integer Taille de page, max 100 (défaut 20)
{
"items": [
{
"cve_id": "CVE-2024-3094",
"severity": "CRITICAL",
"cvss_score": 10.0,
"epss_score": 0.9412,
"is_kev": true,
"has_poc": true,
"maturite_exploit": "exploitee",
"contournement_disponible": false,
"vendor": "xz",
"product": "xz-utils",
"date_published": "2024-03-29T00:00:00Z"
}
],
"total": 1,
"page": 1,
"page_size": 20
}
Champ Type Description
cve_id string Identifiant CVE
severity string CRITICAL, HIGH, MEDIUM, LOW, NONE, UNKNOWN
cvss_score number | null Score CVSS (0–10)
epss_score number | null Probabilité d’exploitation EPSS (0–1)
is_kev boolean Présent dans le catalogue KEV de la CISA
has_poc boolean Exploit / preuve de concept public connu (GitHub, Exploit-DB, Metasploit ou Nuclei)
maturite_exploit string | null Maturité de l’exploit, voir ci-dessous
contournement_disponible boolean Un contournement ou une atténuation de l’éditeur ou d’un CERT est connu ; le détail est dans mesures_provisoires de la fiche
vendor string | null Éditeur principal
product string | null Produit principal
date_published string (ISO 8601) | null Date de publication
affected array | null Présent uniquement avec include=affected — mêmes champs que sur la fiche

maturite_exploit résume, du plus grave au moins grave, ce que l’on sait de l’exploitation :

Valeur Signification
exploitee Exploitation avérée : catalogue KEV de la CISA, KEV de VulnCheck, EUVD de l’ENISA ou CERT-FR
outillee Exploit outillé : un module Metasploit ou un modèle de détection Nuclei existe ; l’attaque est à la portée de tous, sans écrire de code
poc Preuve de concept publique seulement : dépôt GitHub (recensé par nomi-sec/PoC-in-GitHub) ou exploit d’Exploit-DB
null Rien de connu

Les sources sont relues chaque jour. Seuls l’identifiant, le titre, l’adresse, la date et le type de chaque exploit sont conservés, jamais leurs auteurs.

Code Détail Cause
422 updated_since doit etre une date ISO 8601 updated_since illisible
422 string_pattern_mismatch match vaut autre chose que partial ou exact
422 less_than_equal page_size dépasse 100
GET /api/v1/cves/{cve_id}
Authorization: Bearer twa_votre_cle_ici
Paramètre Type Description
cve_id string Identifiant CVE (ex. CVE-2024-3094)

En plus des champs de l’item de recherche :

Champ Type Description
description string | null Description en anglais
cvss_vector string | null Vecteur CVSS
epss_percentile number | null Percentile EPSS (0–1)
cwe_ids array | null Identifiants CWE associés
poc_count integer Nombre de PoC et d’exploits publics recensés, toutes sources
date_updated string (ISO 8601) | null Dernière mise à jour
affected array Produits affectés
mesures_provisoires array Contournements, atténuations et absence annoncée de correctif, voir ci-dessous

Chaque entrée de affected : vendor, product, version_from, version_to, version_status, cpe.

Ce que l’éditeur ou un CERT propose en attendant (ou à défaut) d’un correctif, une entrée par avis et par catégorie :

Champ Type Description
categorie string workaround (contournement), mitigation (atténuation), none_available (pas de correctif disponible), no_fix_planned (aucun correctif prévu)
source string certfr, csaf-cisa, csaf-ncsc-nl, csaf-siemens
reference string Identifiant de l’avis (CERTFR-2026-ALE-005, ICSA-26-274-02, SSA-330084)
texte string | null Texte de la mesure, court ; null quand la licence de la source ne permet que la catégorie et le lien
url string | null Avis original
date string (ISO 8601) | null Date de mise à jour de l’avis
produits array Produits concernés, quand l’avis les nomme
republication string | null Éditeur d’origine d’un avis republié par la CISA (ABB, Hitachi Energy…)
lien_seulement boolean true : catégorie et lien seulement, le texte reste chez l’éditeur
attribution string Mention de la source à reproduire avec la donnée
Code Détail Cause
404 CVE introuvable cve_id inexistant en base

CVE critiques avec PoC public, paginées

Fenêtre de terminal
curl -s \
-H "Authorization: Bearer twa_votre_cle_ici" \
"https://app.techwatchalert.com/api/v1/cves?severity=CRITICAL&has_poc=true&page=1&page_size=50" \
| jq '.items[] | {cve: .cve_id, cvss: .cvss_score, epss: .epss_score}'

Fiche complète d’une CVE

Fenêtre de terminal
curl -s \
-H "Authorization: Bearer twa_votre_cle_ici" \
https://app.techwatchalert.com/api/v1/cves/CVE-2024-3094 \
| jq '{cve: .cve_id, kev: .is_kev, affected: [.affected[].product]}'

Les données renvoyées par cette route viennent de sources publiques : le programme CVE® (MITRE), le catalogue KEV de la CISA, VulnCheck KEV, l’EUVD de l’ENISA, le CERT-FR, l’EPSS de FIRST, et les bases de preuves de concept et d’exploits (PoC-in-GitHub, Exploit Database, Metasploit Framework, nuclei-templates). Elles gardent la licence de leur source, et les mentions d’attribution que ces licences demandent s’appliquent aussi à l’usage que vous en faites.

Les avis Ubuntu (Ubuntu Security Notices, sous licence CC BY-SA 4.0) sont affichés dans l’application mais ne sont pas renvoyés par l’API.

La liste des sources, leur licence, les mentions à reproduire et les notices de licence sont sur la page Sources et licences.