Amber nodes are monitored by CommitWatch. Gray nodes are sampled from authenticated GitHub public commit search and may not represent complete contribution history.
This commit is a routine cleanup that removes the old SCons build system files from the Trezor Core firmware repository. It deletes Makefiles, SConscripts, and related Python helper scripts, but does not change any firmware source code, cr…
This is a routine build-system cleanup for the Trezor firmware. It switches the internal 'trezor_lib' Rust crate to be built with the project's own 'xbuild' tool, removes transitional feature flags, and reorganizes Cargo.toml files. There …
This is a massive Trezor firmware commit that replaces the old SCons-based build system with Cargo (Rust's build tool) for compiling the embedded C code. It adds many new Cargo.toml files, build.rs scripts, and a custom xbuild helper crate…
Large build-system refactor with potential for accidental changes in compiler flags, source inclusion, or linker scriptsNew custom build helper (xbuild) now controls C compilation, bindgen, and binary embeddingNo direct changes to crypto, secure storage, or protocol handling code observed
This commit fixes a bug in the Trezor hardware wallet's low-level crash handler for STM32F4 devices. The handler decides whether a memory fault is a stack overflow by checking the wrong stack pointer due to an inverted branch condition. Be…
Stack overflow handling bypass due to inverted branch conditionMemory fault (MemManage) exception handler logic errorPotential denial-of-service or unsafe crash state on stack exhaustion
This is a code cleanup and build-fix change for the Trezor firmware bootloader. It moves the bootloader's binary header definition from a shared security file into a bootloader-specific file, and fixes the build configuration for a special…
Bootloader header structure moved from shared security code to project-specific fileCI bootloader build configuration corrected to use correct header source and header toolSignature mask and authenticated-size fields are still explicitly zeroed/placeholdered, with comments noting headertool_pq must fill them later
This commit moves a security setting for the screen framebuffer from a per-app switching routine to a one-time enable during system startup. It makes the framebuffer permanently accessible to less-privileged code, rather than toggling acce…
TrustZone privilege boundary changeframebuffer memory made permanently unprivileged-accessibleremoval of dynamic privilege toggle for display memory
This commit is a code cleanup that changes how a special testing-only feature is enabled in Trezor firmware. Previously, the feature was enabled whenever Python optimization was disabled (PYOPT == 0). Now it is enabled through a dedicated …
Refactoring of debug-only security hardware test hookDecoupling of PYOPT from USE_OPTIGA_TESTING build flagNo removal of the underlying test-only syscall/smcall
This commit adds small adapter functions (called trampolines) so that two existing functions are called with the correct number and type of arguments when passed to a task scheduler. It is a code-correctness improvement for the Unix emulat…
Function signature mismatch between callback interface and target functions is corrected by trampolinesCasts between `uintptr_t` and `int`/`char**` are explicit and bounded by the trampoline signatureNo input validation, memory allocation, or cryptographic logic is changed
This commit is a straightforward code cleanup: it changes the way source files locate shared header files from absolute-style paths to relative paths. There is no change to program logic, no bug fix, and no security-relevant behavior.
This commit simply moves a source file from one directory to another within the Trezor firmware build system. The actual code content is unchanged. There is no security-relevant change visible in the diff.
This commit changes a single internal constant so the device can keep track of one extra background process when the optional app-loading feature is enabled. By itself it does not look like a security fix or vulnerability; it appears to be…
No security-relevant signals in the diffChange is a compile-time constant adjustment gated by a feature macro
This commit is a code reorganization: it splits the random-number generator (RNG) module into two parts. The basic hardware RNG moves from the security subsystem to the system subsystem, while the stronger multi-source RNG stays in the sec…
This commit adjusts how the Trezor bootloader's length is calculated and pads the bootloader image to a 512-byte boundary. The old calculation added the sizes of two memory sections, which could produce a value that does not match the actu…
Linker-level size calculation changed from section-size sum to start-to-end spanNew explicit zero-fill and 512-byte alignment of bootloader imageBootloader boundary definition changed, which may affect integrity/verification metadata
This commit is a code cleanup that replaces the use of a small printf-style formatter (mini_snprintf) with simpler, purpose-built string helpers in the Trezor bootloader and low-level system code. It does not add or remove security feature…
Removal of mini_snprintf from bootloader/boardloader reduces format-string parsing in privileged boot stagesNew cstr_append helpers are now used in security-relevant display paths (RSOD, wipe-code screen, PIN-attempt screen, fault messages)Potential for off-by-one or truncation bugs in newly introduced cstr_append and integer append helpers
This is a one-line build configuration change in low-level firmware code. It swaps the condition used to decide whether to compile a special secure-mode memory check. The change appears aimed at reducing flash memory usage in board/bootloa…
Change touches a fault/exception handler path that validates a return address before reading from it.Change removes direct use of a compiler security-extension feature macro in favor of a project config symbol.No changelog entry and commit framing is purely about flash savings, not security.
This commit adjusts linker scripts that control how the Trezor hardware wallet's bootloader and security monitor (secmon) binary images are laid out in flash memory. It reduces alignment padding from 512 bytes to 4 bytes and changes how un…
Linker script changes affecting bootloader and security monitor image layoutAlignment reduction from 512 bytes to 4 bytes in flash and RAM sectionsPadding logic rewritten to use explicit FILL and exact boundary symbol
This commit changes how many wrong PIN attempts are allowed on Trezor hardware wallets that use a component called Tropic. Previously, devices using both Tropic and Optiga security chips were limited to 10 PIN attempts, while devices using…
PIN attempt limit reductionTropic secure element configurationBrute-force mitigation
This commit changes how the Trezor hardware wallet's earliest startup code (boardloader and bootloader) uses internal memory on the T3B1 model. It shifts small data and uninitialized-memory sections from one RAM bank (AUX1_RAM) to another …
Memory layout change in security-sensitive boot stages (boardloader/bootloader)Use of ECC SRAM suggests hardening against fault attacks / bit flipsNo changelog entry provided
This commit removes a special firmware memory section called ".confidential" that was meant to keep sensitive data (like cryptographic keys and seed-derived values) separate from ordinary memory. Previously, variables marked with a CONFIDE…
Removal of dedicated .confidential RAM/flash section used for secret buffersDeletion of startup copy routine that initialized confidential RAM from flashCrypto and storage sensitive buffers moved from section-isolated globals to normal data/stack semantics
This commit is a temporary hotfix that disables the Tropic secure-element randomness source in non-production builds to stop a Red Screen of Death (RSOD) crash triggered by the function rng_fill_buffer_strong. The change wraps the Tropic r…
Change affects a cryptographic randomness function (rng_fill_buffer_strong) used for secure operations.A hardware-wallet secure-element entropy source (Tropic) is conditionally disabled outside production builds.Commit is explicitly labeled as a temporary/hotfix workaround, not a complete fix.