doc-locale/fr-fr/api/vulnerabilities.md
{{< details >}}
{{< /details >}}
{{< history >}}
last_edited_at obsolète dans GitLab 16.7.start_date obsolète dans GitLab 16.7.updated_by_id obsolète dans GitLab 16.7.last_edited_by_id obsolète dans GitLab 16.7.due_date obsolète dans GitLab 16.7.{{< /history >}}
[!note] L'ancienne API Vulnerabilities a été renommée en API Vulnerability Findings et sa documentation a été déplacée vers un autre emplacement. Ce document décrit désormais la nouvelle API Vulnerabilities qui permet d'accéder aux Vulnerabilities.
Chaque appel d'API REST aux vulnérabilités doit être authentifié.
Si un utilisateur authentifié n'est pas autorisé à consulter le rapport de vulnérabilité, cette requête renvoie un code de statut 403 Forbidden.
[!warning] Cette API est en cours d'obsolescence et est considérée comme instable. Le contenu de la réponse peut être modifié ou rompu d'une release GitLab à l'autre. Utilisez plutôt l'API GraphQL. Pour plus d'informations, consultez les exemples GraphQL.
Récupère une vulnérabilité spécifiée.
GET /vulnerabilities/:id
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
id | entier ou chaîne | oui | L'ID d'une Vulnerability à récupérer |
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/vulnerabilities/1"
Exemple de réponse :
{
"id": 1,
"title": "Predictable pseudorandom number generator",
"description": null,
"state": "opened",
"severity": "medium",
"confidence": "medium",
"report_type": "sast",
"project": {
"id": 32,
"name": "security-reports",
"full_path": "/gitlab-examples/security/security-reports",
"full_name": "gitlab-examples / security / security-reports"
},
"author_id": 1,
"closed_by_id": null,
"created_at": "2019-10-13T15:08:40.219Z",
"updated_at": "2019-10-13T15:09:40.382Z",
"closed_at": null
}
Confirme une vulnérabilité spécifiée. Renvoie le code de statut 304 si la vulnérabilité est déjà confirmée.
Si un utilisateur authentifié n'est pas autorisé à modifier le statut de la vulnérabilité, cette requête génère un code de statut 403.
POST /vulnerabilities/:id/confirm
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
id | entier ou chaîne | oui | L'ID d'une vulnérabilité à confirmer |
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/vulnerabilities/5/confirm"
Exemple de réponse :
{
"id": 2,
"title": "Predictable pseudorandom number generator",
"description": null,
"state": "confirmed",
"severity": "medium",
"confidence": "medium",
"report_type": "sast",
"project": {
"id": 32,
"name": "security-reports",
"full_path": "/gitlab-examples/security/security-reports",
"full_name": "gitlab-examples / security / security-reports"
},
"author_id": 1,
"closed_by_id": null,
"created_at": "2019-10-13T15:08:40.219Z",
"updated_at": "2019-10-13T15:09:40.382Z",
"closed_at": null
}
Résout une vulnérabilité spécifiée. Renvoie le code de statut 304 si la vulnérabilité est déjà résolue.
Si un utilisateur authentifié n'est pas autorisé à modifier le statut de la vulnérabilité, cette requête génère un code de statut 403.
POST /vulnerabilities/:id/resolve
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
id | entier ou chaîne | oui | L'ID d'une Vulnerability à résoudre |
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/vulnerabilities/5/resolve"
Exemple de réponse :
{
"id": 2,
"title": "Predictable pseudorandom number generator",
"description": null,
"state": "resolved",
"severity": "medium",
"confidence": "medium",
"report_type": "sast",
"project": {
"id": 32,
"name": "security-reports",
"full_path": "/gitlab-examples/security/security-reports",
"full_name": "gitlab-examples / security / security-reports"
},
"author_id": 1,
"closed_by_id": null,
"created_at": "2019-10-13T15:08:40.219Z",
"updated_at": "2019-10-13T15:09:40.382Z",
"closed_at": null
}
Rejette une vulnérabilité spécifiée. Renvoie le code de statut 304 si la vulnérabilité est déjà rejetée.
Si un utilisateur authentifié n'est pas autorisé à modifier le statut de la vulnérabilité, cette requête génère un code de statut 403.
POST /vulnerabilities/:id/dismiss
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
id | entier ou chaîne | oui | L'ID d'une vulnérabilité à rejeter |
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/vulnerabilities/5/dismiss"
Exemple de réponse :
{
"id": 2,
"title": "Predictable pseudorandom number generator",
"description": null,
"state": "closed",
"severity": "medium",
"confidence": "medium",
"report_type": "sast",
"project": {
"id": 32,
"name": "security-reports",
"full_path": "/gitlab-examples/security/security-reports",
"full_name": "gitlab-examples / security / security-reports"
},
"author_id": 1,
"closed_by_id": null,
"created_at": "2019-10-13T15:08:40.219Z",
"updated_at": "2019-10-13T15:09:40.382Z",
"closed_at": null
}
Rétablit une vulnérabilité spécifiée à l'état détecté. Renvoie le code de statut 304 si la vulnérabilité est déjà dans l'état détecté.
Si un utilisateur authentifié n'est pas autorisé à modifier le statut de la vulnérabilité, cette requête génère un code de statut 403.
POST /vulnerabilities/:id/revert
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
id | entier ou chaîne | oui | L'ID d'une vulnérabilité à rétablir à l'état détecté |
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/vulnerabilities/5/revert"
Exemple de réponse :
{
"id": 2,
"title": "Predictable pseudorandom number generator",
"description": null,
"state": "detected",
"severity": "medium",
"confidence": "medium",
"report_type": "sast",
"project": {
"id": 32,
"name": "security-reports",
"full_path": "/gitlab-examples/security/security-reports",
"full_name": "gitlab-examples / security / security-reports"
},
"author_id": 1,
"closed_by_id": null,
"created_at": "2019-10-13T15:08:40.219Z",
"updated_at": "2019-10-13T15:09:40.382Z",
"closed_at": null
}
Pour vous préparer à la prochaine obsolescence du point de terminaison de l'API REST Vulnerability, utilisez les exemples ci-dessous pour effectuer les opérations équivalentes avec l'API GraphQL.
Utilisez Query.vulnerability.
{
vulnerability(id: "gid://gitlab/Vulnerability/20345379") {
title
description
state
severity
reportType
project {
id
name
fullPath
}
detectedAt
confirmedAt
resolvedAt
resolvedBy {
id
username
}
}
}
Exemple de réponse :
{
"data": {
"vulnerability": {
"title": "Improper Input Validation in railties",
"description": "A remote code execution vulnerability in development mode Rails beta3 can allow an attacker to guess the automatically generated development mode secret token. This secret token can be used in combination with other Rails internals to escalate to a remote code execution exploit.",
"state": "RESOLVED",
"severity": "CRITICAL",
"reportType": "DEPENDENCY_SCANNING",
"project": {
"id": "gid://gitlab/Project/6102100",
"name": "security-reports",
"fullPath": "gitlab-examples/security/security-reports"
},
"detectedAt": "2021-10-14T03:13:41Z",
"confirmedAt": "2021-12-14T01:45:56Z",
"resolvedAt": "2021-12-14T01:45:59Z",
"resolvedBy": {
"id": "gid://gitlab/User/480804",
"username": "thiagocsf"
}
}
}
}
Utilisez Mutation.vulnerabilityConfirm.
mutation {
vulnerabilityConfirm(input: { id: "gid://gitlab/Vulnerability/23577695"}) {
vulnerability {
state
}
errors
}
}
Exemple de réponse :
{
"data": {
"vulnerabilityConfirm": {
"vulnerability": {
"state": "CONFIRMED"
},
"errors": []
}
}
}
Utilisez Mutation.vulnerabilityResolve.
mutation {
vulnerabilityResolve(input: { id: "gid://gitlab/Vulnerability/23577695"}) {
vulnerability {
state
}
errors
}
}
Exemple de réponse :
{
"data": {
"vulnerabilityConfirm": {
"vulnerability": {
"state": "RESOLVED"
},
"errors": []
}
}
}
Utilisez Mutation.vulnerabilityDismiss.
mutation {
vulnerabilityDismiss(input: { id: "gid://gitlab/Vulnerability/23577695"}) {
vulnerability {
state
}
errors
}
}
Exemple de réponse :
{
"data": {
"vulnerabilityConfirm": {
"vulnerability": {
"state": "DISMISSED"
},
"errors": []
}
}
}
Utilisez Mutation.vulnerabilityRevertToDetected.
mutation {
vulnerabilityRevertToDetected(input: { id: "gid://gitlab/Vulnerability/20345379"}) {
vulnerability {
state
}
errors
}
}
Exemple de réponse :
{
"data": {
"vulnerabilityConfirm": {
"vulnerability": {
"state": "DETECTED"
},
"errors": []
}
}
}