
CVE-2026-31431 - 교정 가이드 및 보호 조치
이 저장소는 CVE-2026-31431(일명 Copy Fail) 취약점을 문서화하고, 잠재적으로 노출된 Linux 시스템을 위한 방어적 조치(remédiation) 절차를 제공합니다.
⚠️ 이 저장소는 엄격하게 방어, 승인된 감사, 강화 및 조치에 중점을 둡니다.
악용 절차를 제공하지 않으며, 타 시스템을 침해하는 데 사용되어서는 안 됩니다.
CVE-2026-31431 / Copy Fail은 Linux 커널의 로컬 권한 상승 취약점입니다.
이는 커널의 암호화 하위 시스템, 특히 AF_ALG 사용자 인터페이스와 algif_aead 모듈과 관련이 있습니다. 이 결함은 2017년 Linux 커널의 AEAD 경로에 도입된 최적화와 관련이 있습니다. 특정 조건에서 권한이 없는 로컬 사용자는 읽기 가능한 파일(특히 setuid 바이너리)의 페이지 캐시(page cache) 에 대한 제어된 쓰기를 유발할 수 있으며, 이는 root로의 권한 상승으로 이어질 수 있습니다.
이 취약점은 CVSS v3.1 점수 7.8로 High(높음) 등급으로 간주됩니다.
| 항목 | 세부 사항 |
|---|---|
| CVE | CVE-2026-31431 |
| 공개 이름 | Copy Fail |
| 유형 | 로컬 권한 상승, LPE |
| 구성 요소 | Linux 커널 암호화 하위 시스템 |
| 관련 모듈 | algif_aead |
| 인터페이스 | AF_ALG |
| 관련 메커니즘 | AEAD, authencesn, splice(), 페이지 캐시 |
| CVSS v3.1 점수 | 7.8 High |
| 필요한 권한 | 권한 없는 로컬 계정 |
| 사용자 상호 작용 | 없음 |
| 영향 | 높은 기밀성, 무결성 및 가용성 |
공개 소스에 따르면 2017년 최적화 이후 취약한 브랜치에서 파생된 커널을 탑재한 Linux 배포판이 노출될 수 있습니다.
공개 게시물에서 언급된 플랫폼의 예:
| 배포판 | 공개적으로 테스트된 커널 버전 예 |
|---|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 |
| RHEL 10.1 | 6.12.0-124.45.1.el10_1 |
| SUSE 16 | 6.12.0-160000.9-default |
| Debian | 커널 버전 및 보안 상태에 따라 다름 |
| AlmaLinux / Rocky Linux / Oracle Linux | 커널 버전 및 공급업체 백포트에 따라 다름 |
정확한 상태는 커널 버전, 공급업체, 보안 백포트 및 이미 적용된 패치에 따라 다릅니다.
이 취약점은 신뢰할 수 없는 사용자 또는 워크로드가 로컬 셸 또는 공유 실행 환경에 접근할 수 있는 환경에서 특히 위험합니다.
우선 순위가 높은 환경:
주요 위험:
root로의 로컬 권한 상승uname -a
uname -r
lsmod | grep algif_aead || true
sudo lsof -nP | grep AF_ALG || true
dpkg -l | grep -E '^ii\\s+linux-image|^ii\\s+linux-modules'
rpm -qa | grep -E '^kernel|^kernel-core'
rpm -qa | grep -E '^kernel'
우선 옵션: 공급업체 커널 패치 적용 올바른 조치는 배포판에서 제공하는 패치된 커널을 설치한 다음 해당 커널로 재부팅하는 것입니다.
sudo apt update
sudo apt full-upgrade -y
sudo reboot
sudo dnf update -y kernel kernel-core kernel-modules
sudo reboot
sudo zypper refresh
sudo zypper patch
sudo reboot
# 재부팅 후:
uname -r
패치된 커널을 아직 사용할 수 없거나 즉시 재부팅이 불가능한 경우 임시 완화 조치를 적용합니다.
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo modprobe -r algif_aead 2>/dev/null || true
sudo rmmod algif_aead 2>/dev/null || true
sudo update-initramfs -u
sudo dracut -f
sudo mkinitrd
sudo reboot
sudo modprobe algif_aead
echo $?
일부 커널에서는 모듈이 커널에 직접 컴파일되어 모듈 형태로 로드/언로드할 수 없습니다.
grep CONFIG_CRYPTO_USER_API_AEAD /boot/config-$(uname -r)
CONFIG_CRYPTO_USER_API_AEAD=m
구성 요소가 모듈입니다. /etc/modprobe.d/를 통한 완화가 적용 가능합니다.
CONFIG_CRYPTO_USER_API_AEAD=y
구성 요소가 커널에 통합되어 있습니다. modprobe.d를 통한 완화만으로는 충분하지 않습니다.
이 경우 다음을 우선 사용합니다:
일부 소스에서는 다음과 같은 커널 옵션을 가능한 우회 방법으로 언급합니다:
initcall_blacklist=algif_aead_init
일반화 전에 반드시 프로덕션 환경 밖에서 테스트해야 합니다. 이 옵션은 커널, 배포판 및 부팅 구성에 따라 다를 수 있습니다.
Docker, Podman, Kubernetes 및 CI/CD의 경우 신뢰할 수 없는 워크로드가 AF_ALG 소켓을 열 가능성을 줄여야 합니다.
sudo lsof -nP | grep AF_ALG || true
lsmod | grep algif_aead || true
find / -perm -4000 -type f 2>/dev/null
sudo ausearch -f /usr/bin/su 2>/dev/null || true
sudo auditctl -w /usr/bin/su -p x -k su_exec_monitoring
sudo ausearch -k su_exec_monitoring
last -a
lastlog
getent passwd
sudo find /etc/cron* -type f -ls 2>/dev/null
sudo find /root /home -name authorized_keys -type f -ls 2>/dev/null
sudo journalctl --since "48 hours ago"
#!/usr/bin/env bash
set -euo pipefail
echo "[+] CVE-2026-31431 - algif_aead 임시 완화"
if [[ $EUID -ne 0 ]]; then
echo "[-] 이 스크립트는 root로 실행해야 합니다."
exit 1
fi
echo "[+] 활성 커널 버전: $(uname -r)"
echo "[+] algif_aead 로딩 영구 비활성화"
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf
echo "[+] 모듈 언로드 시도"
modprobe -r algif_aead 2>/dev/null || true
rmmod algif_aead 2>/dev/null || true
if command -v update-initramfs >/dev/null 2>&1; then
echo "[+] Debian/Ubuntu initramfs 업데이트"
update-initramfs -u
elif command -v dracut >/dev/null 2>&1; then
echo "[+] dracut을 통한 initramfs 업데이트"
dracut -f
elif command -v mkinitrd >/dev/null 2>&1; then
echo "[+] mkinitrd를 통한 initramfs 업데이트"
mkinitrd
else
echo "[!] 알려진 initramfs 도구가 감지되지 않았습니다. 수동으로 확인하세요."
fi
echo "[+] 확인"
lsmod | grep algif_aead && echo "[!] 모듈이 아직 로드됨" || echo "[OK] 모듈이 로드되지 않음"
echo "[+] 재부팅 권장."
이는 다음을 대체하지 않습니다:
패치된 커널 설치
패치된 커널로 재부팅
공급업체 상태 검증
침해가 의심되는 경우 사후 분석
또한 AF_ALG 암호화 인터페이스를 사용하도록 명시적으로 구성된 일부 소프트웨어에 영향을 줄 수 있습니다.
Theori / Xint Code — Copy Fail 기술 분석 https://xint.io/blog/copy-fail-linux-distributions Theori PoC GitHub 저장소 https://github.com/theori-io/copy-fail-CVE-2026-31431 NVD — CVE-2026-31431 https://nvd.nist.gov/vuln/detail/CVE-2026-31431 CERT-EU — 보안 권고 2026-005 https://cert.europa.eu/publications/security-advisories/2026-005/ Ubuntu Security — CVE-2026-31431 https://ubuntu.com/security/CVE-2026-31431 Debian Security Tracker — CVE-2026-31431 https://security-tracker.debian.org/tracker/CVE-2026-31431 SUSE CVE Tracker — CVE-2026-31431 https://www.suse.com/security/cve/CVE-2026-31431.html Tenable FAQ — Copy Fail https://www.tenable.com/blog/copy-fail-cve-2026-31431-frequently-asked-questions-about-linux-kernel-privilege-escalation
이 저장소는 다음 목적으로만 제공됩니다:
승인되지 않은 공격적 사용은 불법이며 이 저장소의 목적에 반합니다.