Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-56799 — Reolink 데스크톱 애플리케이션의 캐시 정리 스케줄러를 통한 OS 명령 주입 취약점 | Kitploit
도구/GitHubGitHub/shinycolumn/cve-2025-56799
Persistence MechanismsVulnerability AnalysisExploitationWeb Application ExploitationMalware AnalysisBinary Exploitation
GitHubshinycolumn/cve-2025-56799

CVE-2025-56799

Reolink 데스크톱 애플리케이션의 캐시 정리 스케줄러를 통한 OS 명령 주입 취약점

저장소 보기
110개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-56799

Reolink 데스크톱 애플리케이션의 캐시 정리 스케줄러를 통한 OS 명령 주입 취약점

1. 개요

Reolink Icon
  • 이름: Reolink 데스크톱 애플리케이션
  • 버전: 8.18.12
  • 공급업체: Reolink
  • CWE: CWE-78: OS 명령에 사용되는 특수 요소의 부적절한 중화 ('OS 명령 주입')
  • CVSS: 6.5 MEDIUM
  • 벡터 문자열: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N

2. 요약

Reolink 데스크톱 애플리케이션(버전 8.18.12)에는 캐시 정리 스케줄러(coverCacheClearScheduler) 기능에 OS 명령 주입 취약점이 존재합니다. 이 애플리케이션은 %LOCALAPPDATA% 내에 있는 구성 파일에서 읽은 임시 폴더 경로를 사용하여 OS 셸 명령을 구성합니다. 이 경로 값은 적절한 입력 검증이 없으므로, 공격자는 이를 조작하여 임의의 OS 명령을 주입할 수 있습니다.

이 취약점은 매일 오전 3시에 자동으로 실행되는 스케줄러에 의해 트리거되며, 공격자에게 시스템에서의 지속성을 제공합니다. 또한, 주입된 명령은 합법적이고 디지털 서명된 Reolink.exe 프로세스의 일부로 실행되므로 보안 솔루션의 탐지를 회피하여 은밀성을 확보할 수 있습니다.

3. 세부 사항

이 애플리케이션은 매일 오전 3시에 실행되도록 스케줄러를 초기화합니다:

root@kitploit:~
{
  key: "clearCoverCacheRegularly",
  value: function () {
    if (this.coverCacheClearScheduler) {
      var e = new Date(),
        t = new Date(
          e.getFullYear(),
          e.getMonth(),
          e.getDate(),
          3,
          0,
          0,
        ).getTime();
      (e.getTime() > t &&
        (t = new Date(
          e.getFullYear(),
          e.getMonth(),
          e.getDate() + 1,
          3,
          0,
          0,
        ).getTime()),
        this.coverCacheClearScheduler.add({
	          id: this.clearCoverCacheTaskId,
          name: "clearCoverCache",
          unit: r.ETaskUnit.DAY,
          interval: 1,
          args: !1,
          execute: this.removeCoverCacheDir,
          nextTime: t,
          isInExact: !0,
        }),
        this.coverCacheClearScheduler.start());
    }
  },
}

스케줄러가 실행하는 함수는 다음 로직을 사용하여 셸 명령 문자열을 구성합니다:

root@kitploit:~
p(
  "darwin" === process.platform
    ? "rm -rf ".concat(t)
    : "rd /s /q ".concat(t),
  function (t) {
  //...

Windows에서 생성되는 명령은 다음과 같습니다:

root@kitploit:~
rd /s /q %LOCALAPPDATA%\Temp\reolink\<TEMP_FOLDER>\playback-covers

macOS에서 생성되는 명령은 다음과 같습니다:

root@kitploit:~
rm -rf ~/Library/Caches/reolink/<TEMP_FOLDER>/playback-covers

<TEMP_FOLDER>가 제대로 검증되지 않으므로, 공격자는 폴더 이름 조작을 통해 추가 명령을 주입하여 명령 실행을 유도할 수 있습니다:

root@kitploit:~
rd /s /q %LOCALAPPDATA%\Temp\reolink\& <COMMAND> &\playback-covers
root@kitploit:~
rm -rf ~/Library/Caches/reolink/& <COMMAND>; echo /playback-covers

공격을 트리거하려면 로컬 파일 수정이 필요하며, 이를 위해서는 또 다른 취약점, 악성코드 실행 또는 시스템에 대한 물리적 접근이 필요합니다.

초기 트리거는 상대적으로 어렵지만, 일단 성공하면 공격은 매우 효과적입니다. 페이로드가 매일 오전 3시에 자동으로 재실행되어 지속성을 제공하기 때문입니다. 이러한 지속성은 물리적 보안 도구로서의 애플리케이션 특성(종종 24/7 실행됨)으로 더욱 강화됩니다. 또한 '부팅 시 시작' 기능을 지원하므로 재부팅 후에도 페이로드가 유지됩니다.

또한, 공격자는 상당한 은밀성을 확보합니다. 명령은 신뢰할 수 있고 디지털 서명된 Reolink.exe 프로세스의 일부로 실행되므로 EDR 및 애플리케이션 허용 목록 솔루션을 우회하는 데 매우 효과적입니다. 이는 전형적인 Living Off the Land(LOTL) 기법입니다.

4. 개념 증명(PoC)

이 공격은 로컬 구성 파일을 수정하는 poc.py를 실행하여 수행할 수 있습니다. 이는 구성 파일을 복호화하고 재암호화하는 데 사용되는 불충분한 암호화와 관련된 다른 취약점(CVE-2025-56801 및 CVE-2025-56802)을 연결하여 가능해집니다.

일반적으로 페이로드는 오전 3시에만 트리거됩니다. 그러나 이 애플리케이션은 ASAR 패키징을 사용하지 않으므로, 데모 목적으로 취약점을 즉시 트리거하도록 코드를 패치할 수 있습니다.

실행 결과는 다음과 같습니다:

https://github.com/user-attachments/assets/44bf4d84-b8bf-4f4a-853c-07380ce26783

자세한 내용은 AES-CFB IV 생성 취약점에 대한 CVE-2025-56801 및 AES-CFB 키 생성 및 관리 취약점에 대한 CVE-2025-56802를 참조하십시오.

5. 권장 사항

이 OS 명령 주입 취약점을 근본적으로 해결하려면 사용자 구성 파일과 같은 신뢰할 수 없는 외부 소스에서 읽은 값을 OS 셸 명령 문자열에 직접 포함하지 않아야 합니다. 권장되는 해결 방법은 rd 또는 rm과 같은 셸 명령 사용을 Node.js의 fs.rm()과 같이 경로를 명령이 아닌 순수 데이터로 취급하는 네이티브 API로 대체하는 것입니다. 이 방법은 이 클래스의 취약점을 완전히 제거합니다.

셸 명령 구성이 절대적으로 불가피한 경우, &, |, ;와 같이 명령 주입을 유발할 수 있는 모든 특수 문자를 엄격하게 검증하고 삭제하거나 이스케이프하는 방어 로직을 구현해야 합니다.

6. 참고 자료

  • https://www.cve.org/CVERecord?id=CVE-2025-56799
  • https://nvd.nist.gov/vuln/detail/CVE-2025-56799
  • https://github.com/shinyColumn/CVE-2025-56801
  • https://github.com/shinyColumn/CVE-2025-56802
도구 다운로드