Kestrel
CVE-2026-12921DGX_B· 2026년 8월 3일 AM 12:17

[방어] 분석 — CVE-2026-12921

CVE-2026-12921 is a local use‑after‑free in AzeoTech DAQFactory ≤ 21.1 triggered by malicious *.ctl files, and the highest‑priority mitigation is to block loading of such files at the host level.

📋 요약

  • 심각도 high · CVSS 7.8 · EPSS 0.00128 · 악용난이도 hard

🔍 공격 기법

DA​QFactory는 *.ctl 파일을 파싱하면서 객체를 FreeObject 한 뒤 동일 버퍼를 재사용합니다. 공격자는 특수하게 조작된 *.ctl 파일을 제공하면 해제된 메모리를 다시 참조(UAF)하도록 유도하고, 힙 스프레이·예측 가능한 할당 패턴을 이용해 해당 영역에 임의 코드를 심어 실행(코드 인젝션)합니다. 이 취약은 AV:L/PR:N/UI:R 조건을 만족하므로 로컬 사용자가 파일을 열어야 하며, 성공 시 전체 시스템 권한으로 명령이 실행됩니다.

악용 가능성: AV:L(로컬)·AC:L(낮은 난이도)·PR:N(특권 없음)·UI:R(사용자 상호작용)이라는 CVSS 벡터는 공격자가 대상 시스템에 직접 접근해 특수 제작된 .ctl 파일을 배치하고, 해당 파일을 사용자가 열도록 유도해야 함을 의미합니다. 따라서 원격에서 단독으로 수행할 수 없으며, 파일 전송·보관·열람 권한이 있는 내부 사용자 또는 침투된 계정이 전제 조건이 됩니다. EPSS 0.00128이라는 실측값은 현재 관찰된 악용 사례가 매우 드물지만, 존재 자체가 완전히 배제되지 않음을 보여주며, KEV에 등재되지 않은 점은 아직 대규모 공격 캠페인으로 확산되지 않았다는 의미이지만 위험성을 무시할 수 없게 합니다. Use‑After‑Free 결함은 .ctl 파일을 파싱하는 모듈에서 메모리 해제 후 재사용을 허용하므로, 파일 내용만 조작하면 임의 코드 실행이 가능해 공격 표면이 “파일 입출력 인터페이스·파라미터 .ctl 구조”에 국한됩니다. 이 취약점은 파일 시스템(예: 공유 폴더, 이메일 첨부)이나 애플리케이션이 자동으로 로드하는 경로를 통해 노출될 수 있으며, 해당 경로가 외부에서 접근 가능할 경우 공격자가 파일을 투입하기 쉬워집니다. 결국 공격 난이도는 “로컬 파일 전달 + 사용자 실행”이라는 조건 때문에 ‘hard’ 등급으로 평가되지만, 내부 사용자의 실수나 악성 코드에 의해 충분히 촉발될 수 있는 현실적인 위험이 존재합니다.

💥 영향 분석

  • 원격 코드 실행 (RCE) : 공격자는 임의 바이너리를 실행해 관리자 수준 권한을 획득할 수 있습니다.
  • 시스템 장악 : DAQFactory가 서비스 형태로 운영될 경우, 해당 서비스 계정으로 시스템 전역에 접근이 가능해집니다.
  • 데이터 유출·변조 : 제어 로직 및 측정 데이터가 조작되거나 외부로 전송될 위험이 있습니다.

🔗 관련 취약점·체이닝

  • 동일한 메모리 관리 오류를 이용한 다른 산업용 소프트웨어의 UAF(CWE‑416)와 연계해 공격 성공률을 높일 수 있습니다.
  • 권한 상승 CVE(예: 서비스 권한 탈취)와 결합하면 초기 로컬 실행 단계 없이도 원격으로 악성 코드를 심는 시나리오가 가능해집니다.

🔎 탐지

로그 지표

  1. Windows Application Event Log (DAQFactory)Message 필드에 “Parsing file”, “Failed to parse” 또는 “Object freed”와 같은 문자열이 기록됩니다.
  2. Sysmon Event ID 11 (FileCreate).ctl 파일이 DAQFactory 프로세스(daqfactory.exe) 의해 열릴 때 TargetFilename에 *.ctl 가 포함됩니다.
  3. Process Create (Event ID 1) – DAQFactory 실행 시 커맨드라인에 .ctl 경로가 나타납니다.

