fix(deps): update rust crate diesel-async to 0.9.0 [security] - #425
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
May 12, 2026 17:38
76bc20c to
a969765
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
2 times, most recently
from
May 14, 2026 17:51
7e6e224 to
625daad
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
May 14, 2026 20:37
625daad to
ac0e3b1
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
2 times, most recently
from
May 19, 2026 00:46
08bcfef to
3164813
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
May 22, 2026 21:07
3164813 to
dddc670
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
May 23, 2026 01:48
dddc670 to
b8b538f
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
May 28, 2026 16:39
b8b538f to
4737ff5
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
May 29, 2026 00:10
4737ff5 to
9fa1382
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
June 1, 2026 22:47
9fa1382 to
4ff3e9d
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
June 2, 2026 02:52
4ff3e9d to
9b3776e
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
June 11, 2026 21:12
9b3776e to
6e4c8c8
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
June 12, 2026 03:04
6e4c8c8 to
cb922c7
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
June 18, 2026 19:09
cb922c7 to
30a87ca
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
July 21, 2026 08:14
63fb508 to
af386a7
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
July 22, 2026 12:02
af386a7 to
66bf0dc
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
2 times, most recently
from
July 24, 2026 14:45
2ed706e to
5b14c49
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
July 24, 2026 21:39
5b14c49 to
7239c55
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
July 30, 2026 18:06
7239c55 to
d265b3c
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
July 30, 2026 22:56
d265b3c to
de77f40
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
August 11, 2026 22:32
de77f40 to
6aa6fca
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
August 12, 2026 05:31
6aa6fca to
f22272f
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
August 14, 2026 17:36
f22272f to
90c02e9
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
August 15, 2026 00:08
90c02e9 to
f86c5d0
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
August 18, 2026 17:49
f86c5d0 to
84f09f0
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
August 18, 2026 22:00
84f09f0 to
a1f72eb
Compare
renovate
Bot
force-pushed
the
renovate/crate-diesel-async-vulnerability
branch
from
August 20, 2026 14:56
a1f72eb to
0d4723f
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.7→0.9.0Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
diesel-async may expose uninitialized padding bytes for MySQL temporal columns
GHSA-ff9q-rm55-q7qr
More information
Details
Summary
diesel-async exposes uninitialized stack padding to safe code on every read of a MySQL
DATE,TIME,DATETIME, orTIMESTAMPcolumn. Reading that buffer is undefined behavior, and the leaked bytes can contain stale heap/stack contents, so this is both a soundness bug and a potential information-disclosure vector.Details
In
diesel-async/src/mysql/row.rs(lines 65-103),MysqlRow::getbuilds aMysqlTimefrom the parsedmysql_async::Valueand then fabricates the byte buffer that downstreamFromSqlimpls expect like this:MysqlTimeis#[repr(C)]with 3 bytes of padding afterbool neg(Linux x86_64, offsets 0x21..0x23). The literal construction leaves that padding uninitialized, andto_vec()carries it into aVec<u8>that becomes theMysqlValue's backing buffer, reachable from safe code viaMysqlValue::as_bytes() -> &[u8].dieselitself avoids this by going throughMaybeUninit::<MysqlTime>::zeroed()+ptr::copy_nonoverlapping(seediesel/src/mysql/value.rs:43-94); the same pattern would fix this. Alternatively, write the bytes diesel'sFromSqlreads without round-tripping through aMysqlTimevalue.PoC
Cargo.toml:src/main.rs:Miri output:
Impact
Soundness bug in safe API surface of
diesel-async's MySQL backend. Affects every user ofAsyncMysqlConnectionwhose queries return a temporal column.AI disclosure: this issue was found via Claude Code running Claude Opus 4.7.
Severity
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:L/SC:N/SI:N/SA:N/E:PReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
weiznich/diesel_async (diesel-async)
v0.9.0Compare Source
the scoped boxed variant. This change requires adujsting all call sides of transaction
based functions from
conn.transaction(|conn| async move {/* your code */}.scoped_boxed())to
conn.transaction(async |conn| /* your code */)Thanks to Paolo Barbolini for finding this issue.
v0.8.0Compare Source
SyncConnectionWrapper, allowing to usesave_changesSyncConnectionWrapperthat can cause panics if the future is dropped before completionv0.7.4Compare Source
v0.7.3Compare Source
v0.7.2Compare Source
v0.7.1Compare Source
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.