반응형

REDIS 취약점 모음 — CVE-2025-49844 / CVE-2025-46817 / CVE-2025-46818 / CVE-2025-46819
1️⃣ 개요
본 문서는 Redis에서 보고된 Lua 스크립트 관련 취약점 4건(CVE-2025-49844, CVE-2025-46817, CVE-2025-46818, CVE-2025-46819)에 대해 요약하고, 실무에서 적용 가능한 탐지·완화·패치 절차 및 운영 권장사항을 제공합니다.
2️⃣ 취약점 요약
| CVE | 요약 | 영향 |
|---|---|---|
| CVE-2025-49844 | Lua 스크립트로 인해 원격 코드 실행(Remote Code Execution, RCE) 가능성. | 높음 — RCE |
| CVE-2025-46817 | Lua 스크립트로 인한 정수 오버플로우 및 잠재적 RCE. | 높음 — 정수 오버플로우 → RCE 가능성 |
| CVE-2025-46818 | Lua 스크립트가 다른 사용자의 컨텍스트에서 실행될 수 있음(권한·영역 격리 실패). | 중~높음 — 권한 격리 실패 |
| CVE-2025-46819 | Lua 스크립트로 인한 범위를 벗어난 읽기(out-of-bounds read) 오류. | 중 — 정보 누출/비정상 동작 |
3️⃣ 영향 범위
- Lua 스크립트를 사용하는 Redis 서버와 이를 호출하는 클라이언트/애플리케이션
- 공격자는 악의적 Lua 페이로드를 제출하거나, 기존 Lua 스크립트 입력값을 조작하여 취약점을 트리거할 수 있음
- 공용(인터넷 노출) Redis 인스턴스는 특히 위험 — 인증/ACL이 미흡할 경우 원격 악용 가능성 높음
4️⃣ 탐지(Detection) — 빠르게 점검할 것
다음 명령과 절차로 의심지표를 확인합니다 (운영 환경 영향 고려하여 읽기 전용 명령 우선).
# 1) Redis 버전 확인 (서버 및 클라이언트 라이브러리 확인)
redis-cli INFO server
# 또는
redis-server --version
# 2) Lua 스크립트 목록 및 최근 SCRIPT LOAD 기록 검사
redis-cli SCRIPT EXISTS
# (로그에서 SCRIPT LOAD/ EVAL 호출 기록 확인)
# 3) 최근 CLIENT LIST 확인 (의심 연결 체크)
redis-cli CLIENT LIST
# 4) CONFIG 값 확인 (외부 노출, protected-mode, requirepass 등)
redis-cli CONFIG GET requirepass
redis-cli CONFIG GET protected-mode
# 5) MONITOR (읽기 전용 샘플링, 주의: 성능 영향)
redis-cli MONITOR
주의: MONITOR 명령은 높은 부하를 유발할 수 있으므로 짧은 시간 동안만 사용하세요. 가능하면 복제/스테이징 인스턴스에서 조사하세요.
5️⃣ 완화 및 대응 권장 조치
- 즉시 패치 적용 — Redis와 사용 중인 클라이언트/라이브러리(특히 Lua 엔진 연동 부분)를 공급자 권고대로 최신 버전으로 업데이트하세요.
- 네트워크 단단히 막기 — Redis 포트(기본 6379)는 내부망 전용으로 제한, 방화벽/보안그룹으로 외부 접근 차단.
- 인증 및 ACL 적용 — requirepass / ACL을 활성화하고 최소 권한 원칙을 적용하세요.
- 스크립트 실행 제한 — 가능하면 애플리케이션에서 EVAL/EVALSHA 사용을 최소화하고 신뢰된 스크립트만 허용. 필요 시 스크립트 검증(화이트리스트) 적용.
- 명령 재명명(옵션) — 위험 명령(EVAL 등)을 rename-command로 변경하여 직접 호출을 어렵게 만드세요. 예: redis.conf 에서 `rename-command EVAL ""` 또는 난수명으로 변경.
- 분리된 실행 환경 — Redis를 컨테이너/네임스페이스로 격리, 시스템 권한을 낮춰 실행(전용 계정, chroot 등).
- 로그 및 모니터링 강화 — SCRIPT LOAD, EVAL 호출, 비정상 연결 패턴을 SIEM/IDS로 수집·경보 설정.
- 복구 계획 수립 — 의심스러운 침해 발생 시 신속히 인스턴스 격리(네트워크 단절), 메모리·디스크 덤프 확보, 백업에서 복구 시나리오 준비.
6️⃣ 실무 대응 예제
아래는 즉시 적용 가능한 안전한 예제 명령들(운영환경 적용 전 스테이징에서 검증)
# 1) Redis 접근을 내부망으로 제한 (예: 방화벽)
# 예: linux nftables/iptables 또는 클라우드 보안그룹에서 포트 6379 차단
# 2) requirepass 설정(임시)
redis-cli CONFIG SET requirepass "StrongPasswordHere"
# 3) EVAL 등 위험 명령 비활성화(재명명) - redis.conf 변경 권장
# redis.conf 예:
# rename-command EVAL ""
# rename-command EVALSHA ""
# 4) ACL 예제 (Redis 6 이상)
# 사용자 생성 및 권한 최소화
redis-cli ACL SETUSER limited_user on >password ~keys:* +get +set -eval
# 5) SCRIPT FLUSH (주의: 애플리케이션 의존성 확인)
# 등록된 스크립트를 모두 제거 (서비스 영향 주의)
redis-cli SCRIPT FLUSH
중요: `SCRIPT FLUSH`, `rename-command` 등은 시스템 정상 동작에 영향이 있으므로 변경 전 영향 범위를 반드시 확인하세요.
7️⃣ 기본 오류 대응 4단계
- 외부 노출 확인 — Redis 포트가 외부에 노출되어 있지 않은지(방화벽/보안그룹) 빠르게 확인
- 역할 비활성화 — 불필요한 관리자 계정/스크립트 권한을 잠시 제한
- 포트 차단 — 의심스러운 트래픽이 감지되면 해당 인스턴스의 네트워크 접근을 즉시 차단
- 로그 모니터링 — SCRIPT LOAD, EVAL 호출 패턴 및 비정상 연결을 집중 모니터링
8️⃣ 포렌식·보고 및 에스컬레이션
- 침해 정황 발견 시 인스턴스 격리(네트워크 분리) 후 메모리·디스크 이미지 확보
- 스크립트/키 변경 내역, CLIENT LIST, CONNECT/COMMAND 로그 등 증거 수집
- 내부 보안 관제(CERT) 또는 공급업체/오픈소스 커뮤니티에 보고
9️⃣ 운영 권장 및 방지 대책 요약
- Redis는 인터넷에 직접 노출하지 마세요(내부전용/프라이빗 네트워크에서만 운영)
- ACL, 인증, 명령 재명명 등 최소 권한·방어적 설정 적용
- Lua 스크립트는 신뢰된 코드만 사용, 입력값 검증을 철저히 수행
- 정기적인 취약점 점검·패치 운영 프로세스 운영
🔟 참고(짧게)
이 문서는 취약점 식별 및 긴급 완화에 초점을 맞춘 실무 가이드입니다. Redis 공식 공지나 CVE 원문, 공급업체 권고를 병행 확인하시고, 패치를 최우선으로 적용하시기 바랍니다.
반응형
LIST
'IT 소식 뉴스 > CVE CODE' 카테고리의 다른 글
| Apache Tomcat 취약점 CVE-2025-52434 / 52520 / 53506 (0) | 2025.11.04 |
|---|---|
| CVE-2025-41244 — VMware Aria Operations 권한 상승 취약점 (2) | 2025.11.03 |
| [PostgreSQL] CVE-2025-1094 — quoting API SQL Injection (0) | 2025.11.02 |
| CVE-2025-61932 — Lanscope Endpoint Manager 원격 코드 실행 취약점 (1) | 2025.11.02 |
| CVE-2024-5535 | OpenSSL SSL_select_next_proto 권한 상승 취약점 (4) | 2025.10.30 |
