
CVE-2026-31431 (Copy Fail)에 대한 조치를 OCI Linux 인스턴스에서 업데이트된 커널 패키지 설치, 재부팅, 여러 배포판에서 수정 사항 확인을 통해 자동화하는 Ansible 플레이북입니다.
이 플레이북은 OCI의 Linux 인스턴스에서 CVE-2026-31431(일명 Copy Fail)을 수정합니다.
CVE-2026-31431은 AF_ALG 사용자 공간 암호화 API에서 사용되는 Linux 커널 algif_aead 구현의 로컬 권한 상승 문제입니다. 이 플레이북은 주요 수정 경로를 적용합니다: 업데이트된 벤더 커널 패키지를 설치하고 인스턴스를 재부팅하여 수정된 커널을 실행합니다.
참고자료:
첫 번째 플레이는 OCI Cloud Shell 또는 OCI CLI가 구성된 다른 머신에서 로컬로 실행됩니다. 하드코딩된 OCI 인스턴스 OCID를 연결 가능한 Ansible 호스트로 변환하기 위해 각 인스턴스를 읽고, 기본 VNIC를 찾은 후 prefer_public_ip에 따라 개인 IP 또는 공인 IP 주소를 선택합니다.
두 번째 플레이는 Ansible의 구성된 forks 제한에 따라 병렬로 수정된 Linux 호스트에 패치를 적용합니다:
uname -r로 현재 실행 중인 커널을 캡처합니다.kernel* 및 kernel-uek*에 대한 또는 업데이트.dnfyumapt-get --only-upgrade.zypper patch --category security.재부팅 후 플레이북은 대상 배포판의 패키지 및 리포지토리 도구를 사용하여 수정을 확인합니다:
rpm으로 실행 중인 커널을 매핑하고, dnf check-update 또는 yum check-update로 보류 중인 커널 업데이트를 확인하며, updateinfo로 CVE 권고 메타데이터를 확인하고, 설치된 커널 패키지 변경 로그를 검색합니다.dpkg-query로 실행 중인 커널을 매핑하고, apt-get 시뮬레이션으로 보류 중인 커널 업데이트를 확인하며, 설치된 커널 패키지 변경 로그를 검색합니다.rpm으로 실행 중인 커널을 매핑하고, zypper list-updates로 보류 중인 커널 업데이트를 확인하며, zypper list-patches --cve로 CVE 패치 메타데이터를 확인하고, 설치된 커널 패키지 변경 로그를 검색합니다.엄격한 통과/실패 검사는 호스트가 재부팅 후 패키지 관리 커널을 실행하고 있으며 구성된 리포지토리에서 보류 중인 커널 패키지 업데이트가 없는지 확인하는 것입니다. 배포판이 해당 메타데이터를 게시하는 경우 CVE 관련 권고 및 변경 로그 출력이 수집됩니다.
실행이 끝나면 localhost 요약 플레이가 보고합니다:
기본 출력은 간결한 호스트별 요약입니다. 전체 원시 검증 데이터도 출력하려면 다음을 추가하세요:
-e show_detailed_cve_evidence=true
ansible-playbook -i localhost, patch_cve_2026_31431.yml \
-e oci_region=us-ashburn-1 \
-e ansible_user=opc \
-e ansible_ssh_private_key_file=/path/to/private_key \
-e prefer_public_ip=false
Cloud Shell 또는 Ansible 제어 호스트가 공인 IP 주소를 통해 인스턴스에 도달해야 하는 경우 prefer_public_ip=true를 사용하세요. 제어 호스트가 개인 네트워크 연결이 가능한 경우 prefer_public_ip=false를 사용하세요.
플레이북은 동적으로 발견된 대상에 대해 엄격한 SSH 호스트 키 검사를 비활성화하여 새로 확인된 인스턴스 IP에 대해 비대화식으로 실행할 수 있도록 합니다.
성공적인 실행은 CVE-2026-31431 verification passed for all targets.로 끝나야 합니다. 전체 요약은 Host: ... 아래에 그룹화된 필드별 한 줄을 출력하며, 이전 커널, 재부팅 후 설치된 커널, kernel-uek-core-...와 같은 실행 중인 커널 패키지, CVE check: PASS를 포함합니다. 커널 업데이트가 여전히 제공되어 검증이 실패하는 경우 호스트가 올바른 벤더 보안 리포지토리에 도달할 수 있는지 확인하고 플레이북을 다시 실행하세요.