Next.js 框架中 CVE-2024-34350 和 CVE-2024-34351 漏洞原理与安全升级通知

Next.js 最新漏洞解析及安全升级指南

最近,流行的 Next.js 框架修复了两个重要的安全漏洞,分别是 CVE-2024-34350 和 CVE-2024-34351。如果不及时升级,可能会导致数据泄露或服务器被攻击。

1. CVE-2024-34350:HTTP 请求走私漏洞

  • 技术解释 :这个漏洞就像是,你的 Web 服务器对同一个 HTTP 请求理解不一致,有时认为是一个请求,有时认为是两个。攻击者可以利用这一点,构造特殊的请求,让服务器返回错误的内容,或者执行未授权的操作。主要影响使用了 rewrites 功能的路由。

  • 实际例子 :假设你的网站有一个重定向规则,将 /old-path 重定向到 /new-path。攻击者可以构造一个恶意的 HTTP 请求,当服务器处理这个请求时,会将其中一部分当成是给 /new-path 的请求,另一部分当成是给其他内部接口的请求,从而窃取数据或篡改信息。

  • 修复方案:升级到 Next.js 13.5.1 或更高版本(包括 14.x)。

2. CVE-2024-34351:服务器端请求伪造(SSRF)风险

  • 技术解释:SSRF 漏洞允许攻击者让你的服务器代表它自己去访问其他资源。在 Next.js 的 Server Actions 中,如果 Host header 被篡改,并且你的应用是自托管的,攻击者就可以让你的服务器向内部服务或外部网站发起恶意请求。 简单来说,就是黑客可以利用你的服务器作为跳板,去访问其他服务器。

  • 实际例子 :假设你的 Next.js 应用运行在自己的服务器上,并且使用了 Server Actions。攻击者可以修改 HTTP 请求中的 Host header,让你的服务器去访问内部的管理接口 http://localhost:3000/admin,如果这个接口没有做严格的权限验证,攻击者就可以控制你的服务器。

    bash 复制代码
    curl -v http://your-server.com/api/upload \
    -H "Host: localhost:3000" \
    --data-binary @malicious-file.txt

    这个例子中,攻击者尝试将 Host header 设置为 localhost:3000,如果服务器没有正确验证 Host header,可能会将请求发送到本地的 3000 端口,从而暴露内部服务。

  • 防范方法:

    • 升级 Next.js: 立即升级到 Next.js 14.1.1 或更高版本,该版本已修复此漏洞。
    • 限制 URL 模式 : 强制执行特定的 URL 模式,只允许使用 HTTP 和 HTTPS 协议, 避免使用 file:// 等潜在的危险模式。
    • 使用防火墙: 部署 Web 应用防火墙(WAF), 阻止恶意请求, 创建可信域名白名单, 并拒绝可疑的 URL 或 IP 地址。
    • 清理用户输入: 对所有用户输入进行清理, 确保 URL 格式正确, 不包含意外字符, 但不能仅依赖于输入清理。
  • 修复方案:升级到 Next.js 14.1.1。 没有其他临时的解决方案.

总结

请所有使用 Next.js 的开发者尽快升级到最新版本,特别是自托管 Next.js 应用,以避免受到这些漏洞的影响。同时,要重视用户输入验证和服务器配置安全,防止潜在的安全风险。

相关推荐
nvd112 小时前
剖析 LangChain4j 的声明式 Agent 架构:从动态代理到大模型函数回调的底层真相
架构
张彦峰ZYF2 小时前
从智能体到生产系统:企业 Agent 规模化的治理、记忆、知识与安全
人工智能·安全·架构·operatingsystem·agent platform·agentcontrol·agent mesh
Sand(ContextGate)3 小时前
Python Agent 测试实战:测试与评估,让 Agent 像传统软件一样可交付
前端·javascript·python·microsoft·ai
Dawson Zhu3 小时前
Multi-Agent架构与适用边界:何时应该使用Multi-Agent架构
人工智能·语言模型·架构·aigc·agi
广州华水科技3 小时前
单北斗GNSS变形监测系统在城市安全与地质灾害中的应用前景
前端
颜进强3 小时前
20 · NestJs循环依赖与 forwardRef:容器为什么在环面前会死,"占位再补齐"怎么救
前端·后端·ai编程
miofly3 小时前
Cohere推出North 2平台,主打企业AI代理可控部署
开源·github
颜进强3 小时前
19 · NestJs @Global 落地账:装饰器与 `isGlobal` 参数,各在什么场景上岗
前端·后端·ai编程
梦帮科技3 小时前
【3.0修订版】跨链桥架构与资产守恒:BSCBridge、BSCMirrorBridge 与 Lock-and-Mint 模型
架构·去中心化·区块链·智能合约·共识算法·信任链
码艺-Alimjan3 小时前
Tauri 网站To桌面应用实战总结
前端·javascript·vue