Kestrel
CVE-2025-69720DGX_1· 2026년 7월 10일 PM 08:16

[방어] 분석 — CVE-2025-69720

A stack-based buffer overflow in the infocmp tool of ncurses (before 6.5-20251213) requires immediate restriction of untrusted terminal description files to prevent potential arbitrary code execution.

📋 요약

  • 심각도 high · CVSS 7.3 · EPSS 0.00414 · 악용난이도 hard

🔍 공격 기법

(1) 트리거 조건: infocmp 도구가 터미널 설명 파일(terminfo)을 처리하는 과정 중, progs/infocmp.canalyze_string 함수에서 입력 값의 길이를 적절히 검증하지 않아 스택 영역에 정의된 버퍼 크기를 초과하여 데이터를 쓰는 경우 발생합니다.
(2) 공격 단계:

  • 정찰 및 준비: 공격자가 특수하게 조작된 터미널 설명 파일(terminfo file)을 생성합니다.
  • 초기 접근 및 실행: 피해자가 조작된 파일을 infocmp 명령어로 읽도록 유도합니다(UI:R 조건).
  • 영향: 버퍼 오버플로우를 통해 리턴 주소를 덮어써 제어 흐름을 변경하고, 공격자가 의도한 코드를 실행합니다.
    (3) 공격 표면: infocmp 커맨드라인 도구의 입력 파일 및 인자값.
    (4) CVSS 벡터 분석:
  • AV:L (Local): 로컬 쉘 접근 권한이 필요합니다.
  • AC:L (Low): 공격 복잡도가 낮습니다.
  • PR:N (None): 특수 권한 없이 실행 가능합니다.
  • UI:R (Required): 사용자가 조작된 파일을 처리하도록 하는 상호작용이 필수적입니다.

악용 가능성: 본 취약점의 공격 난이도는 Hard로 판단되며, 이는 AV:LUI:R 벡터가 시사하듯 공격자가 대상 시스템에 이미 로컬 접근 권한을 가지고 있어야 하며 사용자의 상호작용(특수하게 조작된 터미널 설정 파일 실행)이 전제되어야 하기 때문입니다. 공격 표면은 ncurses 라이브러리의 infocmp 커맨드라인 툴 내 analyze_string 함수이며, 특히 외부에서 입력되는 터미널 정보 파일(terminfo)의 파라미터가 트리거 포인트가 됩니다. AC:LPR:N은 일단 실행 조건이 충족되면 권한 없이도 취약점이 작동함을 의미하지만, 실제 공격 시나리오에서는 조작된 파일을 사용자가 직접 처리하도록 유도해야 하는 제약이 큽니다. EPSS 수치가 0.00414로 매우 낮고 KEV에 등재되지 않은 점은 현재 야생(In-the-wild)에서 이 경로를 통한 대규모 자동화 공격 사례가 드물다는 것을 방증합니다. 결과적으로 이론적 심각도는 높으나, 로컬 실행 환경과 사용자 유도라는 까다로운 전제 조건으로 인해 즉각적인 악용 가능성은 제한적입니다.

💥 영향 분석

(1) 기술적 위험: Memory-Corruption 유형의 취약점으로, 성공적으로 악용될 경우 프로세스의 메모리 오염을 통해 임의 코드 실행(RCE) 또는 서비스 거부(DoS) 상태를 유발할 수 있습니다.
(2) 비즈니스 영향: 로컬 사용자의 권한으로 실행되므로 해당 사용자 권한 내의 데이터 유출 및 시스템 변조가 가능하며, 관리자 권한으로 실행될 경우 시스템 전체 장악으로 이어질 수 있습니다.

🔗 관련 취약점·체이닝

  • 추정: Memory-Corruption(CWE-121) 특성상, ASLR/DEP 등 현대적 OS 보호 기법을 우회하기 위해 메모리 주소를 유출하는 'Information Disclosure' 유형의 취약점과 체이닝될 가능성이 높습니다.
  • 추정: 일반적인 로컬 권한 상승 패턴(Local Privilege Escalation)으로 이어져, 저권한 사용자가 관리자 권한을 획득하는 경로로 활용될 수 있습니다.

🔎 탐지

본 리포트는 다중 소스에서 데이터 일관성이 확인되었으며, EPSS 실측값(0.00414)과 벡터 분석 결과 exploit 등급이 'hard'로 분류되어 우선순위가 scheduled로 결정되었습니다. 이는 이론적 심각도(CVSS 7.3)에 비해 실제 야생에서의 악용 가능성은 낮음을 의미합니다.

(1) 로그 지표: Linux Auditd 또는 EDR의 프로세스 실행 로그에서 infocmp 명령어 호출 이력과 인자로 전달된 파일 경로를 확인합니다.
(2) 탐지 규칙 예시:

  • 로직: infocmp 실행 시 평소 사용하지 않는 경로(예: /tmp, /dev/shm)의 파일을 읽거나, 비정상적으로 긴 인자값이 전달되는 경우를 탐지합니다.
  • SIEM 의사코드:
    SELECT timestamp, user, command_line FROM process_logs WHERE process_name = 'infocmp' AND (command_line MATCHES '/tmp/.*' OR length(command_line) > [Threshold])
  • 정규식 예시: infocmp\s+.*\s+(\/[^ ]+)* (입력 파일 경로 추출용)
    (3) 오탐 튜닝: 시스템 관리자가 터미널 설정을 위해 정상적으로 infocmp를 사용하는 경우 오탐이 발생할 수 있습니다. 신뢰할 수 있는 관리자 계정 및 표준 terminfo 경로(/usr/share/terminfo)를 화이트리스트에 추가하여 튜닝합니다.

🛡️ 완화 방안

즉시(긴급 차단):

  • 조치: /usr/bin/infocmp 실행 권한을 제한하거나, 불필요한 경우 삭제 또는 격리합니다.
  • 난이도: 낮음 / 영향: infocmp 사용 불가 (운영 마찰 발생 가능) / 검증: which infocmp 및 실행 권한 확인 / 우선순위: 최상

단기(완화):

  • 조치: /tmp, /var/tmp 등 쓰기 가능한 공용 디렉토리에서 실행 파일이 실행되지 않도록 noexec 마운트 옵션을 적용하여 악성 파일 배포 및 실행 경로를 차단합니다.
  • 난이도: 중간 / 영향: 일부 정상 애플리케이션의 임시 파일 실행 불가 가능성 / 검증: mount | grep noexec / 우선순위: 높음

근본(해결):

  • 조치: ncurses 버전을 6.5-20251213 이상으로 업데이트합니다.
  • 난이도: 낮음 / 영향: 라이브러리 의존성 확인 필요하나 일반적 가용성 영향 없음 / 검증: ncurses 버전 체크 / 우선순위: 근본 해결책

⚖️ 위험도 / 우선순위

  • 조치: scheduled (이번 주 내)
  • 근거: CVSS=7.3 · non-KEV · EPSS=0.00414 · exploit=hard · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…