Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ovpn-kernel-backport — CVE-2026-74727 に対するアップストリームの OpenVPN カーネル修正。Ubuntu カーネル 7.0.0-38.38 でテスト済み。ビルド手順と機能テスト結果を含みます。 | Kitploit
ツール/GitHubGitHub/kosifuchs/ovpn-kernel-backport
脆弱性分析コード分析ネットワークセキュリティ論文と研究
GitHubkosifuchs/ovpn-kernel-backport

ovpn-kernel-backport

CVE-2026-74727 に対するアップストリームの OpenVPN カーネル修正。Ubuntu カーネル 7.0.0-38.38 でテスト済み。ビルド手順と機能テスト結果を含みます。

リポジトリを見る
1ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

OpenVPN カーネルモジュールのバックポートレビュー

x86_64 上の Ubuntu カーネルソースパッケージ linux 7.0.0-38.38 に対して、CVE-2026-74727 に関連するアップストリーム修正のローカルビルド、機能テスト、集中的なソースレビュー、および決定論的な VPN-IP とトランスポートエンドポイントのリハッシュ不変条件回帰テストを文書化したものです。トランスポートエンドポイントのテストは、ローカルでビルドした Generic KASAN カーネル上でも再ビルドして実行しました。

帰属と範囲

これは既存のアップストリーム修正のバックポートレビューであり、新たに発見された脆弱性や独自のセキュリティ修正ではありません。記録されているアップストリームの作者は Antonio Quartulli です。記録されているコミットは 33ec10567fe14456063daf549fdf1a4f53448e4c です。

アップストリームパッチ: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/patch/?id=33ec10567fe14456063daf549fdf1a4f53448e4c

drivers/net/ovpn/peer.c の変更は、ピア ID ハッシュテーブルからすでに削除されたピアを再ハッシュすることを防ぎます。配布する際は、元のパッチヘッダー、著作者、ライセンスを保持してください。このドキュメントはカーネルパッチのライセンスを変更するものではありません。

元のアップストリームパッチはバイト単位でそのまま含まれています。その SHA-256 は、記録されたテストセッションで使用された成果物と一致します。その作者、コミットメッセージ、コード変更は、GitHub 上の公開アップストリームコミットと照合して確認しました。バイナリは含まれていません。

記録されたチェックサム

パッチのチェックサムは、含まれているファイルと独立に照合して確認しました。モジュールのチェックサムは、オペレーターのテストセッション中に記録されたものです。バイナリはここでは配布されていません。

成果物SHA-256
CVE-2026-74727-upstream.patchbaf0962c60b182776a86e040d2ec5b35eea2737c2e2eb6f17f87eb7d2fe47b24
テスト済み ovpn.ko0853fdce14ce1c4d64857871dc873bf98a1b8fe8243bf042ad6daffc906e6d27

適用とビルド

正確な Ubuntu ソースパッケージ linux 7.0.0-38.38 を別途展開したコピーを使用してください。まず、一致するカーネルヘッダーとビルドツールチェーンをインストールします。記録されているコンパイラは Ubuntu GCC 15.2.0-16ubuntu1 で、実行中のカーネルのコンパイラと一致しています。

ソースルートから、パッチをその親ディレクトリに置いた状態で:

patch --dry-run --batch --forward --fuzz=0 -p1 < ../CVE-2026-74727-upstream.patch
patch --batch --forward --fuzz=0 -p1 < ../CVE-2026-74727-upstream.patch
make -C /lib/modules/7.0.0-38-generic/build \
  M="$PWD/drivers/net/ovpn" CONFIG_OVPN=m \
  CC=x86_64-linux-gnu-gcc -j1 modules

記録されたパッチ適用は、行オフセット -6 および -5 でファズを一切使用せずに行われた。ビルドは終了コード 0 を返した。vmlinux が利用できなかったため、BTF の生成はスキップされた。モジュールの vermagic は 7.0.0-38-generic SMP preempt mod_unload modversions と一致した。

