Pull Request on 2026年07月06日

dotnet/runtimeにマージされたPull RequestをAIで日本語要約

注意点

このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。


目次

  1. #130249 Bump minimatch from 3.1.2 to 3.1.5 in /src/mono/browser/runtime
  2. #130246 Use timespec_get on iOS/tvOS/MacCatalyst now that 13.0 is the minimum version
  3. #130244 Remove unused CommandLineParser package dependency
  4. #130224 [release/10.0] Publish GCHandle assignments with release semantics
  5. #130217 JIT: fix incorrect bounds check removal for Phi indices with a negative minimum
  6. #130192 Update Matrix4x4 paths to use the new xplat intrinsics
  7. #130188 Fix ci-failure-scan failure inventory
  8. #130163 Re-enable source generator support for inaccessible [JsonInclude] members
  9. #130160 Enable DisabledRuntimeMarshalling tests on native AOT
  10. #130154 [main] Source code updates from dotnet/dotnet
  11. #130147 [release/10.0] Handle QueueUserAPC2 failure during thread suspension
  12. #130094 Suppress [Experimental] diagnostics in System.Text.Json source generator output
  13. #130083 Async Profiler: Combine instrumentation flags usage over profiler/tpl/debugger.
  14. #130061 Handle transient shared-memory directory state during named mutex open/create
  15. #130060 Bump js-yaml from 4.1.1 to 4.3.0 in /src/mono/browser/runtime
  16. #129996 Cache AES one-shot cipher handles
  17. #129988 [release/10.0] Source code updates from dotnet/dotnet
  18. #129987 Bump js-yaml from 4.1.1 to 4.3.0 in /src/native
  19. #129928 Bump minimatch from 3.1.2 to 3.1.5 in /src/native
  20. #129907 Preserve integer context for interpreter in DAC fallback stackwalks
  21. #129673 Slim ThreadStressLogData and simplify GetStressMessages API
  22. #129639 Add X25519 to Microsoft.Bcl.Cryptography
  23. #129518 Bump ws from 8.20.1 to 8.21.0 in /src/libraries/System.Net.WebSockets.Client/tests
  24. #129451 Bump ws from 8.20.1 to 8.21.0 in /src/libraries/System.Net.Http/tests/FunctionalTests
  25. #129441 [automated] Merge branch 'release/9.0' => 'release/9.0-staging'
  26. #129440 [automated] Merge branch 'release/8.0' => 'release/8.0-staging'
  27. #129412 Update container image digests
  28. #127232 Fixed invoke on structs with not initialized byref fields
  29. #126427 Fix crossgen2 comparison build failure by pre-initializing dotnet CLI
  30. #125275 Delete orphaned Mono.Options/Options.cs after tlens removal (fixes #126538)

#130249 Bump minimatch from 3.1.2 to 3.1.5 in /src/mono/browser/runtime

概要

Mono WebAssembly ランタイムの依存パッケージ minimatch を 3.1.2 から 3.1.5 にアップデートするセキュリティ/バグフィックスの更新です。

変更内容

  • src/mono/browser/runtime/package-lock.json: minimatch パッケージロックファイルの更新(3.1.2 → 3.1.5)
  • 主な改善内容:
    • グロブスター(**)パターンの部分マッチング修正
    • ** パターンの再帰制限による大幅なパフォーマンス改善
    • ReDoS(正規表現サービス拒否)攻撃に関する警告ドキュメント追加

パフォーマンスへの影響

  • 改善: グロブスター(**)パターンの再帰制限により、特に複雑なパターンマッチングでパフォーマンスが大幅に向上
  • セキュリティ面での改善により、ReDoS 脆弱性のリスク軽減

関連Issue

なし

その他

  • Dependabot による自動更新PR
  • ビルドプロセスやランタイム機能への直接的な影響はなく、開発環境のツールチェーン強化に該当

#130246 Use timespec_get on iOS/tvOS/MacCatalyst now that 13.0 is the minimum version

  • 作成者: @Copilot
  • 作成日時: 2026年07月06日 12:04:18(UTC)
  • マージ日時: 2026年07月06日 16:41:38(UTC)
  • ラベル: area-Host

概要

iOS/tvOS/MacCatalystの最小デプロイメントターゲットが13.0になったため、LogAssertの時間取得処理を簡素化しました。これらのプラットフォームではtimespec_getが利用可能になり、gettimeofdayへのフォールバックが不要になりました。AndroidはAPI レベルの制限により引き続きフォールバックを使用します。

変更内容

  • src/coreclr/utilcode/debug.cpp: LogAssertの時間取得ロジックを修正
    • gettimeofdayフォールバックの条件からHOST_IOS、HOST_TVOS、HOST_MACCATALYSTを削除
    • これらのプラットフォームではtimespec_getを直接使用
    • HOST_ANDROIDのみフォールバック条件として残す
    • 関連コメントをAndroidのみに更新

パフォーマンスへの影響

影響なし(両APIの動作は同等、プラットフォーム互換性の向上のみ)

関連Issue

なし

その他

  • 内部実装の変更(debug.cppは非公開API)
  • 破壊的変更なし、互換性への影響なし
  • デプロイメントターゲットの変更に伴う整理で、コード保守性の向上につながります

#130244 Remove unused CommandLineParser package dependency

概要

CommandLineParser NuGetパッケージへの未使用な依存関係を削除しました。テストプロジェクトから該当する参照を除去することで、プロジェクトの依存関係を整理しています。

変更内容

  • eng/Versions.props: CommandLineParserのバージョン定義を削除(-1行)
  • src/tests/Common/external/external.csproj: CommandLineParserへのパッケージ参照を削除(-2行)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

なし


#130224 [release/10.0] Publish GCHandle assignments with release semantics

