You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Update sqlite to 3.50.2 to mitigate CVE-2025-6965 #100
SQLitePCLRaw.lib.e_sqlite3 is brought in transitively via Microsoft.Data.Sqlite.
A vulnerability(CVE-2025-6965) is fixed in SQLitePCLRaw.lib.e_sqlite3 starting at 3.50.2 (minimum fixed version).
What to investigate
Identify the currently used Microsoft.Data.Sqlite version.
Verify which SQLitePCLRaw.lib.e_sqlite3 version it resolves to.
Check whether a newer Microsoft.Data.Sqlite version pulls in SQLitePCLRaw.lib.e_sqlite3 >= 3.50.2.
Required action
If such a Microsoft.Data.Sqlite version exists, upgrade to that version.
Ensure the resolved transitive version of SQLitePCLRaw.lib.e_sqlite3 is >= 3.50.2.
If not possible directly, evaluate safe alternatives (explicit transitive override / package pinning strategy) while maintaining compatibility.
Compatibility caveat (must be validated during upgrade)
Upgrading SQLite stack versions may expose SQL compatibility issues:
String literals using double quotes (") can break.
String literals should use single quotes (').
I asked Claude to do a deep dive investigation as the package versioning is pretty confusing. Summary is that it confirms the underlying advisory is valid, with some corrections to the version details:
Confirmed affected. UnityDataTools currently references Microsoft.Data.Sqlite9.0.1 (in Analyzer.csproj and ReferenceFinder.csproj). That resolves transitively to SQLitePCLRaw.lib.e_sqlite32.1.10, which bundles SQLite engine 3.46.1 — earlier than the 3.50.2 fix for CVE-2025-6965. So the flawed engine is indeed present.
A note on the version numbers. The phrasing "fixed in SQLitePCLRaw.lib.e_sqlite3 starting at 3.50.2" mixes two different versioning schemes. In the legacy 2.1.x line, the package version is not the SQLite engine version (2.1.10 → SQLite 3.46.1; 2.1.11 → SQLite 3.49.1, still affected). Only the newer v3 line of SQLitePCLRaw versions the package to track the SQLite engine directly. So the target to aim for is SQLite engine ≥ 3.50.2, regardless of the wrapper package's own version number.
Bumping Microsoft.Data.Sqlite alone is not sufficient. The current latest on our .NET 9 line (9.0.18) still declares only SQLitePCLRaw.bundle_e_sqlite3 >= 2.1.11, and NuGet resolves that floor to 2.1.11 = SQLite 3.49.1, which is still affected. Clearing the CVE requires an explicit direct PackageReference pinning the SQLitePCLRaw native package to a build carrying SQLite ≥ 3.50.2, then verifying the resolved transitive version with dotnet list package --include-transitive.
Practical risk for this tool is low. The CVE's network-attack scoring assumes an application executing attacker-controlled SQL. UnityDataTools is a local CLI that builds its own SQLite databases from Unity build output and runs its own queries — it does not accept untrusted SQL over a network. We'll patch it as good hygiene and to clear dependency scanners, but there's no exposure to remote exploitation in normal use.
We'll also validate the double-quoted-string-literal compatibility caveat you raised as part of the upgrade.
Activity
SkowronskiAndrew commentedon Jul 17, 2026
Thanks luan-mont for the report.
I asked Claude to do a deep dive investigation as the package versioning is pretty confusing. Summary is that it confirms the underlying advisory is valid, with some corrections to the version details:
Confirmed affected. UnityDataTools currently references
Microsoft.Data.Sqlite9.0.1 (inAnalyzer.csprojandReferenceFinder.csproj). That resolves transitively toSQLitePCLRaw.lib.e_sqlite32.1.10, which bundles SQLite engine 3.46.1 — earlier than the 3.50.2 fix for CVE-2025-6965. So the flawed engine is indeed present.A note on the version numbers. The phrasing "fixed in
SQLitePCLRaw.lib.e_sqlite3starting at 3.50.2" mixes two different versioning schemes. In the legacy2.1.xline, the package version is not the SQLite engine version (2.1.10 → SQLite 3.46.1; 2.1.11 → SQLite 3.49.1, still affected). Only the newer v3 line of SQLitePCLRaw versions the package to track the SQLite engine directly. So the target to aim for is SQLite engine ≥ 3.50.2, regardless of the wrapper package's own version number.Bumping
Microsoft.Data.Sqlitealone is not sufficient. The current latest on our .NET 9 line (9.0.18) still declares onlySQLitePCLRaw.bundle_e_sqlite3 >= 2.1.11, and NuGet resolves that floor to 2.1.11 = SQLite 3.49.1, which is still affected. Clearing the CVE requires an explicit directPackageReferencepinning the SQLitePCLRaw native package to a build carrying SQLite ≥ 3.50.2, then verifying the resolved transitive version withdotnet list package --include-transitive.Practical risk for this tool is low. The CVE's network-attack scoring assumes an application executing attacker-controlled SQL. UnityDataTools is a local CLI that builds its own SQLite databases from Unity build output and runs its own queries — it does not accept untrusted SQL over a network. We'll patch it as good hygiene and to clear dependency scanners, but there's no exposure to remote exploitation in normal use.
We'll also validate the double-quoted-string-literal compatibility caveat you raised as part of the upgrade.
[#100] Update SQLite to 3.53.3 to mitigate CVE-2025-6965 (#133)