We have a limit on how much work the chain builder will do, which is bounded by 100 signature checking operations. This is intended to prevent the chain builder for being tricked into doing large amounts of work when presented with pathologic inputs.
When we added the "is this certificate already in the chain?" check to the chain builder, we placed it before the signature limit check, which means we do some not particularly cheap work before we check the limit that prevents us from doing too much work 🤦.
We should just move this check after the limit check (and also break the loop).
This is a PUBLIC track issue per the Go Security policy and CVE-2026-32280.
We have a limit on how much work the chain builder will do, which is bounded by 100 signature checking operations. This is intended to prevent the chain builder for being tricked into doing large amounts of work when presented with pathologic inputs.
When we added the "is this certificate already in the chain?" check to the chain builder, we placed it before the signature limit check, which means we do some not particularly cheap work before we check the limit that prevents us from doing too much work 🤦.
We should just move this check after the limit check (and also break the loop).
This is a PUBLIC track issue per the Go Security policy and CVE-2026-32280.