概要

GCHandle の割り当てに対してリリースセマンティクス(release semantics)を適用するバグ修正。Arm64 の弱いメモリモデルで発生していたストレステストの失敗を解決します。

変更内容

  • src/coreclr/gc/handletable.inl: GCHandle 割り当て処理にリリースセマンティクスを追加(+6行、-4行)

パフォーマンスへの影響

影響なし(メモリバリア追加により若干のオーバーヘッドが考えられますが、正確性向上に対する必要な変更)

関連Issue

#130213

その他

  • このPRはメインラインの #130213 から release/10.0 ブランチへのバックポート
  • 顧客が該当ワークロードで修正を検証済み
  • Arm64 プラットフォームの弱いメモリモデルに関連する修正であり、マルチスレッド環境での GCHandle の同期性を確保するもの

#130217 JIT: fix incorrect bounds check removal for Phi indices with a negative minimum

  • 作成者: @EgorBo
  • 作成日時: 2026年07月05日 12:29:18(UTC)
  • マージ日時: 2026年07月06日 15:49:29(UTC)
  • ラベル: area-CodeGen-coreclr

概要

JIT の bounds-check elimination(配列境界チェック最適化)における正確性バグを修正します。Phi ノード(複数の分岐から来た値)がマイナスの定数を含む場合、最大値ではなく最小値が 0 以上であることを確認する必要があります。この修正により、負の最小値を持つ Phi インデックスを使用した配列アクセスで発生していた AV(アクセス違反)を防止します。

変更内容

  • src/coreclr/jit/assertionprop.cpp: bounds-check 冗長性チェックのロジックを更新し、インデックスの最小値が 0 以上であることを検証するよう改善。従来は最大値のみを確認していました。
  • src/coreclr/jit/rangecheck.cpp / rangecheck.h: Phi インデックスの最小値情報を取得するためのヘルパー機能を追加。
  • src/tests/JIT/Regression/JitBlue/Runtime_130216/Runtime_130216.cs: 負の最小値を持つ Phi インデックスケースの回帰テストを新規追加。

パフォーマンスへの影響

影響なし(コンパイル時の bounds-check 冗長性判定ロジックの改善のため、ランタイムパフォーマンスへの直接的な影響はありません)

関連Issue

#130216

その他

  • JIT コンパイラの内部実装(assertionprop: assertion propagation)の修正で、公開 API への破壊的変更はありません。
  • diffs がほぼなく、テストがパスしています。

#130192 Update Matrix4x4 paths to use the new xplat intrinsics

概要

Matrix4x4.Implの数学カーネルをISA固有の実装からクロスプラットフォーム対応のVector128 APIを使用した実装に移行します。SSE専用パスとスカラーフォールバックを置き換え、WebAssembly SIMD対応パスも追加されます。

変更内容

  • Matrix4x4.Impl.cs:
    • InvertメソッドをVector128xplat プリミティブ(concat/zip/unzip/shuffle + Shuffle2)を使用した実装に変更
    • TransposeメソッドをVector128.ZipLower/ZipUpperを使用したシンプルな実装に変更
    • GetDeterminantメソッドをVector128ベースの実装に更新、SSE/Arm64/Wasm SIMD対応のShuffle2ヘルパーを追加
    • 全体として133行削減(+322/-455行)

パフォーマンスへの影響

ベンチマーク結果の記載なし。クロスプラットフォーム対応化による最適化が期待される一方、具体的なパフォーマンス数値は提供されていません。

関連Issue

なし

その他

本PR作成者は追加のコード パスをイントリンシクスで更新する別PRを計画中としており、本PRはその第一段階です。インライン化が必要な処理の簡素化も今後予定されています。


#130188 Fix ci-failure-scan failure inventory

概要

ci-failure-scan ワークフロープロンプトを更新し、ソースビルドの複数の異なる障害ファミリが単一のログに統合されるのを防ぐため、すべての関連する失敗した Helix ワークアイテムを先に列挙した後に署名をグループ化するよう改善しました。これにより、1つのソースビルドに複数の失敗ケースが存在する場合でも、すべての障害が正しく検出されるようになります。

変更内容

  • .github/workflows/ci-failure-scan.md: Step 3 の指示を強化し、署名の抽出/グループ化の前にすべての関連する失敗した Send to Helix タスク/Helix ワークアイテムを完全に列挙することを要求するよう変更
  • .github/workflows/ci-failure-scan.lock.yml: プロンプト変更に対応するため gh aw compile で再生成された compiled workflow

パフォーマンスへの影響

影響なし

関連Issue

#130126、#130105

その他

このPRは agentic workflow の動作を修正するもので、過去のワークフロー実行(定義138のソース/フォローアップケース)に対してローカルで検証済み。複数の異なる障害ファミリ(AsyncTransactionScopeTests.AsyncTSTest と System.Linq.AsyncEnumerable.Tests のスレッドID アサーション)が正しく検出されることを確認しています。


#130163 Re-enable source generator support for inaccessible [JsonInclude] members

概要

System.Text.Json ソースジェネレータで、[JsonInclude]属性が付与されたアクセス不可能なメンバー(private/protected/internal)のサポートを再度有効化します。.NET 8以降では[UnsafeAccessor]、それ以前では リフレクション フォールバックを使用して、これらのメンバーへのアクセスを自動生成します。以前は外部依存(MCP SDK)のワークアラウンドに対応するため意図的に無効化されていましたが、その依存関係が削除されたため復活させます。

変更内容

