Skip to content

fix(uexecutor): bound remaining uint256 parses; remove MsgMigrateUEA (F-2026-18798) - #362

Merged
0xNilesh merged 1 commit into
audit-fixesfrom
fix/F-2026-18798-remaining-uint256
Sep 2, 2026
Merged

fix(uexecutor): bound remaining uint256 parses; remove MsgMigrateUEA (F-2026-18798)#362
0xNilesh merged 1 commit into
audit-fixesfrom
fix/F-2026-18798-remaining-uint256

Conversation

@0xNilesh

@0xNilesh 0xNilesh commented Sep 2, 2026

Copy link
Copy Markdown
Member

Closes the remaining unbounded big.Int.SetString sites from F-2026-18798.

gas_limit / gas_fee_used now go through ValidateUint256String (length cap before the parse, then BitLen() <= 256). The gas_limit site also never checked the sign — it discarded the parsed value with _ — so "-5" was accepted; it isn't now.

MsgMigrateUEA and MigrationPayload are removed rather than patched. Migration no longer goes through this message, and ValidateBasic runs before the ante handler, so retiring only the handler would have left the unbounded parse reachable for free.

State-machine breaking — needs a chain upgrade. No state migration; messages aren't stored in state.

The MsgExecutePayload signer-binding and signer-length coverage in app/ante is deliberately intact; only the MsgMigrateUEA cases were removed from those tables.

…ateUEA

gas_limit and gas_fee_used now go through ValidateUint256String.
MsgMigrateUEA and MigrationPayload are removed; migration no longer uses them.
@0xNilesh
0xNilesh merged commit bbad4a6 into audit-fixes Sep 2, 2026
7 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.

1 participant