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 模式,只允许使用 HTTPHTTPS 协议, 避免使用 file:// 等潜在的危险模式。
    • 使用防火墙: 部署 Web 应用防火墙(WAF), 阻止恶意请求, 创建可信域名白名单, 并拒绝可疑的 URL 或 IP 地址。
    • 清理用户输入: 对所有用户输入进行清理, 确保 URL 格式正确, 不包含意外字符, 但不能仅依赖于输入清理。
  • 修复方案:升级到 Next.js 14.1.1。 没有其他临时的解决方案.

总结

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

相关推荐
Liu.77410 分钟前
vue3使用vue3-print-nb打印
前端·javascript·vue.js
踏浪无痕1 小时前
JobFlow 实战:无锁调度是怎么做到的
后端·面试·架构
松涛和鸣1 小时前
Linux Makefile : From Basic Syntax to Multi-File Project Compilation
linux·运维·服务器·前端·windows·哈希算法
dly_blog1 小时前
Vue 逻辑复用的多种方案对比!
前端·javascript·vue.js
万少1 小时前
HarmonyOS6 接入分享,原来也是三分钟的事情
前端·harmonyos
烛阴2 小时前
C# 正则表达式:量词与锚点——从“.*”到精确匹配
前端·正则表达式·c#
再睡一夏就好2 小时前
深入Linux线程:从轻量级进程到双TCB架构
linux·运维·服务器·c++·学习·架构·线程
墨香幽梦客2 小时前
HA高可用架构选型:确保企业系统稳定运行的基石
架构
wyzqhhhh2 小时前
京东啊啊啊啊啊
开发语言·前端·javascript
JIngJaneIL2 小时前
基于java+ vue助农电商系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端