Gitユーザーを重大な脆弱性から保護するために、通常のメンテナンスリリースのように修正バージョンをリリースするだけではありません。 代わりに、リリースをパッケージャーと調整し、リリース日まで修正を禁止(embargo)します。 そうすれば、ユーザーは、実行しているオペレーティングシステムやディストリビューションに関係なく、その日にアップグレードする機会があります。
Open a Security Advisory draft
最初のステップは、 open an advisory です。 技術的には必要ありませんが、便利でほとんど手間がかかりません。 このアドバイザリは、CVE番号を取得するためにも使用でき、修正で共同作業するために使用できる、それに関連付けられたプライベートフォークを提供します。
Release date of the embargoed version
脆弱性がWindowsユーザーに影響を与える場合は、Visual Studioの仲間に参加してもらいたいと思います。つまり、「Patch Tuesday」(毎月第2火曜日)を目標に、最低でも準備から調整後のリリース(coordinated release)まで3週間は必要ということです。
脆弱性がサーバー側に影響を与える場合、またはサーバー側でのスキャンの恩恵を受ける可能性がある場合(つまり、 git fsck
が攻撃を検出できる場合)、関連するすべてのGitリポジトリホスティングサイトに、これらすべてのリポジトリをスキャンするのに十分な時間を与えることが重要です。
Notifying the Linux distributions
リリース日の最大2週間前に、 distros@vs.openwall.org に通知を送信する必要があります。できれば、リリース日の7日以内に通知を送信する必要があります。 これはほとんどの(すべての?)Linuxディストリビューションに到達します。 以下の例と、 here にあるこのメーリングリストのガイドラインを参照してください。
バージョンが公開されたら、それに関するメモを oss-security に送信します。 例として、 the v2.24.1 mail を参照してください。 Here が彼らのガイドラインです。
oss-security へのメールは、功績を説明し、報告者に称賛を与える必要があります。セキュリティ研究者は、その貴重なサービスに対する称賛をあまり受けておらず、社会的な称賛が各組織からの支払い維持するのに大いに役立ちます。
技術的には、どのような功績でも7日間ま説明を遅らせることができますが、通常はすぐにそれを控えて説明しています。
礼儀として、関係者がそれらの 統合/バックポート を処理できるように、通常、Gitバンドル(メーリングリストは .bundle
添付ファイルをドロップするため .tar.xz
として) を)distros@ にメールで添付します。
このバンドルは通常、以下のようなコマンドを使用して作成されます:
git bundle create cve-xxx.bundle ^origin/master vA.B.C vD.E.F
tar cJvf cve-xxx.bundle.tar.xz cve-xxx.bundle
Example mail to distros@vs.openwall.org
To: distros@vs.openwall.org
Cc: git-security@googlegroups.com, <other people involved in the report/fix>
Subject: [vs] Upcoming Git security fix release
Team,
The Git project will release new versions on <date> at 10am Pacific Time or
soon thereafter. I have attached a Git bundle (embedded in a `.tar.xz` to avoid
it being dropped) which you can fetch into a clone of
https://github.com/git/git via `git fetch --tags /path/to/cve-xxx.bundle`,
containing the tags for versions <versions>.
You can verify with `git tag -v <tag>` that the versions were signed by
the Git maintainer, using the same GPG key as e.g. v2.24.0.
Please use these tags to prepare `git` packages for your various
distributions, using the appropriate tagged versions. The added test cases
help verify the correctness.
The addressed issues are:
<list of CVEs with a short description, typically copy/pasted from Git's
release notes, usually demo exploit(s), too>
Credit for finding the vulnerability goes to <reporter>, credit for fixing
it goes to <developer>.
Thanks,
<name>
Example mail to oss-security@lists.openwall.com
To: oss-security@lists.openwall.com
Cc: git-security@googlegroups.com, <other people involved in the report/fix>
Subject: git: <copy from security advisory>
Team,
The Git project released new versions on <date>, addressing <CVE>.
All supported platforms are affected in one way or another, and all Git
versions all the way back to <version> are affected. The fixed versions are:
<versions>.
Link to the announcement: <link to lore.kernel.org/git>
We highly recommend to upgrade.
The addressed issues are:
* <list of CVEs and their explanations, along with demo exploits>
Credit for finding the vulnerability goes to <reporter>, credit for fixing
it goes to <developer>.
Thanks,
<name>