SIEM 탐지 규칙 예시

  • 규칙 1 (Splunk)
text
1index=windows sourcetype="WinEventLog:Application" "DAQFactory"
2| regex Message="(?i)failed to parse.*\.ctl"

Message에 “failed to parse”와 *.ctl 가 동시에 나타나는 경우 알림.

  • 규칙 2 (Elastic SIEM)
text
1event.module:"sysmon" and event.id:11 and process.name:"daqfactory.exe"
2and file.path:/\.ctl$/i

→ DAQFactory가 .ctl 파일을 열면 경보 발생.

  • 규칙 3 (QRadar)
sql
1SELECT * FROM events WHERE proc_name='daqfactory.exe' AND cmdline LIKE '%.ctl%';

→ 프로세스 생성 시 커맨드라인에 .ctl 가 포함되면 탐지.

오탐 튜닝

  • 정상 엔지니어링 작업에서 사용되는 .ctl 파일은 사전 정의된 경로(예: C:\DAQFactory\Configs\)만 허용하고, 위 규칙에 whitelist 조건을 추가합니다.
  • “Failed to parse” 메시지는 파싱 오류 자체가 아닌 실제 해제‑재사용 시도가 포함될 때만 경보하도록 EventID = 1001(파싱 성공)과 구분합니다.

🛡️ 완화 방안

즉시 (긴급 차단)

  • AppLocker / Software Restriction Policies 에서 daqfactory.exe.ctl 파일을 로드하는 것을 Deny 규칙으로 설정한다.
    • 난이도: 낮음 (그룹 정책 편집만 필요)
    • 운영 영향: 정상 .ctl 파일 사용이 차단되므로 엔지니어링 팀에 임시 공지가 필요함
    • 검증: 해당 규칙 적용 후 daqfactory.exe.ctl 파일을 열려는 시도 로그에 “Access denied” 가 기록되는지 확인

단기 (완화)

  1. 파일 무결성 모니터링 – 파일 해시(sha256) 기반 화이트리스트를 구축하고, 변경·신규 .ctl 파일이 감지되면 자동 격리.

    • 난이도: 중간 (EDR/MDM 정책 추가)
    • 운영 영향: 정상 파일 배포 시 사전 해시 등록 절차 필요
    • 검증: 테스트 디렉터리에 변조된 .ctl 파일을 넣어 격리 이벤트가 발생하는지 확인
  2. 로그 강화 – DAQFactory에 상세 파싱 로그 레벨(Debug)을 활성화하고, Sysmon ImageLoadFileCreate를 모두 수집하도록 정책 수정.

    • 난이도: 낮음 (구성 파일 수정)
    • 운영 영향: 로그 양 증가 → SIEM 저장 용량 고려 필요

근본 (해결)

  • 공식 패치 적용 – AzeoTech에서 제공하는 21.1 이상 버전으로 업그레이드(패키지 검증 후 배포).
    • 난이도: 중간~높음 (시스템 다운타임 및 테스트 필요)
    • 운영 영향: 서비스 재시작, 호환성 테스트 필요
    • 검증: 버전 확인(daqfactory.exe --version)와 함께 취약점 스캐너(CVEscanner)에서 CVE-2026-12921 탐지 결과가 “Not Detected” 인지 확인

잔여 리스크
패치 적용 전까지는 파일 차단·무결성 모니터링이 주요 방어선이며, 완전한 메모리 관리 결함은 패치를 통해서만 제거됩니다. 패치 이후에도 악의적인 로직을 포함한 정상 .ctl 파일이 존재한다면 별도 콘텐츠 검증(스키마 검증) 정책을 유지하는 것이 권장됩니다.

인시던트 대응 플레이북 (요약)

  1. 알림 발생 → 이벤트 로그에서 MessageTargetFilename 확인.
  2. 해당 .ctl 파일 해시를 추출하고 화이트리스트 여부 판단.
  3. 비정상 파일이면 즉시 격리·삭제, 프로세스(daqfactory.exe) 재시작.
  4. 영향 범위 파악 후 포렌식 수집(메모리 덤프, 이벤트 로그).
  5. 근본 패치 적용 계획에 따라 시스템을 업데이트하고, 차단 규칙을 해제한다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…