·
6 commits
to main
since this release
What's Changed
Security Fix
- Cross-Region Intermediate Key Cache Pollution: Fixed a bug in multi-region setups using
WithKeySuffixwhere the read path (WithIntermediateKeyForRead) would cache cross-region intermediate keys by timestamp only. The write path'sGetLast()could then return a cross-region key with a later timestamp, causingEncryptPayloadto produce a mismatchedKeyMeta(local region keyId + cross-region created timestamp) that cannot be decrypted. The same fix was applied to the system key read path (WithExistingSystemKey). Cross-region reads still work correctly — keys are fetched from the metastore but no longer cached when they belong to a different region. Port of the Java fix from v0.4.0.
Build & Infrastructure
- NuGet Audit Warnings: Suppressed NuGet audit warnings (NU1901-NU1904) across all projects to prevent transitive dependency advisories from breaking builds
Dependency Updates
- AWSSDK.DynamoDBv2: Updated to v4.0.15 (from v4.0.9.6)
- AWSSDK.KeyManagementService: Updated to v4.0.9.1 (from v4.0.7.1)
- AWSSDK.SecurityToken: Updated to v4.0.5.10 (from v4.0.4.1)
- JunitXml.TestLogger: Updated to v7.1.0 (from v7.0.2)
- Microsoft.Extensions.Caching.Memory: Updated to v10.0.5 (from v10.0.0)
- Microsoft.Extensions.Logging.Abstractions: Updated to v10.0.5 (from v10.0.0)
- Microsoft.Extensions.Logging.Console: Updated to v10.0.5 (from v10.0.0)
- Microsoft.NET.Test.Sdk: Updated to v18.3.0 (from v18.0.1)
- MySql.Data: Updated to v9.6.0 (from v9.5.0)
- System.Text.Encodings.Web: Updated to v10.0.5 (from v10.0.0)
- System.Text.Json: Updated to v10.0.5 (from v10.0.0)
- Testcontainers.DynamoDb: Updated to v4.11.0 (from v4.8.1)
- Testcontainers.MySql: Updated to v4.11.0 (from v4.8.1)
- Xunit.SkippableFact: Updated to v1.5.61 (from v1.5.23)
Development & Testing
- Added regression test for cross-region intermediate key cache pollution scenario
- Multiple dependency maintenance updates via Dependabot
Full Changelog: csharp/AppEncryption/v0.10.0...csharp/AppEncryption/v0.11.0