vermagic の一致とビルドの成功は、モジュールが安全であることや、脆弱性が完全に検証されたことを証明するものではない。

記録された機能テスト

テストは、カーネル 7.0.0-38-generic を使用し Secure Boot を無効にした Hyper-V 上の Ubuntu VM で手動により実施された。結果は、オペレーターが提供したターミナル出力に基づくものである:

  • テストモジュールがロードされ、その build-ID がロード済みモジュールの build-ID と一致した。
  • 既存の OpenVPN DCO 接続が正常に再接続された。
  • 別個のネットワーク名前空間で、MP インターフェースの作成と削除がサポートされた。
  • テストピアの作成、照会、設定、削除が可能であった。
  • 変更されたテスト CLI により、テストピアの VPN IPv4 アドレスが 192.0.2.2 から 192.0.2.3 に変更された。返されたピアの状態により、その変更が確認された。これは一時的なテスト名前空間内に限定され、運用中の VPN アドレスは変更されなかった。
  • レビュー対象のカーネルログには、該当する BUG、Oops、KASAN、general protection fault、soft lockup のメッセージは含まれていなかった。署名されていない out-of-tree モジュールの taint メッセージは存在していた。
  • テスト後、テスト用名前空間は削除され、ディストリビューションのモジュールが再ロードされた。運用中の VPN は再接続された。

決定的な VPN-IP 再ハッシュ回帰テスト

2026-10-06 に、2 つのスタンドアロンテストモジュールが、未パッチのバックアップとパッチ適用済みソースから抽出された実際の ovpn_peer_hash_vpn_ip() 関数を実行した。プライベートな合成オブジェクトはテスト中ずっと割り当てられたままであった。ハッシュテーブルからの削除完了をシミュレートした後、テストは ovpn->lock の下で再びこの関数を呼び出した。

プロパティパッチ適用前パッチ適用後
アクティブなピアが IPv4 および IPv6 テーブルに登録されるPASSPASS
削除されたピアが IPv4 および IPv6 テーブルの外に留まるFAILPASS
削除されたピアの再ハッシュ後に占有されている IPv4 / IPv6 バケット1 / 10 / 0

これは、削除後の特定の不変条件に対する実行時チェックであり、並行削除レースや use-after-free の再現ではない。ベースラインの不変条件の失敗は想定どおりであり、このテストが 2 つの関数バージョンを区別できることを示している。その後、両方のモジュールはアンロードされた。運用中の VPN はアドレスを変更せずにアクティブなままであった。レビュー対象のログ区間にはテスト結果が含まれており、該当する BUG、Oops、general protection fault、soft lockup のメッセージは含まれていなかった。

記録された出力、再現手順、および制限については TESTING.md を参照のこと。ジェネレーターは tests/prepare-ovpn-rehash-regtest.py にある。

決定的なトランスポートエンドポイント / float 回帰テスト

2026-10-06 に、スタンドアロンテストモジュールは、未パッチおよびパッチ適用済みのソースから抽出された実際の ovpn_peer_endpoints_update() 関数を、本番用のバインディングヘルパーとともに実行した。IPv4 と IPv6 の両方について、プライベートな合成パケットヘッダーによりアクティブなピアを float させ、その後、そのハッシュエントリが削除されつつストレージが割り当てられたままの状態で、別のエンドポイント更新を発生させた。

プロパティ (IPv4 と IPv6 の両方)パッチ適用前パッチ適用後
アクティブなピアが float し、トランスポートテーブルに留まるPASSPASS
モデル化された削除後にエンドポイント更新に到達するPASSPASS
削除されたピアがトランスポートテーブルの外に留まるFAILPASS
削除されたピアの更新後に占有されているトランスポートバケット10

パケットは送信されず、実際のインターフェース、VPN ピア、アドレスも変更されなかった。その後、両方のテストモジュールはアンロードされた。運用中の VPN はアドレスを変更せずにアクティブなままであった。レビュー対象のログ区間には 4 つのテスト結果が含まれており、該当する BUG、Oops、general protection fault、soft lockup の行は含まれていなかった。

