文章总结: 研究员发现SynologyBeeStation存在一条包含CRLF注入、认证绕过和SQL注入的漏洞链,可导致无需认证的Root权限远程代码执行。该攻击利用一种新型脏文件写入技术,通过SQL注入在cron目录创建包含恶意命令的SQLite文件,绕过PHP解释器缺失的限制,最终获取系统最高权限。Synology已发布修复补丁。
综合评分: 100
文章分类: 漏洞分析,渗透测试,实战经验,漏洞预警,WEB安全
Synology BeeStation 漏洞链导致通过新型“脏文件写入”SQL注入实现Root权限远程代码执行,PoC已发布
sec随谈
sec随谈
2025年12月4日 09:24
北京
安全研究员 Kiddo 发布了一份详细的报告,展示了漏洞链式攻击如何利用三个不同的漏洞完全攻破Synology BeeStation 设备。该漏洞最初在 Pwn2Own 2024 大会上提出,攻击者无需任何凭证即可获得目标系统的 root 权限。
该研究重点介绍了一种复杂的“脏文件写入”技术,该技术通过利用系统自身的任务调度程序来绕过标准的 web shell 方法。
该漏洞利用依赖于三个CVE漏洞,从轻微的信息泄露逐步升级到完全系统控制。据Kiddo称,“该漏洞利用链包含三个不同的漏洞,允许未经身份验证的攻击者获得root权限。”
- CVE-2024-50629(CRLF 注入):用于泄露内部系统数据的入口点。
- CVE-2024-50630(身份验证不当):利用逻辑缺陷绕过登录要求。
- CVE-2024-50631(SQL注入):用于执行远程代码的最后一击。
第一步:泄漏(CRLF注入)
攻击始于身份验证前信息泄露。研究人员发现,身份验证 API 中的 redirect_url 参数未能对输入进行清理,从而导致 CRLF 注入。
报告解释说:“通过在 redirect_url 参数后附加 %0d%0a,我可以将任意 HTTP 标头注入到服务器响应中。”
攻击者通过注入 X-Accel-Redirect 标头(BeeStation 使用的 Nginx 服务器的一项功能),可以强制服务器读取内部文件。目标文件是 cloud-workerd.log 文件,该文件会在初始化期间记录用户主目录路径,从而暴露有效的系统用户名(例如 kiddo.pwn)。
第二步:绕过“友好邻居”的途径
攻击者在掌握有效用户名后,便会攻击 syncd 守护进程。该组件监听两个通道:一个 Unix 域套接字(用于本地浏览器请求)和一个 TCP 端口。
该漏洞源于一个逻辑错误,即syncd隐式地信任本地请求。“有趣的是,身份验证方法似乎在转发请求之前没有检查密码参数是否存在,”Kiddo写道。
通过从请求中移除密码字段,系统默认采用专为受信任的本地域套接字设计的逻辑路径。这使得系统能够仅基于步骤 1 中窃取的用户名颁发有效的 access_token。
步骤 3:肮脏的 SQL 注入
攻击者通过身份验证后,可以访问存在 SQL 注入漏洞的 update_settings 命令。通常情况下,攻击者会利用此漏洞编写 PHP Web Shell。然而,BeeStation 设备本身并不包含 PHP 解释器,因此攻击者需要另辟蹊径。
研究人员使用 SQL ATTACH DATABASE 命令在系统的 cron 目录 (/etc/cron.d/) 中创建了一个文件。难点在于 SQLite 数据库文件包含二进制“垃圾”头部信息,这些信息通常会破坏像 crontab 这样的基于文本的配置文件。
该解决方案依赖于 cron 守护进程的容错能力:“令人惊讶的是……cron 守护进程会忽略格式错误的行,并继续向下遍历文件以查找有效行。”
研究人员通过在 SQL 查询语句中用换行符包裹恶意 bash 命令,成功地在二进制文件中创建了一个有效的 cron 任务。“当 cron 解析此文件时,它会将 SQLite 二进制文件头视为无效行而丢弃,只执行有效的 crontab 行——从而获得 root 反向 shell。”
安全研究人员结合这三个漏洞,构建了一条完整的攻击链。该概念验证演示了在受影响的 BeeStation 设备上实现完全无需身份验证的远程代码执行 (RCE)。
Synology 已在最新的 DSM 和 BeeStation 更新中解决了这些漏洞。
参考链接:
https://kiddo-pwn.github.io/blog/2025-11-30/writing-sync-popping-cron
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:sec随谈 sec随谈《Synology BeeStation 漏洞链导致通过新型“脏文件写入”SQL注入实现Root权限远程代码执行,PoC已发布》