Time: 2026-04-17 ~09:30 UTC Target: variant of CVE-2024-58261 (RawCertParser advance-on-unsupported-version bug)
RawCertParser current state (post-fix)
File: openpgp/src/cert/raw.rs (1712 LoC)
Loop in Iterator::next() (line 740):
- Reads header via Header::parse(&mut reader).
- Branches on header.length():, BodyLength::Full(l) → reader.data_consume_hard(l), body bytes consumed BEFORE Key::from_bytes., BodyLength::Partial → set done=true, error, break., BodyLength::Indeterminate → set done=true, error, break.
- After consume: processed = reader.total_out() reflects total bytes consumed.
- On Cert::valid_start/valid_packet Err (line 983-996): break iteration. done set
only if first-cert + first-packet + Unknown/Private tag.
- Final commit: self.bytes_read += processed; self.reader.data_consume_hard(processed).
Result: even on Key::from_bytes Err (unsupported version), body bytes ARE consumed and reader advances. The infinite-loop class is closed for Full-length PublicKey/SecretKey packets.
Other version-dispatch sites surveyed (parse.rs)
Lines 1413, 2112, 2663, 2697, 3446, 3591, 3842: each match version arm with
unknown branch routes via php.fail("unknown version") →
PacketHeaderParser::error() → self.reader.rewind(); Unknown::parse(self, error).
Unknown::parse delivers an Unknown packet whose body is consumed by the outer
PacketParser via the BodyLength header. Safe.
Negative result
No exploitable variant of RUSTSEC-2024-0345 found in this iteration. RawCertParser post-fix consumes via BodyLength regardless of key-parse outcome; standard PacketParser flow consumes Unknown packets via header length.
Caveat: shallow clone (depth 50) doesn’t include the original 2024-0345 commit, so I can’t see the exact diff. Variant probe limited to current-state reasoning.
Next iteration pivot candidates (within sequoia)
- packet/seip/v1.rs MDC verification, CBC-MAC oracle class flagged in intel. Look at Read impl on Decryptor + MDC-tag check timing.
- packet/skesk.rs S2K iteration count, DoS class via attacker-controlled iteration counter.
- cert/parser/mod.rs (full Cert parser, not raw), newer signature subpacket types (RFC 9580 v6 sigs, hash algorithm prefs).
- Pivot OUT of sequoia to Arm Trusted Firmware (Intigriti #2 from intel).
Going with option 1 next iteration.
Source · github.com/zionsworking/security-research-notebook · methodology/sequoia-pgp-variant-hunting-3.md