ソースジェネレータ(内部実装)

  • JsonSourceGenerator.Parser.cs: アクセス不可能な[JsonInclude]メンバーに対してHasJsonInclude = falseを強制しなくなり、SYSLIB1038診断を報告しなくなりました。メンバースキップ条件はhasJsonIncludeを直接参照するように変更。
  • JsonSourceGenerator.DiagnosticDescriptors.cs: 診断SYSLIB1038を完全に削除(ディスクリプタとローカライズ文字列)。

テスト

  • PropertyVisibilityTests.NonPublicAccessors.cs: 共有テスト理論を更新し、private/internal/protectedメンバー(プロパティ/フィールド/初期化専用)に対してリフレクションとソースジェネレータの両方で完全なラウンドトリップをアサート。
  • UnsafeAccessors_PrivatePropertiesベースライン(netcoreappとnet462)を再生成し、プライベートメンバーのアクセサ生成コードを反映。
  • 診断テスト:SYSLIB1038警告が生成されないことをアサート。
  • PropertyVisibilityTests.cs:ソースジェネレータの旧動作を検証していたオーバーライドを削除。

パフォーマンスへの影響

影響なし

関連Issue

#88519、#124650

その他

  • 診断SYSLIB1038は完全に削除されますが、list-of-diagnostics.mdに記録されたまま残り、今後のIDの再利用を防止します。既存のNoWarn/#pragma warning disable抑制を持つコンシューマーに対応。
  • .NET 8以降では[UnsafeAccessor]を、.NET Framework等ではリフレクション フォールバックを使用し、複数のターゲットフレームワーク間での一貫性を確保。

#130160 Enable DisabledRuntimeMarshalling tests on native AOT

概要

DisabledRuntimeMarshalling インタロップテストを Native AOT で実行可能にするPRです。ほとんどのテストは既に合格していましたが、Native AOT レベルのテストゲーティング(NativeAotIncompatible属性)を削除し、AOT ツールチェーンの UnmanagedCallersOnly 検証をマーシャリング要件検出に対応させました。1つのテストは Native AOT ではスキップされます(例外が native transition をエスケープする fail-fast 動作による設計上の制限)。

変更内容

  • テスト: DisabledRuntimeMarshalling テスト群から Native AOT 除外マーク(NativeAotIncompatible、ActiveIssue(... IsNativeAot))を削除(5ファイル)
  • ツールチェーン検証: Marshaller.cs に共有マーシャラー列挙と「マーシャリング必須」判定ロジックを追加し、CorInfoImpl.cs の UnmanagedCallersOnly 検証に統合
  • コード共有化: ReadyToRun マーシャラーの重複した marshalling-required ロジック(129行)を削除し、共通実装に統一
  • テストスキップ: UnmanagedCallersOnly.cs で1つのテストを ConditionalFact を使用して Native AOT でスキップする設定に変更

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • この変更は interop 関連の内部実装(ツールチェーン検証ロジック)および テストインフラストラクチャの改善です。公開 API への影響はありません。
  • Native AOT での UnmanagedCallersOnly メソッドはマーシャリングが必要なシグネチャを拒否するようになります(AOT 互換性の強化)。

#130154 [main] Source code updates from dotnet/dotnet

概要

VMR(Virtual Monolithic Repository)からdotnet/runtimeへのコードフロー更新です。複数のNuGetパッケージ依存関係(Roslyn、Arcade、NuGet関連ツール、LLVM関連ランタイムなど)が更新されています。ビルド設定、テスト構成、CMakeLists、ホットリロード関連の構成ファイルにも変更が含まれています。

変更内容

  • パッケージ依存関係の更新:

    • Microsoft.CodeAnalysis及び関連アナライザーを5.9.0→5.10.0に更新
    • Microsoft.DotNet.Arcade.Sdkなどのビルドツールを11.0.0-beta.26324.112→11.0.0-beta.26352.103へ更新
    • NuGetパッケージ関連(Frameworks、Packaging、ProjectModel、Versioning)を7.9.0-rc.32512→7.9.0-rc.35303に更新
    • System.Text.Json、System.Reflection.Metadataなどランタイムライブラリを更新
    • 複数プラットフォーム対応のMicrosoft.NETCore.Runtime.JIT.Tools、LLVM関連パッケージを更新
  • ビルド/テスト設定の変更:

    • eng/common/core-templates/job/helix-job-monitor.yml:Helix監視ジョブの構成変更
    • eng/common/core-templates/steps/send-to-helix.yml:Helixへの送信ステップの拡張
    • global.json:ツールチェーン設定の更新
    • src/coreclr/nativeaot/BuildIntegration/Microsoft.DotNet.ILCompiler.SingleEntry.targets:NativeAOT単一エントリポイント対応
  • テスト修正:

    • src/libraries/System.Runtime/tests/System.Reflection.Tests/FieldInfoTests.cs:リフレクションテストの調整
  • 構成の削除:

    • src/workloads配下のVSSetup関連ファイル、mono_wasm_mobile.vsmanprojなどが削除
  • その他:

    • 複数のプラットフォーム固有実装(Linux、OSX、SunOS、Windows)の軽微な修正
    • CMakeLists.txtの更新
    • ホットリロード生成タスクプロジェクト設定の変更

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRはコードフロー型の自動更新であり、dotnet/dotnetリポジトリのコミットbcaa8d44d57494224d443dba7c1dfed381ad5528から生成されています。複数のリポジトリ(arcade、aspnetcore、diagnostics、efcore、fsharp、msbuild、nuget.client、roslyn、sdk等)の関連変更も含まれます。


#130147 [release/10.0] Handle QueueUserAPC2 failure during thread suspension

概要

GC スレッド サスペンション中に QueueUserAPC2 が失敗した場合の処理を改善するバグ修正です。ストレスフルなワークロード下でスレッド サスペンションがハングする問題を解決します。本修正は既に main ブランチに数ヶ月間存在し、ストレス環境での再現が報告されていません。

