跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Perl

Webmin CVE-2019-15107 漏洞从后门到修复的时间线分析

Webmin 作为基于 Web 的 Unix/Linux 系统管理工具,因 CVE-2019-15107 远程命令执行漏洞引发关注。该漏洞位于 password_change.cgi 文件,攻击者可通过构造特制 POST 请求在 old 参数中注入系统命令。漏洞利用需满足特定条件,如开启密码重置功能且非系统用户。文章分析了漏洞触发机制及背后的供应链攻击背景,建议及时升级版本以修复风险。

GitMaster发布于 2026/4/10更新于 2026/9/648 浏览

从后门到修复:Webmin CVE-2019-15107 漏洞的完整时间线分析

Webmin 是一个基于 Web 的 Unix/Linux 系统管理工具。它允许管理员通过浏览器图形界面完成配置 Apache 虚拟主机、管理用户账户、设置 Cron 任务等操作,降低了非专业运维人员的门槛。

Webmin 默认监听 10000 端口,通过 HTTPS 提供服务,以 root 权限运行。一旦 Webmin 被攻破,攻击者即获得服务器最高权限。根据网络空间测绘引擎数据,2019 年漏洞曝光时全球有超过 13 万台 Webmin 服务器暴露在互联网上。

Webmin 架构特点值得注意。它完全用 Perl 编写,由大量 CGI 脚本组成。这种架构模块化程度高,但每个 CGI 脚本都可能成为攻击面,且 Perl 代码的安全审计资源相对较少。

提示:如果仍在 Webmin,建议检查版本号。虽然 CVE-2019-15107 已过多年,但老版本可能还存在其他未公开漏洞。最好的做法是升级到最新版本,或者考虑替代方案如 Cockpit、Usermin 等。

事件起点:异常漏洞报告的浮现

2019 年 8 月 10 日,Pentest 博客发布关于 Webmin 漏洞的详细分析。研究人员声称在 Webmin 的密码重置功能中发现了一个无需身份验证的远程命令执行漏洞,影响版本为 1.920 及之前。漏洞位于 password_change.cgi 文件中,攻击者可以通过向该页面发送特制的 POST 请求,在 old 参数中注入系统命令。

安全研究人员在审计代码时发现,password_change.cgi 在处理用户修改密码请求时,会检查旧密码是否正确。如果旧密码错误,程序会调用 pass_error 函数显示错误信息。问题出在这个函数调用上:

$enc eq $wuser->{'pass'} || &pass_error($text{'password_eold'}, qx/$in{'old'}/); 

第二行代码中,qx/$in{'old'}/ 是 Perl 中执行系统命令的语法。正常情况下,这里应该只是把用户输入的旧密码作为错误信息的一部分显示出来。但代码编写者犯了一个致命错误:他们直接把用户输入的 $in{'old'} 放进了 qx// 操作符中。这意味着如果攻击者在 old 参数中传入 | id 这样的值,Perl 会先执行 id 命令,然后把输出作为错误信息的一部分。

但事情蹊跷的地方在于,这个漏洞的触发条件相当特殊。研究人员很快发现,要成功利用需要满足几个前提:

  1. Webmin 必须开启'密码重置'功能(默认关闭)
  2. 使用的用户不能是系统用户(如 root)
  3. 新旧密码需要符

目录

  1. 从后门到修复:Webmin CVE-2019-15107 漏洞的完整时间线分析
  2. 事件起点:异常漏洞报告的浮现

更多推荐文章

查看全部
  • 本地离线部署 Whisper 模型进行语音转写
  • 2026 年实用 AI 写作平台整理
  • OpenClaw:AI Agent 框架的安全挑战与未来演进
  • AI 辅助编程:利用 GitHub Copilot 等工具提升开发效率
  • Spring AI MCP Server 集成指南与源码解析
  • 33 岁前端开发者失业后的转行方向与建议
  • 基于 Leaflet Trackplayer 的 WebGIS 高速公路轨迹可视化
  • GitHub 日榜:AI 工具链与工程化实践热点
  • 使用 Docker 和 Datmo 快速配置 AI 开发环境
  • AI-Render:把 Stable Diffusion 接进 Blender 的折腾实录
  • Rust 安装与环境配置教程
  • SDL3 跨平台开发简明教程:基于 C++ 与 CMake 构建应用
  • CentOS Linux 安装 MySQL 8 数据库详细教程
  • 代码大模型浪潮下,IT 技术人员的应对与转型策略
  • WebArena:面向自主智能体的真实网页环境基准
  • Stable Diffusion XL 1.0 免配置方案:灵感画廊 Streamlit UI 定制实战
  • LangChain 核心组件 RunnableLambda 详解与实战
  • Vivado AXI4-Stream Data FIFO 核配置与测试详解
  • 前端可视化打印设计器 Vue Print Designer 介绍
  • MCPHost:命令行大模型与外部工具交互指南

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online