首页 网络安全 正文

EMLOG Pro 2.6.13反射跨站脚本CVE-2026-46686

摘要

栋科技漏洞库关注到EMLOG Pro 2.6.13及更早版本中存在的反射跨站脚本,现在已经被追踪为CVE-2026-46686,CVSS 4.0评分8.5。

EMLOG Pro是国内开发、基于PHP+MySQL轻量专业博客/CMS 建站程序,资源占用低,适合个人博客、技术笔记、小型资讯站搭建。

一、基本情况

EMLOG Pro支持宝塔、1Panel、Docker 一键安装,兼容 PHP5.6~8.x、MySQL/MariaDB 数据库,即便是新手,几分钟即可搭建完成。

EMLOG Pro内置了原生Markdown编辑器,非常适合个人技术博客、自媒体日记、软件资源站、企业小型资讯专栏、笔记归档等站点。

EMLOG Pro 2.6.13反射跨站脚本CVE-2026-46686

EMLOG Pro内置大模型接口,支持 AI 写文、AI 文生图,并且还内置了完善分类、标签、搜索、评论、投稿功能,支持访客注册互动。

栋科技漏洞库关注到EMLOG Pro 2.6.13及更早版本中存在的反射跨站脚本,现在已经被追踪为CVE-2026-46686,CVSS 4.0评分8.5。

二、漏洞分析

CVE-2026-46686漏洞位于EMLOG Pro相关版本中的内容管理系统后台用户管理页面搜索功能,漏洞是一个高危反射型跨站脚本漏洞。

该漏洞源于EMLOG Pro相关版本的后台用户搜索模块(admin/user.php)的keyword参数仅经过addslashes转义,

渲染至模板admin/views/user.php的value属性前未做HTML转义,可在管理员后台会话中触发反射型跨站脚本漏洞。

具体来说,由于keyword参数仅经过addslashes处理(该函数仅用于防御SQL注入,不会转义HTML特殊字符),

随后直接输出至HTML输入标签的value属性中。

攻击者可构造携带HTML标签的恶意链接,在管理员后台会话内执行任意JavaScript代码,窃取管理员会话Cookie或执行后台敏感操作。

1、漏洞代码路径

入参处理代码(include/lib/input.php 第47至51行):

function getStrVar($var, $var_default = '') {
    $str = isset($_GET[$var]) ? addslashes(trim($_GET[$var])) : '';
    return $str ? addslashes(trim($str)) : $var_default;
}

2、路由处理代码(admin/user.php 第20行):

$keyword = Input::getStrVar('keyword');

3、模板渲染代码(admin/views/user.php第39行)——漏洞输出点:

$keyword = Input::getStrVar('keyword');

4、攻击向量

GET /admin/user.php?keyword="><script>alert(document.cookie)</script>

三、POC概念验证

1、解析流程:

经过addslashes处理:双引号被转义为\",但尖括号<、>未做处理。

输出至HTML后内容为:value="\"><script>alert(document.cookie)</script>"

首个\"会闭合value属性,后续<script>标签会被当作全新HTML标签注入。

浏览器会解析并执行这段JavaScript代码。

2、复现步骤

前置条件

目标管理员已登录Emlog后台。

3、攻击者知晓网站后台访问地址。

4、攻击流程

步骤1:构造恶意链接

管理员已设置登录后刷新可查看

步骤2:通过钓鱼邮件、即时通讯消息或社会工程手段诱导管理员点击该链接。

EMLOG Pro 2.6.13反射跨站脚本CVE-2026-46686

5、危害评估

窃取后台登录凭证EM_AUTHCOOKIE,完全接管管理员账号 ;取后台页面内容,获取数据库配置、用户名单等数据

6、漏洞利用限制

必须由管理员主动点击恶意链接,攻击依赖钓鱼手段。

现代浏览器开启HttpOnly标识的Cookie可缓解会话劫持风险。

7、修复方案

输出处增加HTML转义(推荐方案)

修改admin/views/user.php第39行代码:

<!-- Before Fix -->
<input type="text" name="keyword" value="<?= $keyword ?>" ...>

<!-- After Fix -->
<input type="text" name="keyword" value="<?= htmlspecialchars($keyword, ENT_QUOTES, 'UTF-8') ?>" ...>

四、影响范围

EMLOG Pro ≤ 2.6.13

五、修复建议

EMLOG Pro ≥ 2.6.22

六、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接