Integrations

ServiceNow Tenable Integration Guide

advancedAPI Key in headerTenable.io / Tenable.sc

The ServiceNow Tenable integration enables organizations to automatically import vulnerability scan data from Tenable.io or Tenable.sc into ServiceNow's Vulnerability Response application, creating a unified vulnerability management workflow. This integration solves the critical business problem of bridging security scanning tools with IT service management processes, allowing security teams and IT operations to collaborate effectively on vulnerability remediation. Security analysts, vulnerability managers, and ServiceNow administrators rely on this integration to maintain comprehensive asset security posture. The integration supports bi-directional data synchronization, automatically importing vulnerability findings from Tenable while sending remediation status updates back to Tenable platforms. Primary automation patterns include scheduled vulnerability imports, real-time remediation task creation based on CVSS scores, and automatic CI relationship mapping. The integration operates within ServiceNow's Vulnerability Response module and leverages the IntegrationHub's Tenable spoke for streamlined connectivity.

Prerequisites

  • ServiceNow San Diego release or later with Vulnerability Response plugin (com.snc.vuln_response) activated
  • IntegrationHub Professional or Enterprise license for accessing the official Tenable spoke
  • Tenable.io Standard license or Tenable.sc Professional with API access enabled
  • Valid Tenable API keys with scan data read permissions and vulnerability management access
  • Discovery and Service Mapping licenses for CI relationship mapping functionality
  • Security Admin or Integration User role in ServiceNow for credential and connection management
  • Network connectivity between ServiceNow instance and Tenable cloud/on-premises infrastructure

Architecture Overview

The integration utilizes ServiceNow's official IntegrationHub Tenable spoke, which provides pre-built Actions for vulnerability data import, scan management, and asset synchronization operations. Authentication is established using API key-based authentication, with Tenable API credentials stored securely in ServiceNow's Connection and Credential Aliases under the Connections & Credentials module. Data flows uni-directionally from Tenable to ServiceNow by default, with optional bi-directional updates for remediation status, triggered by scheduled imports or real-time webhook events from Tenable platforms. A MID Server is required only for Tenable.sc on-premises deployments to facilitate secure communication between ServiceNow cloud and the customer's internal Tenable.sc infrastructure. The Tenable API enforces rate limiting of 200 requests per minute for Tenable.io and 100 requests per minute for Tenable.sc, requiring careful orchestration of bulk data imports and implementing exponential backoff retry mechanisms in custom integration flows.

Sourdough
Chrome Extension

Sourdough: ServiceNow Monitoring and Analytics

A Chrome extension for ServiceNow Admins and Developers with essential tools, analytics, graphs and monitoring features.

Instance HealthGraphs & ChartsAPI HealthDeveloper ToolsQuick SearchInstance Switcher
Add to Chrome

Free to install. Pro $5/month after a 14-day no-card trial.
Pro requires the ServiceNow admin role. Upgrade inside the extension.

Overview
Tasks
CMDB
API
Metrics
Monitor
Internals
Instance:sourdoughdev·Version:Yokohama
Instance StateONLINE
System StatusFully Operational
Session Timeout90 minutes
Logged-In Sessions2 (20 active)
Build Nameyokohama-12-18-2024_p1
IP Address10.159.128.43
Instance HealthHealth Score: 90%
🔥 5dSourdough (Chrome Plugin)Dark Mode

Implementation Steps

1

Generate Tenable API keys and configure ServiceNow credentials

In your Tenable.io console, navigate to Settings > My Account > API Keys and generate a new API key pair with vulnerability data read permissions. Copy the Access Key and Secret Key values immediately as the Secret Key is only displayed once. In ServiceNow, navigate to Connections & Credentials > Credentials and create a new Basic Auth credential record. Set the User name field to your Tenable Access Key and Password field to your Secret Key, ensuring the credential is marked as active. For Tenable.sc deployments, use your Tenable.sc username and password instead of API keys.

2

Install and configure the IntegrationHub Tenable spoke

Navigate to System Applications > All Available Applications > All and search for 'Tenable' to locate the official Tenable spoke in the ServiceNow Store. Install the spoke to your instance, which typically takes 5-10 minutes to complete activation. After installation, verify the spoke is active by checking IntegrationHub > Spokes and confirming the Tenable spoke shows a status of 'Active'. The spoke includes pre-configured Actions for vulnerability import, scan data retrieval, and asset management that will be used in subsequent steps. Review the spoke documentation within ServiceNow to understand available Actions and their input/output parameters.

