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 应用,以避免受到这些漏洞的影响。同时,要重视用户输入验证和服务器配置安全,防止潜在的安全风险。

相关推荐
萌萌哒草头将军9 分钟前
2025年了,令人唏嘘的Angular,现在怎么样了🚀🚀🚀
前端·javascript·vue.js
WeilinerL1 小时前
基于VSCode Debug Terminal理解vue-loader原理
前端·vue.js·webpack
颜酱2 小时前
后台系统从零搭建(二)—— 系统架构设计1之路由封装
前端·javascript·react.js
数据智能老司机2 小时前
使用 Databricks Lakehouse 构建现代数据应用程序——使用 Delta Live Tables 应用数据转换
大数据·架构·数据分析
wodrpress资源分享2 小时前
根据浏览器语言判断wordpress访问不同语言的站点
前端·javascript·html·wordpress
数据智能老司机2 小时前
使用 Databricks Lakehouse 构建现代数据应用程序——使用 Delta Live Tables 管理数据质量
大数据·架构·数据分析
某公司摸鱼前端2 小时前
React 打印插件 -- react-to-print
前端·javascript·react.js·react-to-print
炫饭第一名2 小时前
webpack5热更新失效问题排查与修复全记录
前端·javascript·webpack
数据智能老司机2 小时前
使用 Databricks Lakehouse 构建现代数据应用程序——在Unity Catalog中管理数据位置
大数据·架构·数据分析
uhakadotcom3 小时前
Java反序列化漏洞利用进阶:绕过WAF和EDR,实现隐蔽攻击
后端·架构·github