The vulnerability exists in how sigstore-js handles timestamps from transparency logs (tlogs). Specifically, it trusted the integratedTime field from a tlog entry as a valid timestamp source even when it was not cryptographically signed as part of an inclusionPromise. An attacker could craft a Sigstore bundle with a manipulated integratedTime and, because of this vulnerability, have it accepted as a valid timestamp. This could bypass certificate validity checks that rely on this timestamp.
The patch addresses this by modifying the getTLogTimestamp function to only return a timestamp if the tlog entry contains a verifiable inclusionPromise. Consequently, the Verifier.verifyTimestamps function was updated to handle cases where getTLogTimestamp returns no timestamp, ensuring that only cryptographically-bound timestamps are used for verification. The vulnerable functions are getTLogTimestamp for creating the unverified timestamp, and Verifier.verifyTimestamps for using it in the verification process.