変更内容

  • src/coreclr/vm/threadsuspend.cpp: QueueUserAPC2 の失敗時にリトライロジックを実装
  • src/coreclr/nativeaot/Runtime/windows/PalMinWin.cpp: 不要なコード(3行)を削除

パフォーマンスへの影響

影響なし

関連Issue

#130144、#122768

その他

  • 回帰バグ: .NET 9 でデフォルト有効となった Windows CET セキュリティ機能のサポート導入時に発生
  • リスク評価: 低(修正は main で既に検証済み)
  • 影響範囲: Windows 上の GC スレッド サスペンション処理(内部実装)
  • 顧客報告: 有
  • 内部発見: 2025年12月

#130094 Suppress [Experimental] diagnostics in System.Text.Json source generator output

概要

System.Text.Json ソースジェネレータが、生成コード内で参照される [Experimental] 属性付きシンボルによる診断を抑制するように更新されました。既存の [Obsolete] 抑制メカニズムと同様に、生成されたコードは [Experimental] シンボルを参照する際に #pragma warning disable <id> ディレクティブを出力します。

変更内容

  • JsonSourceGenerator.Parser.cs: 型グラフ(型、メンバー、メンバーの型、コンストラクタパラメータ、[JsonDerivedType] ターゲット、コンバーター/クラシファイアファクトリなど)全体の実験的診断IDを収集し、TypeGenerationSpec と ContextGenerationSpec に格納
  • JsonSourceGenerator.Emitter.cs: 発見された実験的診断IDに対して、生成ファイルごとに #pragma warning disable <id> ディレクティブを出力
  • TypeGenerationSpec.cs / SourceGenerationOptionsSpec.cs: 型生成モデルに ExperimentalDiagnosticIds プロパティを追加
  • KnownTypeSymbols.cs: System.Diagnostics.CodeAnalysis.ExperimentalAttribute のシンボル解析を追加
  • JsonSourceGeneratorTests.cs: 複数の実験的参照シナリオと抑制スコープを検証するテストケースを追加

パフォーマンスへの影響

影響なし

関連Issue

#119451

その他

生成コードはユーザーのメンバーを参照する必要があり、ユーザーがその参照を削除できないため、[Experimental] 属性は [Obsolete] と同じ扱いになります。PR は Issue #119451 の生成コード側のみを対応しています(内部実装の変更)。


#130083 Async Profiler: Combine instrumentation flags usage over profiler/tpl/debugger.

概要

非同期計装(async profiler、TPL EventSource、debugger)の3つのクライアントが個別の条件チェックで統一されたフラグゲートを共有するようにリファクタリングされました。この変更により、ILLinkerが無効なフラグパスを確実にDCE(Dead Code Elimination)でき、特にhotp-pathでの条件チェック命令数が削減されます。AsyncInstrumentation.IsActiveは1回のフラグロードと比較で済み、個別のAsyncInstrumentation.IsEnabled.AsyncProfiler/AsyncDebugger/Tplはシンプルなビットチェックに最適化されます。

変更内容

  • AsyncInstrumentation.cs(内部実装):3つのクライアント向けに個別のIsXxxSupportedチェック(IsAsyncProfilerSupported/IsAsyncDebuggerSupported/IsTplSupported)を追加し、各チェックをtrimmer定数でgateすることで機能削除時のDCEを可能に。LoadFlags()とLoadFlags(out Flags)統一APIを導入し、UpdateTplFlags()でTPLの有効状態をプッシュ。
  • awaiters/method builders(TaskAwaiter、ValueTaskAwaiter、ConfiguredValueTaskAwaitable、YieldAwaitable、AsyncTaskMethodBuilder、PoolingAsyncValueTaskMethodBuilder):個別の条件チェックをIsActive + LoadFlags(out flags)パターンに置き換え、フラグスナップショットを通す。
  • TaskContinuation.cs:TPLをファーストクラスのクライアントとして昇格し、TplEventSource.Log.IsEnabled()直接参照をAsyncInstrumentation.IsEnabled.Tpl(flags)に変更。
  • AsyncStateMachineDispatcher.cs:ディスパッチャーの作成/再開/完了/unwrapチェックポイントにフラグスナップショットを流す。
  • TplEventSource.cs:OnEventCommandでAsyncInstrumentation.UpdateTplFlags()を呼び出し、状態同期。

パフォーマンスへの影響

改善点:

  • hotp-pathでの条件チェック削減:複数の分散チェック(TplEventSource.Log.IsEnabled()、Debugger.IsSupported、プロファイラー個別チェック)が1回のフラグロード + 複数の単純ビットチェックに統一。
  • ブランチ予測効率向上:統一されたフラグによる高予測可能性の分岐。
  • ILLinker DCE効果:機能が無効化されている場合、計装コード全体またはクライアント個別の計装呼び出しが削除可能。

ベンチマーク結果の提供はなし。

関連Issue

#130083

その他

  • 機能的・動作上の変更なし(ゲーティング/構造リファクタリングのみ)。テスト変更不要。
  • デバッガー連携は保持:Task.s_asyncDebuggingEnabledおよびSynchronizeFlags契約に関するドキュメント追加。デバッガーは引き続き直接フラグ書き込みを行い、Flags.Synchronizeビットで次チェックポイント時の再同期をトリガー。
  • NativeAOTではAsyncStateMachineDispatcherのプロファイラーサポートはfalseのまま、動作変更なし。

#130061 Handle transient shared-memory directory state during named mutex open/create

  • 作成者: @Copilot
  • 作成日時: 2026年07月01日 01:22:53(UTC)
  • マージ日時: 2026年07月06日 23:16:56(UTC)
  • ラベル: area-System.Threading