範囲、再現手順、および記録された結果については FLOAT-TESTING.md と tests/prepare-ovpn-float-regtest.py を参照のこと。

追加の KASAN 実行とソースレビュー

2026-10-06 に、レビュー対象の Ubuntu ソースを CONFIG_KASAN=y、CONFIG_KASAN_GENERIC=y、CONFIG_KASAN_OUTLINE=y、CONFIG_STACKTRACE=y を指定したフルカーネルとしてビルドしました。そのリリース文字列は 7.0.14-ovpn-kasan でした。カーネルとモジュールのビルドは終了コード 0 を返しました。VM はこのカーネルで起動し、その管理用 VPN サービスはアクティブでした。

既存の合成 float モジュールはそのフルビルドに対して再ビルドされ、転送後にチェックサムと vermagic で検証されました。IPv4 と IPv6 の結果は変わらず、active-peer と endpoint-update のチェックは両方のバリアントで合格しました。removed-peer の不変条件はベースラインでは失敗し、パッチ適用済みバリアントでは合格しました。提供されたフィルタ済みテストログには KASAN エラーは現れませんでした。これは合成テストの KASAN 有効実行であり、元の use-after-free の KASAN 再現ではありません。VPN-IP のみのテストは KASAN 下で再実行されませんでした。

テストモジュールはアンロードされました。その後 VM はディストリビューションカーネル 7.0.0-38-generic に戻り、管理用 VPN がアクティブであることが確認されました。別途インストールされたテストカーネルとそのモジュールは今後のテストのために利用可能なまま残っています。ディストリビューションカーネルは GRUB のデフォルトとして設定されています。

設定、正確な結果、成果物のハッシュ、制限事項については KASAN-TESTING.md を参照してください。オペレーター提供のソース抜粋に基づく、ロック、参照、解放パスに焦点を当てたレビューについては SOURCE-REVIEW.md を参照してください。

制限

並行削除/再ハッシュの競合は再現されませんでした。変更された両方の再ハッシュパスは、決定論的な合成の削除後状態でテストされました。その後 KASAN 下で再実行されたのは float テストのみです。これは実際の並行性下での完全な正しさを立証するものではありません。エクスプロイトベースの回帰テスト、KCSAN 有効実行、lockdep 有効実行、持続的な並行性テストはいずれも実施されていません。これらのテストは、認証済みネットワーク受信パスの全体、実際の本番削除コールバック、すべてのハッシュテーブルルックアップを網羅するものではありません。実際の参照カウントと RCU によるピアの破棄は静的にレビューされたものであり、完了したライフサイクルテストによって実行されたものではありません。以前の VPN IPv4 CLI テストは API の挙動のみを確認したものです。

以前のスタンドアロンのバックポートモジュールは永続的にインストールされませんでした。別の KASAN テストカーネルが後からインストールされ、既存の VM 上で手動で起動されました。その VM の管理用 VPN はテスト中も使用され続けており、完全に使い捨ての環境ではありませんでした。VM はディストリビューションカーネルに戻っています。これらの結果はテストカーネルの本番展開を推奨するものではありません。他の OpenVPN カーネル脆弱性はこのパッチの範囲外でした。バイナリリリースは提案されていません。

一時的なモジュールテスト中の復旧

コンソールアクセスが可能な隔離されたテスト VM を使用してください。VPN サービスを停止すると SSH セッションが切断される可能性があります。ネットワーク名前空間はホストカーネルを共有するため、カーネルクラッシュから VM を保護するものではありません。

ディストリビューションのモジュールファイルは変更しないでください。テストモジュールが insmod のみでロードされた場合は、それを使用しているすべてのサービスを停止し、強制削除せずにアンロードし、modprobe ovpn で元のモジュールをロードしてから、コンソールからそれらのサービスを再起動してください。アンロードに失敗した場合は、強制アンロードするのではなく、残っている使用者を調査してください。永続的なインストールを行っていない場合、再起動によってもディストリビューションのモジュールに戻ります。

ツールをダウンロード