{"answers":{"affected":"3 open source packages ship an affected version, including diesel.","exploited":"There is no known exploitation of GHSA-ggxf-9f6j-w742 in the wild and no public exploit code.","fix":"Upgrade diesel to 2.3.10 or later.","what":"GHSA-ggxf-9f6j-w742 is an use after free vulnerability in diesel, published on 5 Jun 2026."},"fix_prompt":"Check this codebase for GHSA-ggxf-9f6j-w742 and fix it if it is affected.\n\nWhat it is: GHSA-ggxf-9f6j-w742 is an use after free vulnerability in diesel, published on 5 Jun 2026. \nExploitation: There is no known exploitation of GHSA-ggxf-9f6j-w742 in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- diesel (crates.io): affected all versions; fixed in 2.3.10\n- diesel (crates.io): affected all versions; fixed in 2.3.10\n- diesel (crates.io): affected from 0.0.0-0; fixed in 2.3.10\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/GHSA-ggxf-9f6j-w742/ (Markdown: https://insights.sbomify.com/GHSA-ggxf-9f6j-w742/index.md)","id":"GHSA-ggxf-9f6j-w742","markdown":"https://insights.sbomify.com/GHSA-ggxf-9f6j-w742/index.md","name":"GHSA-ggxf-9f6j-w742","record":{"aliases":["RUSTSEC-2026-0172"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["code_execution","denial_of_service"],"network_reachable":"unknown","non_default_config":false,"product_category":"Rust SQLite library","requires_auth":"none","summary":"Attackers can trigger use-after-free in Diesel SQLite deserialization if buffers are dropped early, potentially causing crashes or code execution.","user_interaction":"not_required","vuln_class":"use_after_free"},"analysis_generated_by":"qwen3.8-flash-next","assigner":null,"cpe":[],"cvss":{"score":null,"severity":null,"source":null,"vector":null,"version":null},"cwes":[],"description":"Diesel allows loading a SQLite database from a byte buffer, represented as `\u0026[u8]`, at runtime via the `SqliteConnection::deserialize_readonly_database` function. In previous versions of Diesel, this buffer was passed directly to libsqlite3. Since libsqlite3 requires the buffer to remain alive for as long as the database connection is open and Diesel did not ensure this as part of its safe API, callers of `SqliteConnection::deserialize_readonly_database` could drop the buffer prematurely. This prematurely drop caused libsqlite3 to operate on freed memory.\n\nThis vulnerability affects users of `SqliteConnection::deserialize_readonly_database` who drop the buffer passed to the function before they drop the database connection.\n\n## Mitigation\n\nThe preferred mitigation to the outlined problem is to update to Diesel version 2.3.10 or newer, which includes a fix for the problem. Alternatively users need to take to keep the buffer alive until the connection is dropped.\n\n## Resolution\n\nDiesel now stores a copy of the buffer inside of the `SqliteConnection` object itself to keep it alive as long as the underlying libsqlite3 connection exists.","ecosystems":["crates.io"],"exploits":{"exploitdb":null,"first_seen":null,"github_poc":null,"max_poc_stars":null,"metasploit":null,"nuclei":null,"refs":[],"tier":null},"has_fix":true,"headline":"Diesel allows loading a SQLite database from a byte buffer, represented as `\u0026[u8]`, at runtime via the `SqliteConnection::deserialize_readon","id":"GHSA-ggxf-9f6j-w742","indexable":true,"kev":null,"kind":"advisory","links":{"ecosystem":"crates.io","product":null,"products":[],"type":"use_after_free","year":"2026"},"n_packages":3,"n_references":null,"packages":[{"ecosystem":"crates.io","fixed":["2.3.10"],"introduced":["0"],"last_affected":[],"package":"diesel","purl":null,"source":"GHSA-ggxf-9f6j-w742"},{"ecosystem":"crates.io","fixed":["2.3.10"],"introduced":["0"],"last_affected":[],"package":"diesel","purl":"pkg:cargo/diesel","source":"GHSA-ggxf-9f6j-w742"},{"ecosystem":"crates.io","fixed":["2.3.10"],"introduced":["0.0.0-0"],"last_affected":[],"package":"diesel","purl":"pkg:cargo/diesel","source":"RUSTSEC-2026-0172"}],"products":null,"published":"2026-06-05","related":[],"sources":[{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"open","licence":"CC0 1.0","name":"RustSec","prefix":"RUSTSEC"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":null,"updated":null,"vendors":null},"summary":"Attackers can trigger use-after-free in Diesel SQLite deserialization if buffers are dropped early, potentially causing crashes or code execution.","url":"https://insights.sbomify.com/GHSA-ggxf-9f6j-w742/"}