본문 바로가기
Q&A2026년 5월 3일1분 읽기

Linux io_uring 제로데이(CVE-2026-31337) 운영 서버에 어떻게 패치하나요

황
황다은
조회 1911댓글 3

오늘(5/4) 공개된 io_uring 제로데이 때문에 비상이 걸렸습니다. 운영 서버가 Ubuntu 22.04 LTS 커널 5.15 + Ubuntu 24.04 LTS 커널 6.8 섞여 있는데요, 어떤 순서로 패치하는 게 안전한가요? PoC가 다크웹에 풀렸다는 얘기가 있어서 빨리 막아야 하는데 무중단이 가능한지도 궁금합니다.

댓글 3

김김영삼6개월 전

일단 침착하게 — 핵심 정리부터 드리겠습니다.

1. 영향 범위 재확인
  • Linux 6.4 ~ 6.13이 영향 (RC1 포함)
  • 5.15·5.14는 직접 영향 없음 (단, io_uring 백포팅된 커스텀 커널이면 별도 확인)
  • 로컬 사용자 권한이 있어야 익스플로잇 가능 — 원격만으로는 X

Ubuntu 22.04 5.15 서버는 우선순위가 낮습니다. 24.04 6.8 서버부터 처리하세요.

2. 즉시 적용 가능한 임시 완화 (재부팅 없음)
# 일반 사용자만 io_uring 차단 (root는 허용)
echo 1 | sudo tee /proc/sys/kernel/io_uring_disabled

# 영구화
echo 'kernel.io_uring_disabled=1' | sudo tee /etc/sysctl.d/99-io_uring.conf
sudo sysctl --system

이 한 줄로 일반 권한 익스플로잇 경로가 막힙니다. 운영 영향이 거의 없는 워크로드라면 이 단계에서 즉시 적용하고 정식 패치를 차분히 하세요.

3. 정식 패치 (커널 업그레이드)
# Ubuntu 24.04
sudo apt update
sudo apt install --only-upgrade linux-image-generic linux-headers-generic

# 적용된 패치 버전 확인
apt list --installed 2>/dev/null | grep linux-image
# 6.8.0-58 이상이 패치된 버전

재부팅 필수입니다. Live patching(Canonical Livepatch / kpatch)이 활성화돼 있으면 재부팅 없이 적용 가능합니다 — Pro 구독 확인하세요.

황황다은(guest)6개월 전
중간에 io_uring을 쓰는 PostgreSQL 18이나 Redis 8 같은 서비스는 영향 안 받나요? 임시 완화 적용해도 괜찮은지요.
김김영삼6개월 전

좋은 질문입니다. io_uring_disabled=1은 일반 사용자(non-root)의 io_uring만 차단합니다. PostgreSQL·Redis는 보통 자기 전용 시스템 사용자(postgres·redis)로 도는데, 이 사용자들도 일반 사용자입니다.

두 가지 선택지가 있습니다:

  • 옵션 A — 안전 우선: io_uring_disabled=1 적용 + DB의 io_method를 worker로 폴백. 약간의 성능 손실(보통 10~15%) 감수.
    # postgresql.conf
    io_method = 'worker'
    io_workers = 4
  • 옵션 B — 성능 우선: 시스템 사용자만 화이트리스트로 io_uring 허용. seccomp 프로파일을 컨테이너 단위로 정교하게 잡거나, capabilities 활용. 손이 많이 가서 시간 여유 있을 때만 추천.

제 권장은 옵션 A로 24~48시간 버티기 + 그 안에 정식 패치 + 재부팅입니다. 며칠 성능 10% 떨어진다고 큰일 안 납니다, 익스플로잇 당하면 큰일 납니다.

Ctrl+Enter로 등록