Hacker News 中文摘要

RSS订阅

PostHog内部漏洞剖析:SSRF、ClickHouse SQL注入与默认Postgres凭据导致的远程代码执行 -- Inside PostHog: SSRF, ClickHouse SQL Escape and Default Postgres Creds to RCE

文章摘要

文章披露了PostHog平台存在的多个安全漏洞,包括SSRF漏洞、ClickHouse SQL注入0day和默认PostgreSQL凭证问题,这些漏洞可被串联利用形成远程代码执行攻击链(涉及ZDI-25-099/097/096三个漏洞编号)。

文章总结

深入解析PostHog漏洞链:SSRF、ClickHouse SQL注入0day与默认PostgreSQL凭证如何导致RCE(ZDI-25-099、ZDI-25-097、ZDI-25-096)

背景

研究团队在评估PostHog(一款开源产品分析平台)时,通过24小时深度代码审计发现了一个由多个漏洞组成的远程代码执行(RCE)攻击链。该平台因支持数千种外部集成而存在潜在SSRF风险,最终通过组合漏洞实现了从SSRF到RCE的突破。


漏洞链详解

第一阶段:SSRF漏洞(CVE-2024-9710等) - 发现过程:测试test_slack_webhook端点时,前端虽验证URL安全性,但保存配置的PATCH接口未复现相同检查,导致可持久化存储恶意URL(如localhost)。 - 利用点:Rust编写的Webhook工作线程会无条件请求已保存的URL,且支持HTTP重定向,可将POST请求转为GET请求。

第二阶段:ClickHouse SQL注入0day - 目标:通过SSRF访问ClickHouse的HTTP API(默认端口8123),利用其postgresql()表函数特性。 - 漏洞本质:ClickHouse对PostgreSQL表名中的单引号错误使用反斜杠转义(应为双引号),导致SQL注入。 - Payload构造:注入COPY FROM PROGRAM语句,通过PostgreSQL的$$美元符号引用绕过转义限制,最终执行系统命令。

第三阶段:默认PostgreSQL凭证 - 利用静态凭证(如posthog/posthog)连接数据库,完成攻击链最后一环。


完整攻击流程

  1. 绕过前端验证,存储恶意Webhook URL。
  2. 触发Rust工作线程发起SSRF请求至ClickHouse API。
  3. 通过重定向将POST转为GET,利用ClickHouse的SQL注入执行PostgreSQL命令。
  4. 注入COPY FROM PROGRAM获取反向Shell。

时间线与致谢

  • 披露时间:2024年10月报告,2025年2月公开。
  • 致谢:感谢ZDI(Zero Day Initiative)在漏洞协调披露中的专业支持。

关键启示

  • 深度防御失效:各组件独立防护(SSRF校验、SQL转义、默认凭证)被组合击穿。
  • 开发建议:统一安全校验逻辑,避免TOCTOU问题;严格限制内部服务权限。

(注:原文中的图片链接、代码片段及社交媒体内容已精简,保留核心技术细节。)

评论总结

总结:

  1. 对PostHog的质疑:
  • 认为PostHog存在随意编码问题,可能隐藏其他漏洞 "PostHog does a lot of vibe coding, I wonder how many other issues they have."(PostHog做了很多随意编码,我想知道他们还有多少其他问题)
  1. 对Clickhouse责任的讨论:
  • 认为Clickhouse应为其API漏洞承担主要责任 "Like that escape bug was what made the RCE possible and certainly a core DB company like ClickHouse should be held accountable"(正是这个转义漏洞使得RCE成为可能,像ClickHouse这样的核心数据库公司应该为此负责)
  • 也有观点认为PostHog和Clickhouse都应承担责任 "I feel clickhouse and posthog both have their share of the blame here"(我认为clickhouse和posthog在这里都有责任)
  1. PostHog的回应:
  • 官方回应已在2024年10月修复漏洞,并正在改进架构 "We resolved these SSRF findings back in October 2024...working on some architectural improvements"(我们已在2024年10月解决了这些SSRF发现...正在做一些架构改进)
  1. 其他讨论:
  • 对漏洞赏金金额的询问 "how much does ZDI pay for a bug like this?"(ZDI为这样的漏洞支付多少钱?)
  • 对技术文档准确性的指正 "Need an edit here...their API is designed to be READ ONLY"(需要编辑这里...他们的API设计为对HTTP GET请求只读)
  • 对文章本身的赞赏 "Very nice write up!"(非常好的文章!)"What an elegant, interesting read"(多么优雅、有趣的阅读)