3

Create Connection Alias for Tenable platform integration

Navigate to Connections & Credentials > Connection & Credential Aliases and create a new alias record for your Tenable integration. Set the Name to 'Tenable_API_Connection' and Type to 'HTTP Connection'. Configure the Connection URL to 'https://cloud.tenable.com' for Tenable.io or your Tenable.sc server URL for on-premises deployments. Associate the credential record created in step 1 with this connection alias. For Tenable.sc deployments behind firewalls, ensure the MID Server field is populated with your appropriate MID Server instance to enable secure connectivity.

4

Configure vulnerability import flow using IntegrationHub

Navigate to IntegrationHub > Flows and create a new flow named 'Tenable Vulnerability Import'. Add the Tenable spoke's 'Get Vulnerabilities' Action as your primary step, configuring it to use the Connection Alias created in step 3. Set up flow variables for scan date ranges, severity filters, and asset group parameters to control which vulnerabilities are imported. Configure the flow output to map Tenable vulnerability fields to ServiceNow's Vulnerability [sn_vul_vulnerable_item] table fields, ensuring CVSS scores, asset identifiers, and finding descriptions are properly mapped. Test the flow execution manually to verify connectivity and data retrieval before proceeding to automation setup.

ServiceNow Script
// Flow script step for processing vulnerability data
var vulnGr = new GlideRecord('sn_vul_vulnerable_item');
vulnGr.initialize();
vulnGr.number = fd_data.plugin_id;
vulnGr.short_description = fd_data.plugin_name;
vulnGr.state = fd_data.severity >= 7 ? '1' : '2'; // Critical/High vs Medium/Low
vulnGr.cmdb_ci = findCIByIP(fd_data.asset.ipv4);
vulnGr.cvss_base_score = fd_data.cvss_base_score;
vulnGr.insert();
5

Set up CI relationship mapping for asset correlation

Navigate to Configuration > CI Class Manager and verify that your CMDB contains Configuration Items matching the assets scanned by Tenable. Create a scripted transform map or flow step to correlate Tenable asset data with ServiceNow CIs using IP addresses, hostnames, or MAC addresses as matching criteria. Configure the correlation logic to handle multiple network interfaces and dynamic IP assignments common in cloud environments. Set up fallback creation of new CI records when assets discovered by Tenable don't exist in the CMDB, ensuring proper CI class assignment based on Tenable asset operating system and device type data. Implement validation rules to prevent duplicate CI creation and maintain data quality during the correlation process.

ServiceNow Script
// CI correlation function
function findCIByIP(ipAddress) {
    var ciGr = new GlideRecord('cmdb_ci');
    ciGr.addQuery('ip_address', ipAddress);
    ciGr.query();
    if (ciGr.next()) {
        return ciGr.sys_id;
    }
    // Create new CI if not found
    var newCI = new GlideRecord('cmdb_ci_computer');
    newCI.initialize();
    newCI.name = 'Unknown-' + ipAddress;
    newCI.ip_address = ipAddress;
    return newCI.insert();
}
6

Configure CVSS-based task prioritization and assignment

Navigate to Vulnerability Response > Administration > VR Properties and configure severity-based task creation rules that automatically generate remediation tasks based on CVSS scores and vulnerability criticality. Create business rules on the Vulnerability table that trigger when new high-severity findings (CVSS 7.0+) are imported from Tenable. Configure automatic assignment logic that routes tasks to appropriate IT teams based on affected CI assignment groups or asset business services. Set up SLA definitions for different severity levels, ensuring critical vulnerabilities (CVSS 9.0+) receive immediate attention while lower-priority items follow standard change processes. Implement escalation workflows that notify security teams when remediation tasks remain open beyond defined timeframes.

ServiceNow Script
// Business rule for automatic task creation
(function executeRule(current, previous) {
    if (current.cvss_base_score >= 7.0 && current.state == '1') {
        var task = new GlideRecord('sc_task');
        task.initialize();
        task.short_description = 'Remediate: ' + current.short_description;
        task.description = 'CVSS Score: ' + current.cvss_base_score + '\nAffected CI: ' + current.cmdb_ci.getDisplayValue();
        task.priority = current.cvss_base_score >= 9.0 ? '1' : '2';
        task.assignment_group = current.cmdb_ci.support_group;
        task.insert();
    }
})(current, previous);
7