概要

Unix上の名前付きミューテックスで使用される共有メモリディレクトリの検証ロジックを改善し、ディレクトリ作成中の所有権やアクセス権の一時的な状態変化に対応するようにしました。複数プロセスが同時にディレクトリを作成・開こうとする際の競合状態を緩和し、CI環境でのテスト失敗を解決します。

変更内容

  • SharedMemoryHelpers.EnsureDirectoryExists の拡張

    • 共有メモリファイルと同様の短時間リトライ機構を追加
    • ディレクトリの所有権やモード設定が進行中の状態を検出した場合、リトライして対応
  • 対処する失敗シナリオ

    • ユーザースコープディレクトリが一時的に間違ったUIDで所有されているケース
    • グローバルディレクトリが一時的に期待と異なる権限で報告されるケース
  • ディレクトリ作成ロジックの簡素化

    • グローバルロック非保持時に一時ディレクトリ + リネームの手法を廃止
    • 一時的な状態変化への短時間リトライに依存する設計に統一

パフォーマンスへの影響

リトライ機構の追加により、通常のケースでは若干のオーバーヘッドが発生する可能性がありますが、詳細なベンチマーク数値は提供されていません。競合状態を緩和することで、全体的には信頼性向上に寄与します。

関連Issue

#130056

その他

MutexTests.CrossProcess_NamedMutex_ConcurrentCreateOrOpen テストの CI での失敗フラッキネスを解決する目的の変更です。Unix環境(/tmp/.dotnet*/shm)での状態遷移を適切に処理することで、マルチプロセス環境での堅牢性を向上させます。


#130060 Bump js-yaml from 4.1.1 to 4.3.0 in /src/mono/browser/runtime

概要

Mono ブラウザランタイムの依存ライブラリ js-yaml をバージョン 4.1.1 から 4.3.0 へアップデートするもの。 セキュリティ関連の改善として maxTotalMergeKeys オプションがバックポートされています。

変更内容

  • src/mono/browser/runtime/package-lock.json: js-yaml の依存関係を 4.1.1 から 4.3.0 にアップデート

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

セキュリティ改善: js-yaml 4.3.0 では YAML マージ処理(<<)の安全性向上として、maxTotalMergeKeys オプション(デフォルト値: 10000)が導入されました。これにより、単一の load()/loadAll() 呼び出し内で処理されるマージキーの総数を制限でき、ReDoS 関連の攻撃を軽減できます。Dependabot 互換性スコアは高い状態です。


#129996 Cache AES one-shot cipher handles

  • 作成者: @vcsjones
  • 作成日時: 2026年06月29日 19:24:10(UTC)
  • マージ日時: 2026年07月06日 20:07:28(UTC)
  • ラベル: area-System.Security

概要

AES暗号化のワンショット操作(EncryptCbc、DecryptCbc、EncryptEcb、DecryptEcb)におけるcipher handleをキャッシュし、繰り返し呼び出し時の再利用を実現する変更です。同時実行によるデータ破損を防ぐためConcurrencyBlockを導入し、プラットフォーム実装(OpenSSLなど)の内部状態を保護しています。

変更内容

  • AesImplementation.cs: ワンショット操作用のcipher handleキャッシング機構を実装。GetOrCreateCachedLiteCipherメソッドでhandle再利用とキー変更時のキャッシュ無効化を管理。キー初期化ロジックをGetKey()内で直接実行するよう リファクタリング
  • AesCng.Windows.cs: Windows CNG実装でのハンドル管理を対応(+146行/-51行)

パフォーマンスへの影響

単発呼び出し:約40バイトのメモリ増加(Aesクラスサイズ増加)による軽微な回帰。ConcurrencyBlockのオーバーヘッドはノイズレベル

キャッシュヒット時(2回目以降の呼び出し):大幅な改善

  • 実行時間:26~30%短縮(例:EncryptCbcTwice 16バイト時 799.3ns→558.1ns、比率0.70)
  • メモリ割り当て:9%削減(360B→328B、比率0.91)
  • データサイズに依存せず一貫した改善効果を確認

関連Issue

#129996

その他

CFB、3DES、DES、RC2はキャッシング対象外。CFBはフィードバックサイズがプラットフォーム依存でキャッシュキーが複雑になるため、3DES等はレガシーアルゴリズムで性能最適化の優先度が低いため。

互換性への影響:内部実装変更であり、公開API層に破壊的変更なし。ただし、ワンショット操作の同時実行は引き続き未サポート(ConcurrencyBlockにより防御)。


#129988 [release/10.0] Source code updates from dotnet/dotnet

概要

dotnet/dotnetリポジトリからのコードフロー更新です。VMR(Virtual Monolithic Repository)経由で複数のNuGetパッケージと依存関係の更新がdotnet/runtimeのrelease/10.0ブランチに反映されます。

変更内容

  • NuGet.config: フィード構成の更新(+1/-1)
  • eng/Version.Details.props: バージョン情報の更新(+29/-29)
  • eng/Version.Details.xml: バージョン詳細情報の更新(+69/-69)
  • global.json: グローバルツールバージョン情報の更新(+3/-3)

依存関係更新:

  • Microsoft.CodeAnalysis関連: 5.0.0-2.26326.102 → 5.0.0-2.26329.112
  • Microsoft.DotNet.Arcade.Sdk等ビルドツール: 10.0.0-beta.26326.102 → 10.0.0-beta.26329.112
  • NuGet.Frameworks/Packaging/ProjectModel/Versioning: 7.0.3-rc.32702 → 7.0.3-rc.33012
  • その他、Microsoft.DotNet.Cecil、System.Text.Json、System.Reflection.Metadataなど複数のコアライブラリが更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • このPRは自動化されたコードフロー更新(dotnet-maestro[bot]による)
  • 関連するソースリポジトリの変更: dotnet/runtime、dotnet/sdk、dotnet/source-build-assets、dotnet/templating、dotnet/windowsdesktopも同期
  • ビルド情報: Build 20260629.12(Maestro build 320819)、コミット: ec7624fc8d1183d3f6cbd1a460ed2cc7a6afa524

