ミネソタ大学、問題のあるパッチを送信したとして Linux カーネル開発を停止

Linux カーネルの安定ブランチの維持責任を負う Greg Kroah-Hartman 氏は、ミネソタ大学から Linux カーネルへの変更の受け入れを禁止し、以前に受け入れられたパッチをすべてロールバックして再レビューすることを決定しました。 ブロックの理由は、オープンソース プロジェクトのコードに隠れた脆弱性を助長する可能性を研究する研究グループの活動でした。 このグループは、さまざまな種類のバグを含むパッチを提出し、コミュニティの反応を観察し、変更のレビュー プロセスを欺く方法を研究しました。 グレッグ氏によると、悪意のある変更を導入するためにそのような実験を行うことは容認できず、非倫理的です。

ブロックの理由は、このグループのメンバーが、「free」関数の二重呼び出しの可能性を排除するポインター チェックを追加するパッチを送信したためです。 ポインターの使用状況を考慮すると、チェックは無意味でした。 パッチを提出する目的は、誤った変更がカーネル開発者によるレビューに合格するかどうかを確認することでした。 このパッチに加えて、ミネソタ大学の開発者による、隠れた脆弱性の追加に関連するものなど、カーネルに疑わしい変更を加えようとする他の試みが表面化しています。

パッチを送信した参加者は、新しい静的アナライザーをテストしていて、変更はそのテスト結果に基づいて準備されたと言って自分を正当化しようとしました。 しかし、Greg は、提案された修正は静的アナライザーによって検出されたエラーに典型的なものではなく、送信されたパッチはすべてまったく修正されないという事実に注意を促しました。 問題の研究グループが過去に隠れた脆弱性に対するパッチをプッシュしようとしたことを考えると、彼らがカーネル開発コミュニティと実験を続けてきたことは明らかです。

興味深いことに、実験を実施しているグループのリーダーは過去に、USB スタック (CVE-2016-4482) やネットワーク サブシステム (CVE-2016-4485) の情報漏洩の特定など、脆弱性の正当なパッチ適用に関与していました。 。 ステルス脆弱性の伝播に関する研究で、ミネソタ大学のチームは、2019 年にリリースされたカーネル パッチによって引き起こされる脆弱性 CVE-12819-2014 の例を挙げています。 この修正により、mdio_bus のエラー処理ブロックに put_device への呼び出しが追加されましたが、XNUMX 年後、そのような操作によりメモリ ブロックが解放された後 (「use-after-free」) にアクセスすることになることが判明しました。

同時に、研究の著者らは、研究の中でエラーを引き起こし、研究参加者には関係のない138のパッチに関するデータを要約したと主張している。 エラーのある独自のパッチを送信する試みは電子メールでのやり取りに限定されており、そのような変更は Git に反映されませんでした (パッチを電子メールで送信した後、メンテナがパッチを正常であると判断した場合、メンテナは変更を含めないよう求められました)はエラーでした。その後、正しいパッチが送信されました)。

追加 1: 批判されたパッチの作成者の活動から判断すると、彼は長期間にわたってさまざまなカーネル サブシステムにパッチを送信していました。 たとえば、Radeon ドライバーと nouveau ドライバーは最近、エラー ブロックで pm_runtime_put_autosuspend(dev->dev) を呼び出す変更を採用しており、バッファに関連付けられたメモリを解放した後にバッファが使用される可能性があります。

補遺 2: Greg は、「@umn.edu」に関連する 190 件のコミットをロールバックし、それらの再レビューを開始しました。 問題は、「@umn.edu」アドレスを持つメンバーが、疑わしいパッチをプッシュする実験を行っただけでなく、実際の脆弱性にもパッチを適用しており、変更をロールバックすると、以前にパッチを適用したセキュリティ問題が再発する可能性があることです。 一部のメンテナはすでに元に戻された変更を再チェックし、問題は見つかりませんでしたが、メンテナの XNUMX 人は、自分に送信されたパッチの XNUMX つにエラーがあると指摘しました。

出所: オープンネット.ru

コメントを追加します