Schedule automated vulnerability synchronization

Navigate to System Definition > Scheduled Jobs and create a new scheduled job to execute your Tenable vulnerability import flow at regular intervals. Configure the job to run daily during off-peak hours to minimize impact on system performance, typically scheduling execution between 2:00 AM and 4:00 AM in your instance timezone. Set up job parameters to import only new or updated vulnerabilities since the last synchronization, using Tenable's last_modified filters to optimize API calls and reduce data transfer. Configure error handling and notification logic to alert administrators when synchronization failures occur, including retry mechanisms for transient network or API issues. Implement job logging that tracks import statistics, including counts of new vulnerabilities, updated findings, and any correlation failures for monitoring integration health.

ServiceNow Script
// Scheduled job script for vulnerability sync
var sm = new sn_ws.RESTMessageV2();
sm.setEndpoint('https://cloud.tenable.com/vulns/export');
sm.setHttpMethod('POST');
sm.setRequestHeader('X-ApiKeys', 'accessKey=' + accessKey + ';secretKey=' + secretKey);
var lastSync = gs.getProperty('tenable.last.sync', '2024-01-01');
var payload = '{"filters":{"last_found":{"gte":' + lastSync + '}},"format":"json"}';
sm.setRequestBody(payload);
var response = sm.execute();
gs.info('Tenable sync completed: ' + response.getStatusCode());
8

Test integration and validate data flow

Execute a complete end-to-end test by manually triggering your vulnerability import flow and verifying that Tenable scan data appears correctly in ServiceNow's Vulnerability Response module. Navigate to Vulnerability Response > Vulnerabilities to confirm that imported findings display proper CVSS scores, asset correlations, and severity classifications. Verify that high-severity vulnerabilities automatically generate remediation tasks with appropriate assignments and SLA timelines. Test the CI correlation logic by checking that vulnerabilities are properly linked to existing Configuration Items in your CMDB. Monitor system logs during testing to identify any performance issues, API rate limiting problems, or data mapping errors that require resolution before production deployment.

ServiceNow Script
// Validation script for testing data integrity
var vulnCount = new GlideAggregate('sn_vul_vulnerable_item');
vulnCount.addQuery('sys_created_on', '>=', gs.daysAgoStart(1));
vulnCount.addAggregate('COUNT');
vulnCount.query();
if (vulnCount.next()) {
    gs.info('Vulnerabilities imported in last 24h: ' + vulnCount.getAggregate('COUNT'));
}
// Verify CI correlation rate
var correlatedCount = new GlideAggregate('sn_vul_vulnerable_item');
correlatedCount.addQuery('cmdb_ci', '!=', '');
correlatedCount.addAggregate('COUNT');
correlatedCount.query();
gs.info('CI correlation success rate: ' + (correlatedCount.getAggregate('COUNT') / vulnCount.getAggregate('COUNT') * 100) + '%');

Common Use Cases

Automated critical vulnerability alerting and task creation

When Tenable scans identify critical vulnerabilities with CVSS scores of 9.0 or higher, the integration automatically creates high-priority remediation tasks in ServiceNow with immediate SLA requirements. These tasks are automatically assigned to the appropriate IT teams based on the affected CI's support group assignments, ensuring rapid response to security threats. The integration includes automated notifications to security managers and escalation workflows when critical vulnerabilities remain unaddressed beyond defined timeframes. This use case delivers immediate business value by reducing mean time to remediation (MTTR) for the most severe security exposures.

Compliance reporting and vulnerability trend analysis

Organizations leverage the integrated vulnerability data to generate comprehensive compliance reports that combine Tenable scan results with ServiceNow's remediation tracking and change management data. The integration enables security teams to produce executive dashboards showing vulnerability trends, remediation effectiveness, and compliance posture across different business units or asset groups. Historical vulnerability data integrated with ServiceNow's reporting capabilities provides valuable insights into attack surface reduction and security program effectiveness. This supports regulatory compliance requirements and enables data-driven security investment decisions.

Change management integration for vulnerability remediation