#129987 Bump js-yaml from 4.1.1 to 4.3.0 in /src/native

概要

/src/nativeディレクトリの依存関係であるjs-yamlをバージョン4.1.1から4.3.0にアップデートします。このアップデートはセキュリティ修正を含み、YAMLマージ処理のDoS攻撃対策としてmaxTotalMergeKeysオプション(デフォルト値:10000)が追加されています。

変更内容

  • src/native/package-lock.json:js-yamlの依存関係をバージョン4.3.0に更新(マイナー/パッチ更新)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

セキュリティ改善として、YAML処理時の以下の機能が実装されました:

  • maxTotalMergeKeysオプン(デフォルト:10000):YAMLマージ(<<)で処理されるキーの総数制限
  • maxAliasesオプション(デフォルト:-1):YAMLエイリアスの数を制限

このアップデートは互換性スコアが計算されており、Dependabotが競合を自動解決します。


#129928 Bump minimatch from 3.1.2 to 3.1.5 in /src/native

概要

/src/nativeディレクトリの依存パッケージminimatchを3.1.2から3.1.5にアップグレードします。このアップグレードには、globstarパターンのマッチング修正、ReDoS脆弱性に関する警告ドキュメント追加、および**パターンの再帰制限によるパフォーマンス改善が含まれます。

変更内容

  • src/native/package-lock.json: minimatchのバージョンを3.1.2から3.1.5に更新(自動生成ファイルのため、バージョン参照のみ変更)

パフォーマンスへの影響

改善あり:minimatch 3.1.4で**(globstar)パターンの再帰を制限し、マッチング性能が大幅に向上しています。詳細なベンチマーク数値は提供されていません。

関連Issue

なし

その他

  • セキュリティ関連:ReDoS(正規表現サービス妨害)脆弱性に関する警告ドキュメントが追加されています
  • 機能改善:globstarパターンの部分一致動作が修正されています
  • このPRは依存パッケージ管理ツール(Dependabot)による自動更新です

#129907 Preserve integer context for interpreter in DAC fallback stackwalks

概要

ARM64でのDAC フォールバック コンテキスト問題を修正します。リモートデバッグ時にShimRemoteDataTarget::GetThreadContextがE_NOTIMPLを返す場合、DACが明示的フレームからコンテキストを合成しますが、ARM64ではインタプリタスタックウォークの際に整数レジスタ(X0)がスキップされていました。この修正により、フォールバックコンテキストフラグにDT_CONTEXT_INTEGERを含めることで、X0が一貫して保持され、StackFrameIterator::ResetRegDispでのアサート/クラッシュを防ぎます。

変更内容

  • src/coreclr/debug/daccess/dacdbiimpl.cpp: インタプリタのフォールバックコンテキストフラグにDT_CONTEXT_INTEGERを追加(+7行)

パフォーマンスへの影響

影響なし

関連Issue

#129907

その他

本修正はARM64アーキテクチャに特化した変更で、インタプリタスタックウォーク時のレジスタコンテキスト処理を安定化させます。AMD64およびARMアーキテクチャではすでにDT_CONTEXT_INTEGERが含まれていたため、ARM64での一貫性を確保するものです。


#129673 Slim ThreadStressLogData and simplify GetStressMessages API

概要

ThreadStressLogDataの公開APIサーフェスを縮小し、GetStressMessagesAPIを簡潔にするリファクタリング。ThreadStressLogDataを8フィールドから3フィールド(Address、ThreadId、WriteHasWrapped)に削減し、GetStressMessagesのシグネチャをThreadStressLogDataパラメータからTargetPointerアドレスに変更。内部実装の詳細(チャンクポインタ、ライトポジション)を隠蔽し、コントラクト実装が内部でスレッスログデータを再読込。

変更内容

  • IStressLog.cs: ThreadStressLogDataを3フィールドに削減、GetStressMessages(TargetPointer threadStressLogAddress)シグネチャに変更(公開API)
  • StressLog.cs: コントラクト実装を簡略化、アドレスからThreadStressLogデータを内部で再読込
  • SOSDacImpl.cs: メッセージ列挙子生成を簡略化、アドレスを直接コントラクトに渡す
  • StressLogAnalyzer.cs、StressLogDumpTests.cs: GetStressMessages呼び出し時にlog.Address/thread.Addressを渡すよう更新
  • 設計ドキュメント: 変更内容を反映

パフォーマンスへの影響

影響なし

関連Issue

#129272(StressLog列挙用ISOSDacInterface17追加)への後続作業

その他

破壊的変更。GetStressMessagesの呼び出し元はThreadStressLogDataからTargetPointerアドレスを抽出して渡す必要があります。内部トラバーサル状態(NextPointer、CurrentPointer、ChunkListHead、ChunkListTail、CurrentWriteChunk)は公開APIから削除されコントラクト実装に隠蔽されました。


#129639 Add X25519 to Microsoft.Bcl.Cryptography

  • 作成者: @vcsjones
  • 作成日時: 2026年06月19日 21:44:22(UTC)
  • マージ日時: 2026年07月06日 20:15:36(UTC)
  • ラベル: area-System.Security

概要

