Skip to content

Conversation

@samkim-crypto
Copy link
Contributor

@samkim-crypto samkim-crypto commented Jan 2, 2026

Problem

The ApplyPendingBalance instruction of the Token-2022 Confidential Transfer Account extension does not verify the freeze status of the token account. As a result, confidential-transfer balances may still be updated though the account is not supposed to allow any state changes.

According to the Token-2022 specification, once a token account has been frozen, no instruction that alters its state should be executable. A frozen account must remain immutable until explicitly thawed. Allowing ApplyPendingBalance to bypass this rule constitutes a violation of the expected behavior defined in the spec.

Furthermore, this flaw causes external explorers and other transaction inspectors to incorrectly interpret frozen accounts as active, since confidential-transfer state transitions continue to occur despite the frozen status. This misrepresentation can mislead auditors, monitoring tools, and downstream applications relying on on-chain state consistency.

Summary of Changes

Disabled apply pending balance when the account is frozen.

@samkim-crypto samkim-crypto force-pushed the freeze-apply-pending-balance branch from 5d34a6c to 47fd273 Compare January 2, 2026 06:26
@samkim-crypto samkim-crypto marked this pull request as ready for review January 6, 2026 08:00
Copy link
Contributor

@joncinque joncinque left a comment

Choose a reason for hiding this comment

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

Looks great!

@samkim-crypto samkim-crypto merged commit bfa4bb8 into solana-program:main Jan 7, 2026
38 checks passed
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.

4 participants