Axios 安全漏洞总结 漏洞概述 该网页截图展示了 Axios 库的多个安全补丁提交,主要涉及以下漏洞: 1. Header Injection (CRLF):拒绝包含 或 字符的 header 值,以防止 CRLF 注入攻击。 2. Prototype Pollution:通过 忽略 、 和 键,防止原型污染导致的拒绝服务(DoS)攻击。 3. Formidable Vulnerability:升级 库以修复任意文件上传漏洞。 4. Prototype Pollution in :添加输入验证以防止恶意或意外输入导致的原型污染。 影响范围 Header Injection (CRLF):影响所有使用 Axios 发送 HTTP 请求的应用程序,特别是那些允许用户控制 header 值的场景。 Prototype Pollution:影响所有使用 Axios 合并配置的应用程序,特别是那些允许用户控制配置对象的场景。 Formidable Vulnerability:影响所有使用 Axios 处理文件上传的应用程序。 Prototype Pollution in :影响所有使用 Axios 处理 URL 的应用程序,特别是那些允许用户控制 URL 的场景。 修复方案 1. Header Injection (CRLF): - 在 中添加对 header 值的验证,拒绝包含 或 字符的 header 值。 - 示例代码: 2. Prototype Pollution: - 在 中的 函数中添加对 、 和 键的忽略。 - 示例代码: 3. Formidable Vulnerability: - 升级 库到最新版本,以修复任意文件上传漏洞。 4. Prototype Pollution in : - 在 中的 函数中添加输入验证,以防止恶意或意外输入。 - 示例代码: 其他修复 Node.js v22 Compatibility:替换已弃用的 调用,以消除 Node.js v22 中的弃用警告。 CI Security Hardening:添加 GitHub Actions 安全扫描器,限制发布权限,并阻止赞助者工作流在分叉上运行。 Documentation Updates:澄清 HTTP/2 支持和 选项的文档,添加 header 大小写保留的示例。 Dependency Updates:更新多个依赖库到最新版本,包括 、 、 等。 新贡献者 感谢以下新贡献者的帮助: - @Kilr0ss881 - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @NathanMuniz - @