openapi: 3.2.0 info: title: 'Forward Networks: Complete Aliases Vulnerability Analysis API' description: Model and verify networks contact: email: support@forwardnetworks.com license: name: MIT url: https://spdx.org/licenses/MIT version: '26.6' servers: - url: /api tags: - name: Vulnerability Analysis description: Identify network devices potentially impacted by CVEs summary: Vulnerability Analysis paths: /networks/{networkId}/vulnerabilities: get: tags: - Vulnerability Analysis summary: Get full vulnerability analysis description: 'Get the CVEs that may impact devices in the network. Each OsVulnerability corresponds to a distinct CVE-OS combination that could possibly impact devices in the network. An OsVulnerability includes basic CVE information, an affected OS, the affected versions of that OS, and a vulnerability detection result for each possibly impacted device. This operation’s response can get quite large for large networks. Paging is supported via the `limit` and `offset` parameters.' operationId: getOsVulnerabilities parameters: - name: networkId in: path required: true schema: type: string - $ref: '#/components/parameters/SnapshotId' - name: offset in: query description: An optional number of vulnerabilities to skip. Useful for paging. Defaults to 0. schema: type: integer format: int32 - name: limit in: query description: An optional maximum number of vulnerabilities desired. Useful for paging. Defaults to 1000. schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OsVulnerabilityAnalysis' '409': description: 'The system is currently processing this Snapshot. Note: GET /networks/{networkId}/snapshots/latestProcessed can be used to determine when processing of the latest Snapshot is done or to identify an alternate Snapshot that has already been processed.' content: application/json: schema: $ref: '#/components/schemas/ErrorInfo' security: - api_token: [] /networks/{networkId}/vulnerabilities?v=2: get: tags: - Vulnerability Analysis summary: Get vulnerabilities description: 'Get the CVEs that may impact devices in the network. Each Vulnerability object includes basic CVE information, the CVE’s affected OSes and versions, and a summary of vulnerability detection results for possibly impacted devices.' operationId: getVulnerabilities parameters: - name: networkId in: path required: true schema: type: string - name: internetAddressable in: query description: Whether to limit the analysis to internet-addressable devices. Defaults to false. schema: type: boolean - name: location in: query description: The IDs of the locations to include in the analysis. Defaults to all locations. schema: type: array items: type: string - name: tag in: query description: 'Device tags used to limit the scope of the analysis. A device must have at least one of these tags to be included.' schema: type: array items: type: string - $ref: '#/components/parameters/SnapshotId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/VulnerabilityAnalysis' '409': description: 'The system is currently processing this Snapshot. Note: GET /networks/{networkId}/snapshots/latestProcessed can be used to determine when processing of the latest Snapshot is done or to identify an alternate Snapshot that has already been processed.' content: application/json: schema: $ref: '#/components/schemas/ErrorInfo' security: - api_token: [] /networks/{networkId}/vulnerabilities/{cveId}: get: tags: - Vulnerability Analysis summary: Get a vulnerability description: 'Get detailed information about a vulnerability that might impact devices in the network, including basic CVE information, affected OSes and versions, and a vulnerability detection result for each possibly impacted device.' operationId: getVulnerability parameters: - name: networkId in: path required: true schema: type: string - name: cveId in: path description: 'A CVE ID from the [Get vulnerabilities](https://docs.fwd.app/latest/api/vulnerability-analysis/get-vulnerabilities/) response.' required: true schema: type: string - $ref: '#/components/parameters/SnapshotId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/VulnerabilityWithDevices' '409': description: 'The system is currently processing this Snapshot. Note: GET /networks/{networkId}/snapshots/latestProcessed can be used to determine when processing of the latest Snapshot is done or to identify an alternate Snapshot that has already been processed.' content: application/json: schema: $ref: '#/components/schemas/ErrorInfo' security: - api_token: [] components: schemas: DetectionResultDeviceCount: type: object properties: result: $ref: '#/components/schemas/DetectionResult' examples: - VULNERABLE deviceCount: type: integer format: int32 examples: - 80 CveOsInfo: type: object properties: vendor: $ref: '#/components/schemas/Vendor' os: $ref: '#/components/schemas/VendorOs' severity: type: string description: 'Severity based on one of this vulnerability’s CVSS scores according to the [Qualitative Severity Ratings](https://nvd.nist.gov/vuln-metrics/cvss#:~:text=Qualitative%20Severity%20Ratings) table. The priority order of scores is `v4Score`, then `v3Score`, then `v2Score`. "NONE" if no CVSS score is available for this vulnerability.' enum: - NONE - LOW - MEDIUM - HIGH - CRITICAL v2Score: type: number format: double description: 'Score assigned by the Common Vulnerability Scoring System ([CVSS](https://nvd.nist.gov/vuln-metrics/cvss)) v2.0 standard.' examples: - 6.1 v3Score: type: number format: double description: 'Score assigned by the Common Vulnerability Scoring System ([CVSS](https://nvd.nist.gov/vuln-metrics/cvss)) v3.x standard.' examples: - 9.8 v4Score: type: number format: double description: 'Score assigned by the Common Vulnerability Scoring System ([CVSS](https://www.first.org/cvss/v4.0/specification-document)) v4.0 standard.' examples: - 8.4 url: type: string description: 'URL of this vulnerability’s vendor advisory, if available, or else the URL of the best source of information about the vulnerability that’s currently available.' examples: - https://www.a10networks.com/blog/cve-2016-0270-gcm-nonce-vulnerability publishDate: type: string description: Publication date of the information at `url` if known. examples: - '2023-12-31' advisoryMentionsExploit: type: boolean description: Whether the vendor advisory at `url` says there’s a known exploit. Included only if true. configDependent: type: boolean description: Whether this vulnerability depends on a device’s configuration for this OS. Absent if unknown. configAnalysis: type: string description: 'Present and can be any allowed value if `configDependent` is true. Absent if `configDependent` is false. Can be either "UNSUPPORTED" or absent if `configDependent` is absent (unknown).' enum: - UNSUPPORTED - IN_PROGRESS - SUPPORTED VulnerabilityVendor: type: string enum: - CISCO - JUNIPER - ARISTA - PICA8 - F5 - A10 - CHECKPOINT - HP - FORTINET - PALO_ALTO_NETWORKS - VMWARE - CITRIX - CUMULUS - RIVERBED - LINUX_GENERIC - SYMANTEC - AVI_NETWORKS - AVAYA - T128 - ARUBA - VIASAT - SILVER_PEAK - PENSANDO - FORCEPOINT - NOKIA - VERSA - BROCADE - EXTREME - DELL - HUAWEI - GD - EDGE_CORE VulnerabilityDevice: type: object properties: name: type: string description: 'The name that uniquely identifies the device in the network. For most devices, this is the user-assigned [classic device](https://docs.fwd.app/latest/api/classic-devices/) name. For a virtual context, this is the classic device name plus context name. For a cloud device, this is a globally unique identifier assigned by the cloud provider.' examples: - nyc-dc01-fw02 osVersion: type: string description: The device’s operating system version in the network Snapshot. examples: - 4.15.0F model: type: string description: The device’s model name. examples: - BIG-IP Virtual Edition managementIps: type: array items: type: string description: The device’s management IP addresses. examples: - - 10.10.10.10 tags: type: array items: type: string description: Tags assigned to the device. Absent if the device has none. examples: - - SEC locationId: type: string description: The `id` of the device’s assigned [location](https://docs.fwd.app/latest/api/network-locations/). examples: - nyc internetAddressable: type: boolean description: Whether the device can receive internet traffic. CveOsInfoWithDeviceCounts: allOf: - $ref: '#/components/schemas/CveOsInfo' - type: object properties: osVersions: type: array items: type: string description: The OS versions of the devices in the network that are potentially affected by this CVE. examples: - - 4.15.0F deviceCount: type: integer format: int32 description: 'Total number of devices in the network that are running an affected version of this OS and thus are potentially affected by this CVE.' examples: - 200 resultCounts: type: array items: $ref: '#/components/schemas/DetectionResultDeviceCount' description: 'The number of devices in the network that are potentially affected by this CVE broken down by detection result. These counts add up to `deviceCount`.' examples: - - result: VULNERABLE deviceCount: 80 - result: NOT_VULNERABLE deviceCount: 120 locationIds: type: array items: type: string description: The IDs of the locations of the devices in the network that are potentially affected by this CVE. examples: - - atl - nyc-b tags: type: array items: type: string description: 'Tags associated with any devices in the network that are potentially affected by this CVE. Absent if the devices have no tags.' examples: - - SEC OsVulnerabilityAnalysis: type: object required: - vulnerabilities - offset - total - indexCreatedAt properties: vulnerabilities: type: array items: $ref: '#/components/schemas/OsVulnerability' offset: type: integer format: int32 description: The number of vulnerabilities dropped from the front of `vulnerabilities` due to paging. examples: - 200 total: type: integer format: int32 description: 'The total number of vulnerabilities available in the analysis. This number can be larger than `offset` plus the length of `vulnerabilities` if some have been dropped from the back of `vulnerabilities` due to paging.' examples: - 1234 indexCreatedAt: type: string description: When the CVE index used for analysis was created (epoch milliseconds) examples: - '2025-06-01T12:34:56.789Z' indexUploadedAt: type: string description: When the CVE index used for analysis was uploaded to the server (epoch milliseconds) examples: - '2025-06-03T04:05:06.007Z' indexUploadedBy: type: string description: The id of the `User` who uploaded the CVE index used for analysis examples: - '345' DetectionResult: type: string enum: - VULNERABLE - OS_VULNERABLE - UNIMPLEMENTED - UNCONFIRMED - NOT_VULNERABLE CveInfo: type: object properties: id: type: string description: 'The Common Vulnerabilities and Exposures ([CVE](https://www.cve.org)) ID assigned to this vulnerability in the National Vulnerability Database ([NVD](https://nvd.nist.gov)).' examples: - CVE-2019-0201 description: type: string description: This vulnerability’s description in the [NVD](https://nvd.nist.gov). examples: - 'An issue is present in Apache ZooKeeper 1.0.0 to 3.4.13 and 3.5.0-alpha to 3.5.4-beta. ZooKeeper’s getACL() command…' hasCisaKevEntry: type: boolean description: 'Whether CISA’s [KEV Catalog](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) mentions a known exploit for this CVE.' weaknesses: type: array items: type: string description: 'Common Weakness Enumeration ([CWE](https://cwe.mitre.org/about/new_to_cwe.html)) IDs associated with this CVE.' examples: - - CWE-345 - CWE-765 LineRange: type: object properties: start: type: integer format: int32 description: The 0-based index of the first line in the range. examples: - 23 end: type: integer format: int32 description: The 0-based index of the last line in the range (inclusive). examples: - 27 VulnerabilityAnalysis: type: object properties: vulnerabilities: type: array items: $ref: '#/components/schemas/Vulnerability' description: Information about the CVEs that might impact devices in the network. indexCreatedAt: type: string description: When the CVE index used for analysis was created. examples: - '2025-06-01T12:34:56.789Z' indexUploadedAt: type: string description: When the CVE index used for analysis was uploaded to the server. examples: - '2025-06-03T04:05:06.007Z' indexUploadedBy: type: string description: 'The username of the User who uploaded the CVE index used for analysis, if known. Absent if the user account has been deleted.' examples: - me@example.com indexUploadedById: type: string description: The ID of the User who uploaded the CVE index used for analysis. examples: - '345' VulnerabilityWithDevices: allOf: - $ref: '#/components/schemas/CveInfo' - type: object properties: osInfos: type: array items: $ref: '#/components/schemas/CveOsInfoWithDevices' description: 'OS-specific information about this CVE. Includes a detection result for each device running an affected operating system version.' VendorOs: type: string enum: - unknown - circuit - l2_vpn_service - missing_peer - mpls_vpn_service - internet_service - intranet_service - encryptor - alkira_portal - arista_eos - avi_vantage - bluecoat - cisco_ios - cisco_ios_xe - cisco_ios_xr - cisco_nxos - cisco_asa - cisco_ftd - cisco_fxos - cisco_nxos_aci - cisco_apic - cisco_sg - cisco_wireless - viptela - juniper_junos - juniper_srx - juniper_netscreen - linux_ovs_ofctl - pica8_ovs_ofctl - f5 - f5_os_hypervisor - a10_acos - checkpoint - hp_provision - hp_comware - fortinet - pan_os - esxi - citrix_netscaler - cumulus - riverbed_steelhead - riverbed_interceptor - 128t - aruba_switch - aruba_aos_cx - aruba_wifi_controller - silver_peak_edgeconnect - pensando - cloud_genix - forcepoint - aws_cloud - aws_subnet - aws_rt - aws_internet_gw - aws_nat_gw - aws_vpn_gw - aws_direct_connect_gw - aws_lb - aws_global_accelerator - aws_transit_gw - aws_local_gw - aws_network_firewall - aws_gateway_lb - aws_service_endpoint - azure_cloud - azure_subnet - azure_vnet - azure_vnet_gw - azure_firewall - azure_app_gw - azure_frontdoor - azure_lb - azure_vwan_hub - azure_vpn_gateway - azure_p2s_vpn_gateway - azure_express_route_gateway - azure_virtual_appliance - azure_express_route_circuit - google_cloud - gcp_rt - gcp_subnet - gcp_lb - gcp_traffic_director - gcp_vpn_gw - gcp_nat_gw - gcp_service_attachment - gcp_intercept_deployment - avaya_sr - avaya_ers - viasat_encryptor - nokia - huawei_switch - versa_sase - versa_switch - brocade_switch - cisco_encs_nfv - extreme_nos - meraki_ms - meraki_mr - meraki_mx - mist_ap - dell_os6 - dell_os9 - dell_os10 - dell_sonic - gd_encryptor - edge_core_sonic - zscaler_zpa - zscaler_app_connector VulnerabilityDeviceWithResult: allOf: - $ref: '#/components/schemas/VulnerabilityDevice' - type: object properties: status: type: string description: The device’s vulnerability status for the CVE. examples: - VULNERABLE enum: - VULNERABLE - POTENTIALLY_VULNERABLE - NOT_VULNERABLE result: $ref: '#/components/schemas/DetectionResult' description: 'The device’s [detection result](https://docs.fwd.app/latest/application/security/vulnerability/#detection-results) for the CVE.' examples: - VULNERABLE fileRanges: type: object additionalProperties: type: array items: $ref: '#/components/schemas/LineRange' description: 'Relevant line ranges in the device’s configuration. Property names in this object are filenames. Use [Get device data file content](https://docs.fwd.app/latest/api/network-devices/get-device-file-content/) to obtain a referenced file.' examples: - nyc-dc01-fw02,configuration.txt: - start: 286 end: 291 ErrorInfo: type: object required: - httpMethod - apiUrl - message properties: httpMethod: type: string examples: - GET enum: - GET - HEAD - POST - PUT - PATCH - DELETE apiUrl: type: string examples: - /api/version message: type: string description: A description of the error reason: type: string VulnerabilityDetectionResult: type: object required: - device - vulnerable properties: device: type: string examples: - dev01 vulnerable: type: boolean description: Absent if an error prevented analysis from completing examples: - false fileLines: type: object additionalProperties: type: array items: $ref: '#/components/schemas/LineRange' description: Relevant source file lines for the device and CVE examples: - dev01,configuration.txt: - start: 117 end: 119 Vulnerability: allOf: - $ref: '#/components/schemas/CveInfo' - type: object properties: osInfos: type: array items: $ref: '#/components/schemas/CveOsInfoWithDeviceCounts' description: 'OS-specific information about this CVE. Includes a summary of analysis results for devices with each affected operating system.' VulnerabilityVendorOs: type: string enum: - arista_eos - avi_vantage - bluecoat - cisco_ios - cisco_ios_xe - cisco_ios_xr - cisco_nxos - cisco_asa - cisco_ftd - cisco_fxos - cisco_nxos_aci - cisco_apic - cisco_sg - cisco_wireless - viptela - juniper_junos - juniper_srx - juniper_netscreen - linux_ovs_ofctl - pica8_ovs_ofctl - f5 - f5_os_hypervisor - a10_acos - checkpoint - hp_provision - hp_comware - fortinet - pan_os - esxi - citrix_netscaler - cumulus - riverbed_steelhead - riverbed_interceptor - 128t - aruba_switch - aruba_aos_cx - aruba_wifi_controller - silver_peak_edgeconnect - pensando - cloud_genix - forcepoint - avaya_sr - avaya_ers - viasat_encryptor - nokia - huawei_switch - versa_sase - versa_switch - brocade_switch - cisco_encs_nfv - extreme_nos - meraki_ms - meraki_mr - meraki_mx - mist_ap - dell_os6 - dell_os9 - dell_os10 - dell_sonic - gd_encryptor - edge_core_sonic CveOsInfoWithDevices: allOf: - $ref: '#/components/schemas/CveOsInfo' - type: object properties: description: type: string description: The CVE description published at `url`. examples: - Back in February we were contacted by Hanno Böck who had discovered an issue with how certain... devices: type: array items: $ref: '#/components/schemas/VulnerabilityDeviceWithResult' description: 'Devices in the network that are running an affected version of this OS and thus are potentially affected by this CVE. A detection result is included for each device. Relevant lines of device configuration are included for each device as well when possible.' Vendor: type: string enum: - UNKNOWN - CISCO - JUNIPER - ARISTA - PICA8 - F5 - A10 - CHECKPOINT - HP - FORTINET - PALO_ALTO_NETWORKS - VMWARE - CITRIX - CUMULUS - RIVERBED - LINUX_GENERIC - AMAZON - SYMANTEC - AVI_NETWORKS - MICROSOFT - GOOGLE - IBM - AVAYA - T128 - ARUBA - VIASAT - SILVER_PEAK - PENSANDO - FORCEPOINT - BLUECAT - NOKIA - VERSA - BROCADE - EXTREME - DELL - HUAWEI - GD - ALKIRA - EDGE_CORE - ZSCALER - FORWARD_CUSTOM OsVulnerability: type: object required: - id - severity - vendor - os - osVersions - dependsOnConfig - detectionMethod properties: id: type: string description: 'The Common Vulnerabilities and Exposures ([CVE](https://www.cve.org)) ID assigned to this vulnerability in the National Vulnerability Database ([NVD](https://nvd.nist.gov))' examples: - CVE-2019-0201 description: type: string examples: - 'An issue is present in Apache ZooKeeper 1.0.0 to 3.4.13 and 3.5.0-alpha to 3.5.4-beta. ZooKeeper’s getACL() command…' severity: type: string examples: - MEDIUM enum: - NONE - LOW - MEDIUM - HIGH - CRITICAL url: type: string description: 'URL of this vulnerability’s vendor advisory, if available, or else the URL of the best source of information about the vulnerability that’s currently available' examples: - https://www.a10networks.com/blog/cve-2016-0270-gcm-nonce-vulnerability publishedDate: type: string examples: - '2023-12-31' v2Score: type: number format: double description: 'Score assigned by the Common Vulnerability Scoring System ([CVSS](https://nvd.nist.gov/vuln-metrics/cvss)) v2.0 standard' examples: - 6.1 v3Score: type: number format: double description: 'Score assigned by the Common Vulnerability Scoring System ([CVSS](https://nvd.nist.gov/vuln-metrics/cvss)) v3.x standard' examples: - 9.8 v4Score: type: number format: double description: 'Score assigned by the Common Vulnerability Scoring System ([CVSS](https://www.first.org/cvss/v4.0/specification-document)) v4.0 standard' examples: - 8.4 knownExploitSource: type: string description: '`CISA` if the vulnerability is in the Cybersecurity and Infrastructure Security Agency’s Known Exploited Vulnerabilities ([KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog)) catalog. `VENDOR` if the vendor advisory (the page at `url`) indicates that the vulnerability has a known exploit. Absent otherwise.' examples: - CISA enum: - CISA - VENDOR weaknesses: type: array items: type: string description: 'Common Weakness Enumeration ([CWE](https://cwe.mitre.org/about/new_to_cwe.html)) IDs associated with this CVE' examples: - - CWE-123 vendor: $ref: '#/components/schemas/VulnerabilityVendor' examples: - ARISTA os: $ref: '#/components/schemas/VulnerabilityVendorOs' examples: - arista_eos osVersions: type: array items: type: string examples: - - 4.15.0F dependsOnConfig: type: boolean description: Whether the CVE depends on configuration for this OS. Null if unknown. examples: - true detectionMethod: type: string description: 'How the set of possibly matching devices was constructed. `CONFIG` means that the analysis was more thorough than using just the OS version. The `CONFIG` method yields fewer false positives.' examples: - OS_VERSION enum: - OS_VERSION - CONFIG devices: type: array items: type: string description: Possibly impacted devices. Present when `detectionMethod` is "OS_VERSION". examples: - - dev01 - dev02 deviceResults: type: array items: $ref: '#/components/schemas/VulnerabilityDetectionResult' description: 'Results of device configuration analysis for this vulnerability. Present when `detectionMethod` is "CONFIG".' parameters: SnapshotId: name: snapshotId in: query description: An optional Snapshot id. If omitted, the network’s latest processed Snapshot is used. schema: type: string securitySchemes: api_token: type: http scheme: basic