Ansible vulnerability management and incident response policy

Purpose

This policy establishes a structured, repeatable framework for identifying, triaging, remediating, and disclosing security vulnerabilities and incidents across the Ansible ecosystem. It ensures that confirmed vulnerabilities are addressed according to severity and impact, that coordinated disclosure protects users before details become public, and that the project maintains the trust of its community and downstream consumers.

Scope

This policy applies to the same projects and resources covered by the Ansible security policy. In addition, this policy covers the processes and workflows for the Ansible Security Team’s handling of vulnerability reports, triage, remediation, and disclosure.

Third-party collections or plugins hosted outside the GitHub organizations listed in the security policy are out of scope but are encouraged to adopt compatible practices.

Roles and responsibilities

Role

Responsibilities

Ansible Security Team

First-line triage of all vulnerability reports; coordination of fixes and disclosure timelines; CVE management; final classification decisions when disputes arise.

Project Maintainers

Develop and validate fixes for vulnerabilities within their components; participate in coordinated disclosure; review and merge security patches.

Release Engineering

Produce and distribute patched releases for some projects; coordinate release timing with disclosure schedules.

Community, including Security Researchers

Report vulnerabilities through designated private channels; adhere to coordinated disclosure timelines.

Users

Monitor advisories; apply patches within recommended timelines; report regressions.

Vulnerability reporting

For complete details on how to report a vulnerability, what to include in a report, and what qualifies as a reportable vulnerability, see the Ansible security policy.

All reports MUST be submitted by email to: security@ansible.com

Security vulnerabilities and security incidents MUST NOT be reported through any other mechanism, including public GitHub issues, Ansible Forum, or Ansible Matrix groups.

Triage and severity classification

Triage process

Upon receipt of a vulnerability report, the Ansible Security Team will:

  1. Acknowledge the report according to the response timeline in the Ansible security policy.

  2. Validate the report by reproducing the issue or confirming the technical basis.

  3. Classify severity using the framework below.

  4. Assign the issue to the appropriate project maintainers for resolution.

  5. Open a private tracking issue for internal coordination.

Severity levels

Severity classification follows a risk-based model considering exploitability, impact, and exposure. The Ansible Security Team follows the Red Hat severity ratings.

Runtime context consideration

Not all reported vulnerabilities carry equal risk. When prioritizing remediation, the Ansible Security Team will consider:

  • Whether the vulnerable code path is actually reachable at runtime in typical deployments.

  • Whether the affected component is loaded in production versus only present as an unused dependency.

  • The attack surface exposure (internet-facing vs. internal-only components).

This approach aligns with emerging industry guidance that static CVSS scores alone are insufficient for prioritization and that runtime context can reduce actionable findings significantly.

Remediation process

Fix development

  1. Embargoed fixes are developed in private branches or forks to prevent premature disclosure.

  2. All security patches undergo peer review by at least one other maintainer with relevant domain knowledge.

  3. Patches are tested against the reproduction steps from the original report and validated against regression test suites.

Release and distribution

  1. Security fixes are distributed through the project’s normal release channels (such as Automation Hub, container images, Galaxy, PyPI).

  2. For Critical and High severity issues, out-of-band patch releases may be issued outside the regular release cadence.

  3. Release notes MUST reference the associated CVE ID(s) and advisory.

Backporting

Backports are made according to the Ansible security policy.

Coordinated vulnerability disclosure

Disclosure model

The Ansible Security Team follows a Coordinated Vulnerability Disclosure (CVD) model aligned with OpenSSF guidance:

  1. Embargo Period: Vulnerability details remain confidential until a fix is available and released.

  2. Disclosure Timing: Public disclosure occurs simultaneously with or immediately after the availability of a patched release.

  3. Pre-notification: For Critical severity issues affecting widely-deployed components, the Ansible Security Team may provide advance notice to major downstream users under embargo, up to 7 days before public disclosure.

Disclosure types

Type

When Used

Standard Disclosure

Fix released, advisory published, CVE record updated – all at the same time.

Progressive Disclosure

Pre-notification to select downstream partners under embargo, followed by full public disclosure upon release. Used for Critical and High severity issues with broad ecosystem impact.

Accelerated Disclosure

If evidence of active exploitation emerges, disclosure may be accelerated with available mitigations even before a complete fix is ready.

Researcher coordination

  • Reporter recognition is described in the Ansible security policy.

  • The Ansible Security Team coordinates disclosure timing with the reporter.

  • Reporters are asked to refrain from public disclosure until the agreed-upon date.

CVE Management

CVE assignment

  • The Ansible Security Team requests CVE IDs for all confirmed vulnerabilities.

  • CVE IDs are reserved only after the Ansible Security Team confirms that the report constitutes a genuine vulnerability.

  • Where Red Hat operates as a CVE Numbering Authority (CNA), CVE records are published within 24 hours after the associated security advisory goes public, but never before.

CVE record requirements

Published CVE records MUST follow the CVE record format as defined by the CVE program.

Dispute resolution

If a reporter or third party disputes a CVE classification or rejection:

  1. Acknowledgment of the dispute within 3 business days.

  2. Decision or extension request within 5 business days.

  3. If extended, final decision within reasonable business expectation of the extension.

  4. Unresolved disputes may be escalated to the relevant root CNA or MITRE.

Incident response

Definition

A security incident is any event indicating that Ansible project infrastructure, build systems, distribution channels, or governance accounts have been compromised or are under active attack. This is distinct from a vulnerability report (a flaw in code) and requires operational response.

Incident response steps

  1. Contain: Isolate affected systems, revoke compromised credentials, and halt affected release pipelines.

  2. Assess: Determine the scope, impact, and root cause of the incident.

  3. Remediate: Apply fixes, rotate credentials, rebuild affected artifacts from verified sources.

  4. Communicate: Notify affected parties. For incidents affecting released artifacts, issue a public advisory.

  5. Post-mortem: Conduct a blameless post-incident review. Document lessons learned and update this policy if warranted.

Communication

Advisory distribution

Security advisories are published through the channels listed in the Ansible security policy.

Policy governance

Review cycle

This policy is reviewed annually and updated as needed, or if triggered by:

  • A significant security incident or near-miss.

  • Changes to the project’s CNA status or governance structure.

  • Material changes to industry standards (for example, OpenSSF guidelines, CVE program rules).

Exceptions

Any exception to this policy requires written approval from the Ansible Security Team lead and MUST include:

  • Justification for the exception.

  • Risk assessment of the deviation.

  • Compensating controls in place.

  • Expiration date for the exception.

For discussion about the EU Cyber Resilience Act and how it applies to the Ansible ecosystem, see the CRA tag on the Ansible Forum. To follow changes and suggest improvements to Ansible security practices, see the infra-and-security tag on Ansible Forum.

Notes

The key words “MUST”, “MUST NOT”, and “SHOULD” in this document are to be interpreted as described in RFC 2119.