Remediation tasks created from Tenable vulnerability data automatically integrate with ServiceNow's Change Management process, ensuring that security patches and configuration changes follow established organizational approval workflows. The integration links vulnerability findings to specific change requests, enabling complete traceability from initial discovery through remediation validation. Change advisory boards can prioritize security-related changes based on integrated CVSS scores and business impact assessments derived from affected CI relationships. This use case ensures that vulnerability remediation efforts align with organizational change control processes while maintaining audit trails for compliance purposes.

Asset lifecycle management and decommissioning workflows

The integration identifies assets detected by Tenable scans that don't exist in ServiceNow's CMDB, triggering asset discovery and lifecycle management processes to ensure complete asset inventory accuracy. Conversely, when CMDB assets are marked for decommissioning, automated workflows can remove them from Tenable scan targets to optimize scanning resources and reduce noise in vulnerability reports. This bidirectional asset management ensures that security scanning efforts remain aligned with actual infrastructure deployments and reduces false positives from decommissioned systems. The integration supports asset governance initiatives by providing comprehensive visibility into the security posture of all managed infrastructure components.

Service impact assessment and business risk prioritization

By correlating Tenable vulnerability data with ServiceNow's Business Service Management (BSM) and Service Mapping capabilities, organizations can assess the potential business impact of security vulnerabilities on critical services and applications. The integration automatically calculates risk scores that combine technical severity (CVSS) with business criticality derived from service dependencies and customer impact assessments. Security and IT teams can prioritize remediation efforts based on both technical risk and business impact, ensuring that vulnerabilities affecting revenue-generating services receive appropriate attention. This approach enables risk-based vulnerability management that aligns security efforts with business objectives and service availability requirements.

Troubleshooting

401 Unauthorized errors when connecting to Tenable.io API during vulnerability import

Verify that your Tenable API keys are correctly configured in the ServiceNow credential record by testing them directly against the Tenable API using a REST client like Postman. Check that the Access Key and Secret Key fields in the credential record match exactly what was generated in Tenable.io, as extra spaces or characters cause authentication failures. Navigate to System Logs > REST Messages to examine the actual HTTP headers being sent and confirm that the X-ApiKeys header format follows Tenable's required syntax. If authentication continues to fail, regenerate the API keys in Tenable.io and update the ServiceNow credential record with the new values.

Vulnerability import flow completes successfully but no records appear in ServiceNow vulnerability tables

Check the IntegrationHub flow execution logs by navigating to IntegrationHub > Executions and examining the detailed output of each flow step to identify where data processing fails. Verify that the field mappings between Tenable vulnerability data and ServiceNow vulnerability table fields are correctly configured, particularly ensuring that required fields like number and short_description are populated. Review the Tenable API response format in the flow logs to confirm that the expected vulnerability data structure matches your mapping configuration. Enable debug logging on the vulnerability table insert operations to capture any database constraint violations or field validation errors that prevent record creation.

CI correlation fails resulting in vulnerabilities not being linked to Configuration Items

Examine the asset data returned by Tenable to identify which fields (IP address, hostname, MAC address) are consistently populated and reliable for correlation matching. Navigate to Configuration > CI Class Manager and verify that your CMDB CI records contain the matching data fields with consistent formatting and no leading/trailing spaces. Test your correlation logic with a small sample of known assets to identify data format mismatches, such as hostname case sensitivity or IP address format differences. Implement fallback correlation methods using multiple matching criteria and consider creating a manual correlation report for assets that fail automatic matching.

Tenable API rate limiting causes flow execution failures and incomplete data imports

Implement exponential backoff retry logic in your integration flows by adding wait steps between API calls and configuring retry mechanisms when rate limit responses (HTTP 429) are received. Monitor your API usage patterns by reviewing Tenable's rate limiting documentation and adjusting your scheduled import frequency to stay within the 200 requests per minute limit for Tenable.io. Break large vulnerability imports into smaller batches with appropriate delays between batches, and consider implementing a queue-based processing approach for high-volume environments. Review the IntegrationHub flow execution logs to identify specific API calls that are exceeding rate limits and optimize those requests by using more specific filtering parameters.

MID Server connectivity issues preventing Tenable.sc on-premises integration

