Skip to content

fix: derive compound attestation type from nested types#819

Merged
Spomky merged 1 commit into5.3.xfrom
fix/compound-attestation-none-rejection
Mar 22, 2026
Merged

fix: derive compound attestation type from nested types#819
Spomky merged 1 commit into5.3.xfrom
fix/compound-attestation-none-rejection

Conversation

@Spomky
Copy link
Copy Markdown
Contributor

@Spomky Spomky commented Mar 22, 2026

Summary

  • Derive the compound attestation type from nested attestation types instead of hardcoding TYPE_BASIC
  • Uses the weakest (least trusted) type among all nested attestations, preventing trust level overestimation
  • Trust order (strongest to weakest): attca > anonca > basic > self > none

Context

Addresses GHSA-7rg8-jq97-qcwr: the attestationType label on compound attestation statements was hardcoded to TYPE_BASIC regardless of the nested attestation types. This could misrepresent the trust level when sub-attestations have lower trust.

Test plan

  • Added test verifying type derivation from nested attestations
  • All existing CompoundAttestationStatementSupport tests pass (9/9)
  • ECS, Rector, PHPStan pass

🤖 Generated with Claude Code

Instead of hardcoding TYPE_BASIC, the compound attestation type is now
derived from the nested attestation types by selecting the weakest
(least trusted) type. This prevents misrepresenting the trust level
when sub-attestations have lower trust than basic.

Trust order (strongest to weakest): attca > anonca > basic > self > none

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Spomky Spomky self-assigned this Mar 22, 2026
@Spomky Spomky added this to the 5.3.0 milestone Mar 22, 2026
@Spomky Spomky merged commit 7bdf75d into 5.3.x Mar 22, 2026
17 of 18 checks passed
@Spomky Spomky deleted the fix/compound-attestation-none-rejection branch March 22, 2026 17:54
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.

1 participant