fix(core/caesar): fix `confirm_properties()` handling of `PageMsg::Info`
What changed, and why it matters
This commit fixes a small Rust UI bug in Trezor's 'Caesar' firmware layout. When a user viewed an 'info' page during a confirmation prompt, the device previously failed to return the expected 'INFO' response and instead threw a type error. The patch adds the missing case so the info page is handled correctly. This is likely a user-experience or defensive bug fix rather than a critical security vulnerability, but it could affect how device confirmations behave.
Treat as a normal bug fix. Include in firmware release notes as a UI/UX fix. No urgent security response is indicated by the available evidence, but verify that no downstream confirmation logic relied on the previous error behavior.
Security signals we found
Missing match arm in message translation layer could cause unexpected runtime error
Fixes UI flow behavior in confirmation prompts
No explicit security claim in commit message or diff
Evidence from the diff
In core/embed/rust/src/ui/layout_caesar/component_msg_obj.rs, the ComponentMsgObj implementation for Page<T> only matched PageMsg::Confirmed and PageMsg::Cancelled, falling through to Error::TypeError for any other PageMsg variant. The patch adds PageMsg::Info => Ok(INFO.as_obj()), allowing the component to correctly translate an info-page message into the Python-level INFO object. This prevents an unexpected type error when an info page is triggered inside confirm_properties() flows.
Changed components
core/embed/rust/src/ui/layout_caesar/component_msg_obj.rsTrezor firmware Caesar UI layoutconfirm_properties() confirmation flowInspect captured patch +1 / −0
diff --git a/core/embed/rust/src/ui/layout_caesar/component_msg_obj.rs b/core/embed/rust/src/ui/layout_caesar/component_msg_obj.rs
index 54d64e66..7ed804c3 100644
--- a/core/embed/rust/src/ui/layout_caesar/component_msg_obj.rs
+++ b/core/embed/rust/src/ui/layout_caesar/component_msg_obj.rs
@@ -61,6 +61,7 @@ where
match msg {
PageMsg::Confirmed => Ok(CONFIRMED.as_obj()),
PageMsg::Cancelled => Ok(CANCELLED.as_obj()),
+ PageMsg::Info => Ok(INFO.as_obj()),
_ => Err(Error::TypeError),
}
}
Why this scored 33/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.