Verify that the MID Server has network connectivity to your Tenable.sc instance by testing direct HTTP/HTTPS connections from the MID Server host to the Tenable.sc management interface. Check MID Server logs located in the agent logs directory for specific connection errors, SSL certificate validation failures, or firewall blocking issues. Configure the MID Server's proxy settings if your network requires proxy access to reach Tenable.sc, and ensure that any required firewall rules allow outbound connections on the appropriate ports (typically 443 for HTTPS). Test the connection configuration by using the MID Server's built-in connection testing capabilities through the ServiceNow MID Server management interface.

Performance degradation during large vulnerability data imports affecting ServiceNow instance response times

Implement batch processing logic that imports vulnerability data in smaller chunks rather than processing thousands of records in a single transaction, using flow controls to introduce delays between batches. Monitor database performance during imports by reviewing slow query logs and table lock statistics to identify resource contention issues. Schedule vulnerability imports during off-peak hours and consider using ServiceNow's bulk import APIs instead of individual record insertions for better performance. Review the vulnerability table indexes to ensure that correlation queries on IP addresses and CI references are properly optimized for your data volume.

Pro Tips

  • Implement delta synchronization by storing the last successful import timestamp in a system property and using Tenable's last_modified filter parameters to retrieve only changed vulnerability data, dramatically reducing API calls and import processing time. This approach also minimizes the risk of hitting Tenable's API rate limits while ensuring your ServiceNow instance stays current with the latest vulnerability findings.
  • Create custom vulnerability aging reports by combining Tenable's first_found and last_found timestamps with ServiceNow's remediation task completion data to identify vulnerabilities that persist across multiple scan cycles. This enables security teams to focus on recurring issues that may indicate systemic problems or insufficient remediation processes rather than just addressing the latest scan findings.
  • Configure conditional task assignment logic that considers both CVSS scores and affected CI business criticality by creating a weighted scoring system that multiplies technical severity with business impact ratings stored in your CMDB. This ensures that a medium-severity vulnerability on a critical production system receives higher priority than a high-severity finding on a development server, optimizing remediation resource allocation.
  • Set up automated vulnerability lifecycle management by implementing business rules that monitor Tenable scan results for previously identified vulnerabilities that are no longer detected, automatically updating ServiceNow vulnerability records to 'Resolved' status and closing associated remediation tasks. This reduces manual administrative overhead and ensures that vulnerability metrics accurately reflect current security posture.
  • Leverage ServiceNow's notification framework to create intelligent alerting that prevents notification fatigue by grouping vulnerability notifications by affected business service or CI support group, sending consolidated daily or weekly summaries instead of individual alerts for each finding. Include trending information and remediation progress metrics to make notifications more actionable for recipients.
  • Implement vulnerability exception management by creating custom fields and workflows that allow security teams to mark certain vulnerabilities as accepted risks or false positives directly in ServiceNow, then sync these decisions back to Tenable to prevent recurring alerts for approved exceptions. This creates a centralized risk acceptance process that integrates with your existing ServiceNow approval workflows.

Known Limitations

  • The Tenable API enforces strict rate limiting of 200 requests per minute for Tenable.io and 100 requests per minute for Tenable.sc, which can significantly impact large-scale vulnerability imports and may require complex batch processing logic to avoid integration failures. Organizations with extensive asset inventories may experience multi-hour import times during initial synchronization or after extended periods without data sync.
  • ServiceNow's IntegrationHub Tenable spoke requires Professional or Enterprise licensing tiers and is not available with Basic IntegrationHub licenses, potentially increasing total cost of ownership for organizations that haven't already invested in advanced IntegrationHub capabilities. The spoke also has limitations in customizing data transformation logic compared to custom REST message implementations.
  • Real-time vulnerability status updates from ServiceNow back to Tenable platforms are limited by API capabilities and may not support all desired workflow states, particularly for complex change management processes or custom remediation workflows that don't map directly to Tenable's vulnerability lifecycle model. This can result in data synchronization gaps between the two platforms.
  • The integration doesn't natively support Tenable's container security or web application scanning modules, requiring additional custom development to incorporate findings from Tenable.io Container Security or Tenable.io Web App Scanning into ServiceNow vulnerability management processes. Organizations using these advanced Tenable features may need to implement separate integration flows.
  • Large-scale deployments may experience performance impacts on ServiceNow instances during bulk vulnerability imports, particularly when processing hundreds of thousands of vulnerability records with complex CI correlation logic. Database locking and memory consumption during import operations can affect overall instance responsiveness, requiring careful scheduling and resource management planning.