X25519 Diffie-Hellman実装とそのテストスイートをsrc/libraries/Commonに移動し、共有化を実現するリファクタリング。Microsoft.Bcl.Cryptographyを拡張してX25519 APIをダウンレベルターゲットで公開し、.NET 11以上ではSystem.Security.Cryptographyに型転送。また、CNG関連のヘルパーを中央集約化し、複数の暗号型間で重複を排除。

変更内容

  • Common への移動: X25519 実装テストを Common に共有化し、System.Security.Cryptography と Microsoft.Bcl.Cryptography が共有ソースを参照
  • Microsoft.Bcl.Cryptography の拡張: X25519 ビルドスイッチ、型フォワーダー、リソース文字列、ダウンレベル shim を追加して X25519 を downlevel TFM で公開
  • CNG ヘルパー の中央集約化: CngKey.Duplicate() ヘルパーと downlevel 向け RNG フィル・固定時間比較ヘルパーを CngHelpers.cs に集約。MLKem/MLDsa/SlhDsa 等から重複を排除
  • Interop 調整: Interop.NCryptDeriveKeyMaterial に Windows 10 ゲーティングロジックを追加し、ダウンレベル環境対応。NCrypt/BCrypt interop の細調整

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

ブロッキングレビューコメント:

  1. Interop.NCryptDeriveKeyMaterial.DeriveKeyMaterialTruncate が Environment.OSVersion による Win10 ゲーティング実装を採用しており、バージョン詐称の対象となる可能性がある。ダウンレベル環境で PlatformNotSupportedException の誤発生リスク
  2. Microsoft.Bcl.Cryptography の X25519 ビルドが現在 Windows 実装のみを含む。クロスプラットフォーム downlevel 対応を意図する場合、Apple/Android/OpenSSL 実装の追加またはテスト・期待値の調整が必要
  3. PR 説明に Microsoft.Bcl.Cryptography の新しいパブリック API サーフェスに対する api-approved Issue の参照がなく、API 承認ステータスが確認できない

#129518 Bump ws from 8.20.1 to 8.21.0 in /src/libraries/System.Net.WebSockets.Client/tests

概要

System.Net.WebSockets.Client テストの依存ライブラリ ws を 8.20.1 から 8.21.0 にアップデートしています。このアップデートにはリモートメモリ枯渇型のDoS脆弱性修正が含まれています。

変更内容

  • package.json: ws依存関係を 8.20.1 → 8.21.0 に更新
  • package-lock.json: ロックファイルを同期更新

パフォーマンスへの影響

8.21.0では maxBufferedChunks および maxFragments オプションが導入されており、メモリ使用量の制御が改善されています。これにより、小さなフラグメントを大量送信されるDoS攻撃時のメモリ枯渇を防止できます。

関連Issue

なし

その他

セキュリティ修正(重要度:高)

  • リモートメモリ枯渇型DoS脆弱性を修正(責任ある情報開示により Nadav Magier が報告)
  • 攻撃パターン: ピアが少ないネットワークトラフィックで大量の小さなフラグメントとデータチャンクを送信して、サーバー/クライアントをOOMで クラッシュさせる
  • 修正前の脆弱性ある環境では maxPayload オプション値を低くすることで軽減可能でした

#129451 Bump ws from 8.20.1 to 8.21.0 in /src/libraries/System.Net.Http/tests/FunctionalTests

概要

System.Net.Http機能テストで使用されているNode.js WebSocketライブラリ(ws)を8.20.1から8.21.0にバージョンアップします。このアップデートには、リモートメモリ枯渇(DoS)脆弱性の修正が含まれます。

変更内容

  • src/libraries/System.Net.Http/tests/FunctionalTests/package.json: ws依存関係を8.20.1→8.21.0に更新
  • src/libraries/System.Net.Http/tests/FunctionalTests/package-lock.json: 依存関係ロックファイルを更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

セキュリティ修正: ws 8.21.0では以下の脆弱性が修正されています:

  • リモートメモリ枯渇(DoS)脆弱性: 小さなフラグメントとデータチャンクを大量に送信されることで、メモリ不足によるサーバー/クライアントのクラッシュが発生する可能性がある問題を修正
  • 新しいmaxBufferedChunksとmaxFragmentsオプションが導入され、フラグメント数とバッファリングされたチャンク数を制限できるようになりました

このアップデートはテスト環境のみに影響し、ランタイム本体への変更はありません。


#129441 [automated] Merge branch 'release/9.0' => 'release/9.0-staging'

概要

release/9.0ブランチからrelease/9.0-stagingブランチへの自動マージPRです。svickおよびsteveisokによるコミットがrelease/9.0に存在し、それらをstaging branchに同期させるものです。自動マージではなく、手動でマージコミットを作成して統合する必要があります。

変更内容

  • eng/pipelines/libraries/helix.yml (+12/-0): Helixテスト実行パイプラインの設定追加
  • eng/pipelines/libraries/outerloop.yml (+17/-0): Outerloopテスト実行パイプラインの設定追加
  • src/libraries/sendtohelixhelp.proj (+16/-0): Helixヘルプ送信プロジェクトファイルの設定追加

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • このPRは自動マージされません。チェック完了後、squashまたはrebaseではなく、マージコミットを作成して統合してください
  • マージ競合が発生した場合は手動での解決が必要です
  • merge/release/9.0-to-release/9.0-stagingブランチへのプッシュで検証が再トリガーされます

#129440 [automated] Merge branch 'release/8.0' => 'release/8.0-staging'

概要

release/8.0ブランチからrelease/8.0-stagingブランチへの自動マージPRです。svickとsteveisokによるコミットを統合します。自動マージツールにより生成され、マージコミットでの統合が必須です。

変更内容

  • eng/pipelines/libraries/helix.yml: Helix向けパイプライン構成に12行追加
  • eng/pipelines/libraries/outerloop.yml: アウターループテスト向けパイプライン構成に17行追加
  • src/libraries/sendtohelixhelp.proj: Helixヘルプ設定に16行追加

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRはgithub-actions[bot]による自動生成です。マージ時には以下の点に注意してください:

  • squashコミットやrebaseではなく、マージコミットでの統合が必須
  • マージコンフリクトが発生した場合は手動で解決後、git merge --continueで完了
  • PR検証が完了後、最終的なpushが必要です
  • 問題がある場合はdotnet/dncengに連絡してください

#129412 Update container image digests

概要

Renovate Botによる自動化された依存関係更新PR。mcr.microsoft.com/dotnet-buildtools/prereqsコンテナイメージの35個のダイジェスト参照を最新バージョンに更新しています。これはビルドインフラストラクチャの前提条件イメージの定期メンテナンスです。

変更内容

  • eng/pipelines/common/templates/pipeline-with-resources.yml: 20個のコンテナイメージダイジェストを更新
  • eng/pipelines/coreclr/templates/helix-queues-setup.yml: 8個のコンテナイメージダイジェストを更新
  • eng/pipelines/installer/helix-queues-setup.yml: 4個のコンテナイメージダイジェストを更新
  • eng/pipelines/libraries/helix-queues-setup.yml: 16個のコンテナイメージダイジェストを更新

変更は内部ビルドシステム設定ファイルの範囲内で、パブリックAPIや実装に直接的な影響はありません。

パフォーマンスへの影響

影響なし。これはビルドインフラストラクチャの更新であり、ランタイムやライブラリのコンパイル・実行性能に影響しません。

関連Issue

なし

その他

  • 自動生成PR(.NET Renovate Bot)
  • ビルドパイプライン設定の定期メンテナンス
  • コード機能に関する変更はなく、ビルド環境の依存関係更新のみ

#127232 Fixed invoke on structs with not initialized byref fields

概要

Monoデバッガーが初期化されていないbyrefフィールドを持つ構造体でのメソッド呼び出しを実行する際に発生する「Internal evaluator error」を修正しました。問題は、構造体のbyrefフィールドがバッファリング時にVALUE_TYPE_ID_NULLとして扱われ、デバッガーがメソッド呼び出しを試みる際に不正な状態で構造体をデコードしていたことです。本修正により、初期化されていないbyrefフィールドを適切に処理し、デバッガーが渡すバイトデータを正しく読み込みます。

変更内容

  • src/mono/mono/component/debugger-agent.c: 構造体のbyrefフィールドデコーディングロジックを修正。VALUE_TYPE_ID_NULLの場合を初期化されていないbyrefフィールドとして認識し、関連するバイト/整数データを適切に読み込む処理を追加(+15/-8)

パフォーマンスへの影響

影響なし

関連Issue

#127232

その他

このバグはWindows x64環境のVS 2026でManaged Debuggerを使用する場合に特に影響します。修正によりデバッガー評価ウィンドウでReturnsSuccess()メソッドなどのbyrefフィールドを持つ構造体のメソッド呼び出しが正常に実行されるようになります。


#126427 Fix crossgen2 comparison build failure by pre-initializing dotnet CLI

  • 作成者: @Copilot
  • 作成日時: 2026年04月01日 18:31:12(UTC)
  • マージ日時: 2026年07月06日 16:34:38(UTC)
  • ラベル: area-ReadyToRun

概要

Windows x86でのcrossgen2-comparison CI ジョブで発生していた'"\dotnet.exe"' is not recognizedエラーを修正します。問題の原因は、dotnet.cmdが236個の並列プロセスから同時にアクセスされる際に、artifacts/toolset/sdk.txtの初期化がレース条件で失敗していたもの。修正では、並列実行前にdotnet.cmd --version(Windows)またはdotnet.sh --version(Unix)を実行して、事前にsdk.txtを初期化することで競合状態を回避します。

変更内容

  • eng/pipelines/coreclr/templates/crossgen2-comparison-build-job.yml: crossgen2比較ベースライン生成ステップの前に、プラットフォーム別のdotnet CLI事前初期化ステップを追加(+11行)

パフォーマンスへの影響

影響なし(事前初期化は1回の単一実行で、以降の236の並列プロセスのレース条件回避により、全体のビルド時間に悪影響なし)

関連Issue

なし

その他

  • CI/CD パイプライン設定の修正であり、ランタイムコードへの変更ではありません
  • Azure Pipelines YAMLの条件付きステップ(${{ if }})を使用してOSごとに異なるコマンドを実行しています

#125275 Delete orphaned Mono.Options/Options.cs after tlens removal (fixes #126538)

概要

tlensプロジェクト削除後に残された孤立ファイルを削除するメンテナンス変更。src/tools/illink/external/Mono.Options/Options.csはtlensプロジェクトのみで使用されていたGetArgumentNameバグの唯一のコンシューマーであり、tlens削除後は不要になったため、このファイルおよびexternal/ディレクトリ全体を削除します。

変更内容

  • Mono.Options/Options.cs削除: src/tools/illink/external/Mono.Options/Options.cs(1935行)を削除
  • tlensプロジェクト関連ファイル削除: 以下を含む全tlensコンポーネントを削除
    • TLens.Analyzersディレクトリ内の各種アナライザー実装(DuplicatedCodeAnalyzer、InterfaceDispatchAnalyzer等)
    • TLensコアドライバー(Driver.cs、Runner.cs等)
    • tlens.csproj、README.md
  • ビルド設定の更新: eng/Subsets.props、src/tools/illink/illink.slnxの削除
  • ドキュメント更新: src/tools/illink/README.mdから関連記述を削除

パフォーマンスへの影響

影響なし(削除のみの変更)

関連Issue

#126538

その他

なし


目次