Vulnerability Analysis Details REST API
Vulnerability Analysis Details REST API
This experimental Vulnerability Analysis Details API allows you to maintain VEX information, by adding, updating or removing the analysis tag from a report’s vulnerability data. It accepts a POST request with a set of Cyclone DX formatted analysis details, with a reference vulnerability ID to be updated (replaced or added). It also accepts a DELETE post for a specific vulnerability ID to have the analysis elements removed.
User permissions are required to invoke this API call
- Edit IQ Elements
Methods supported:
POST to add or update one or more vulnerabilities of a given report
DELETE to remove details from a single vulnerability
Add or update vulnerability analysis details
Analysis details can be updated or added by making an authenticated HTTP POST request:
POST /api/experimental/vex/application/{applicationInternalId}/report/{scanId}
With body payload, a json array of vulnerabilities analysis details:
{ "vulnerabilities": [\
{\
"id": "...<vulnerability id>",\
"analysis": {\
"state": "not_affected",\
"justification": "code_not_reachable",\
"response": [\
"will_not_fix",\
"update"\
],\
"detail": "An optional explanation of why the application is not affected by the vulnerable component."\
}\
}]
}
Responses
200 Ok: with the updates results as the body
404 Not Found: if the application or scan Ids are not found
The success response will contain a body with the results of applying each of the given vulnerabilities updates, of the format:
{
"vulnerability Id" : "Update result",
...
}
Updates results can be:
ADDED : the vulnerability exists in the report and did not have any previous details.
UPDATED: the vulnerability had existing analysis details and those were replaced with new ones
NOT_FOUND: the given vulnerability was not found in the report and no analysis details were added.
Example:
curl --location 'http://testIQserver/api/experimental/vex/application/a21d75b2079f47c58df99ccfb70054b0/report/37245ca1cee9483ba48b087c6205f47e' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4xMjM=' \
--header 'Cookie: CLM-CSRF-TOKEN=dd815142-f85b-4db5-9ef8-4f6621679a01' \
--data '{
"vulnerabilities": [\
{\
"id": "CVE-2021-41495",\
"analysis": {\
"state": "not_affected",\
"justification": "code_not_reachable",\
"response": ["will_not_fix", "update" ],\
"detail": "simply for test."\
}\
},\
{\
"id": "CVE-2021-41496",\
"analysis": {\
"state": "in_triage",\
"justification": "requires_configuration",\
"response": ["will_not_fix", "workaround_available"],\
"detail": "An optional explanation of why the application is not affected by the vulnerable component."\
}\
}\
]
}'
Response:
{
"CVE-2021-41496": "ADDED",
"CVE-2021-41495": "UPDATED"
}
Remove vulnerability analysis details
DELETE /api/experimental/vex/application/{appInternalId}/report/{scanId}/{vulnerabilityId}
Responses
200 Ok: with the removed vulnerability analysis details
204 No Content: if the given vulnerability does not contain any analysis details
404 Not Found: if the report or vulnerability are not found
Example:
curl --location --request DELETE 'http://testIQserver/api/experimental/vex/application/a21d75b2079f47c58df99ccfb70054b0/report/37245ca1cee9483ba48b087c6205f47e/CVE-2021-41496' \
--header 'Authorization: Basic YWRtaW46YWRtaW4xMjM=' \
--header 'Cookie: CLM-CSRF-TOKEN=dd815142-f85b-4db5-9ef8-4f6621679a01'
Response:
{
"id": "CVE-2021-41496",
"analysis": {
"state": "not_affected",
"justification": "code_not_reachable",
"response": [\
"will_not_fix",\
"update"\
],
"detail": "An optional explanation ..."
}
}
Search results
No results found