Hasty Briefsbeta

双语

git's –end-of-options Flag

a day ago
  • Git 的 --end-of-options 标志于 2019 年引入,用于标记修订版参数解析的结束,与用于分隔修订版和路径规范的 -- 不同。
  • 参数注入(CWE-88)发生在将带有破折号开头的不安全字符串作为参数传递给 git、hg 或 ssh 时,即使没有涉及 shell 也会发生。
  • 在 17 个 fork git 的包管理器中,只有一个使用 --end-of-options;其他依赖 -- 或破折号检查,这些检查通常作为漏洞修复添加。
  • --end-of-options 的最低 git 版本要求因子命令而异,支持范围从 2.24.0 到 2.43.1,这使得旧版本发行版的采用变得具有挑战性。
  • 像 libgit2 这样的 Git 库通过不使用 argv 接口来避免参数注入,但必须跟踪上游 git 的所有结账安全补丁。