Skip to content

Prevent multi-log threshold bypasses via single compromised log#633

Merged
Hayden-IO merged 1 commit into
mainfrom
bugfix
May 27, 2026
Merged

Prevent multi-log threshold bypasses via single compromised log#633
Hayden-IO merged 1 commit into
mainfrom
bugfix

Conversation

@Hayden-IO

Copy link
Copy Markdown
Contributor

A verifier configured with WithTransparencyLog(N>1) or WithSignedCertificateTimestamps(N>1) expected defense-in-depth against the compromise of a single log instance. However, threshold counting treated verified entries per-entry rather than per-log.

As a result, a single compromised transparency log could forge multiple entries with different indices, and a single compromised CT log could verify multiple times (either across multiple certificate chains or via multiple embedded SCTs), fully satisfying the multi-log threshold requirements and defeating the multi-log policy.

This change ensures that a threshold of N can only be satisfied by N independent logs by enforcing that each distinct transparency log and CT log identity counts as at most one witness towards threshold and observer timestamp policies.

Summary

Release Note

Documentation

A verifier configured with WithTransparencyLog(N>1) or WithSignedCertificateTimestamps(N>1)
expected defense-in-depth against the compromise of a single log instance. However,
threshold counting treated verified entries per-entry rather than
per-log.

As a result, a single compromised transparency log could forge multiple entries with
different indices, and a single compromised CT log could verify multiple times (either
across multiple certificate chains or via multiple embedded SCTs), fully satisfying
the multi-log threshold requirements and defeating the multi-log policy.

This change ensures that a threshold of N can only be satisfied by N
independent logs by enforcing that each distinct transparency log and CT log
identity counts as at most one witness towards threshold and observer timestamp policies.

Signed-off-by: Hayden <8418760+Hayden-IO@users.noreply.github.com>
@Hayden-IO Hayden-IO requested a review from a team as a code owner May 27, 2026 15:17

@steiza steiza left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@Hayden-IO Hayden-IO merged commit dbb07e6 into main May 27, 2026
13 checks passed
@Hayden-IO Hayden-IO deleted the bugfix branch May 27, 2026 17:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants