
Плейбук Ansible для исправления CVE-2024-3094
Предоставленный Ansible playbook устраняет эту уязвимость следующим образом:
package_facts собирает информацию об установленных пакетах, включая их версии.debug извлекает базовую версию пакета xz-utils из собранных данных.package устанавливает известную безопасную версию (safe_version) пакета xz-utils, если текущая версия системы соответствует уязвимым версиям (5.6.0 или 5.6.1).tasks/main.yaml: Этот файл определяет основные задачи playbook.
package_facts.debug.safe_version) с помощью package, если система имеет уязвимую версию. ---
- name: Gather package facts
ansible.builtin.package_facts:
manager: auto
register: package_facts
- name: Print the current version of {{ package_name }}
ansible.builtin.debug:
var: package_facts.ansible_facts.packages['{{ package_name }}'][0].version.split('-')[0]
register: version_check
- name: Install safe version of {{ package_name }}
ansible.builtin.package:
name: '{{ package_name }}={{ safe_version }}'
state: present
when: version_check=={{non_safe_version1}} or version_check=={{non_safe_version2}}
defaults/main.yaml: Этот файл определяет переменные по умолчанию, используемые во всем playbook.
package_name: Имя пакета, который нужно исправить (установлено xz-utils).non_safe_version1: Первая уязвимая версия (установлено 5.6.0).non_safe_version2: Вторая уязвимая версия (установлено 5.6.1).safe_version: Известная безопасная версия для установки (установлено 5.4.6). ---
package_name: xz-utils
non_safe_version1: 5.6.0
non_safe_version2: 5.6.1
safe_version: 5.4.6
playbook.yaml: Этот файл определяет общий поток выполнения.
machines.xz-utils_checkout, которая, вероятно, содержит задачи, специфичные для обновления пакета xz-utils (здесь не предоставлены). ---
- name: patch xz-utils
hosts: machines
roles:
- xz_utils_patch