Frequently Asked Questions

Can the ServiceNow Tenable integration handle multiple Tenable.io or Tenable.sc instances simultaneously?

Yes, the integration supports multiple Tenable instances by creating separate Connection & Credential Aliases for each Tenable platform and configuring distinct IntegrationHub flows for each connection. You'll need to implement logic to differentiate vulnerability sources and prevent duplicate record creation when the same assets are scanned by multiple Tenable instances. Consider using custom fields to track the source Tenable instance for each vulnerability record to maintain proper data lineage and support source-specific reporting requirements.

How does the integration handle vulnerability deduplication when the same finding appears across multiple Tenable scans?

The integration uses a combination of Tenable's plugin ID, asset identifier, and port information to create unique vulnerability records in ServiceNow, automatically updating existing records when the same vulnerability is detected in subsequent scans. ServiceNow's vulnerability management framework includes built-in deduplication logic that prevents multiple records for the same finding while maintaining historical scan result data. You can customize the deduplication criteria by modifying the vulnerability import transform maps or flow logic to include additional identifying fields specific to your environment's requirements.

What happens to ServiceNow remediation tasks when vulnerabilities are no longer detected in Tenable scans?

By default, remediation tasks remain open even when vulnerabilities are no longer detected by Tenable scans, requiring manual review and closure by IT teams. However, you can implement automated task closure by configuring business rules that monitor for vulnerability records marked as 'No Longer Detected' in subsequent imports and automatically close associated tasks with appropriate closure notes. This approach includes configurable grace periods to account for temporary scanning issues or asset unavailability, and maintains audit trails showing that vulnerabilities were resolved through successful remediation rather than just scan omissions.

Does the integration support importing Tenable scan compliance data and audit findings in addition to vulnerability data?

The standard Tenable spoke primarily focuses on vulnerability data import, but Tenable's API provides access to compliance scan results and audit findings that can be imported through custom REST message configurations. You'll need to develop additional integration logic to map compliance findings to appropriate ServiceNow tables, such as the Audit Management or GRC modules if licensed. Consider creating separate flows for compliance data import since the data structures and processing requirements differ significantly from vulnerability management workflows, and compliance findings typically require different approval and remediation processes.

How can I customize vulnerability prioritization beyond standard CVSS scores to include business context from ServiceNow?

ServiceNow's vulnerability management includes calculated fields that combine CVSS scores with business impact ratings derived from affected CI relationships and business service criticality. You can create custom scoring algorithms using Business Rules or Flow Designer that multiply technical severity with factors like service tier, customer impact, and business unit priority stored in your CMDB. Advanced implementations can incorporate real-time business context such as current change freeze periods, maintenance windows, or service performance metrics to dynamically adjust vulnerability priority scores and ensure remediation efforts align with business operations.

What ServiceNow modules and plugins are required beyond the base Vulnerability Response application for full Tenable integration functionality?

Core functionality requires the Vulnerability Response plugin (com.snc.vuln_response) and IntegrationHub Professional license, but advanced features benefit from additional modules including Discovery and Service Mapping for automated CI correlation, IT Asset Management for comprehensive asset lifecycle integration, and Security Operations for threat intelligence correlation. Organizations implementing compliance workflows should consider the GRC plugins for policy and audit management integration. The Configuration Management Database (CMDB) foundation is essential for proper asset correlation, and Change Management integration requires the standard Change Management plugin for remediation workflow automation.

Can the integration automatically create Security Incidents in ServiceNow for critical vulnerabilities discovered by Tenable scans?

Yes, you can configure business rules or Flow Designer workflows that automatically create Security Incident records when vulnerabilities exceeding defined CVSS thresholds are imported from Tenable, particularly useful for critical findings that require immediate security team response. The incident creation logic can include automatic assignment to security analysts, integration with on-call schedules, and escalation workflows based on vulnerability characteristics and affected asset criticality. Security incidents can be linked to the underlying vulnerability records and associated remediation tasks to provide complete visibility into the response process from initial detection through final resolution and validation.

Test Your Knowledge

Quick 3-question quiz — see how your ServiceNow skills stack up.

Question 1 of 3Performance

A list view on a table with millions of records is slow. Best fix?

Select an answer to continue