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 code-quality cleanup that changes many function parameters from signed integers (`int`) to unsigned size types (`size_t`) where only non-negative lengths or sizes make sense. It also removes some now-unnecessary negative-v…
Defensive type narrowing from signed `int` to unsigned `size_t` for buffer lengths and sizesRemoval of negative-length checks that become logically unnecessary with `size_t`Assertion added in `bn_format` to guard pointer/length arithmetic
This is a code cleanup and type-safety refactor for the Monero parts of the Trezor firmware. It adds stricter type hints, asserts that certain values are not missing, and fixes a minor return-value bug in a helper that encrypts data. There…
assert guards added to prevent use of None values in Monero address and transaction handlingchacha_poly.encrypt return signature corrected from 3-tuple to 2-tuple, with caller updatedtype annotations tightened across Monero signing, key image sync, and bulletproof code
This commit hardens how Trezor compares secret values (passwords, PINs, cryptographic tags, and checksums) so that an attacker cannot learn information by measuring how long the comparison takes. It also adds a fault-injection check: if a …
Replaces non-constant-time memcmp with constant-time consteq in cryptographic tag verification paths (AES-GCM, Poly1305, base58 checksums, ed25519 signature verification, SLIP25 MAC)Adds volatile loop counter and loop-completion fault check in consteq to mitigate fault-injection skipping of the comparisonIntroduces tc_fault_handler() abstraction; production builds map it to a fatal error, while a no-op fallback is provided for tests/unconfigured builds
This commit fixes several minor issues in a cryptographic module used for secure device communication. The changes include preventing undefined behavior when copying from NULL pointers, zeroing out sensitive key material after use, and pro…
NULL pointer guard added around memcpy in encrypt/decryptMissing memzero of sensitive key material added on error pathsReturn value of encrypt() now checked in handshake request handler
This commit replaces internal programming assertions (which crash the device if they fail) with proper error handling for Ethereum transaction signing when a payment request is involved. It ensures that if someone supplies a payment reques…
assert replaced with explicit exceptioninput validation added for payment request pathEthereum transaction signing hardening
This commit fixes a timing weakness in how a Trezor hardware wallet checks the authenticity of a 'credential' used in its Trezor Host Protocol (THP). Previously, the device compared two secret codes with a standard equality check, which ca…
Replacement of standard equality comparison with constant-time comparison (consteq)Addition of explicit length check before constant-time comparisonHMAC verification code path changed
This is a routine dependency update bumping the Python Mako templating library from version 1.3.10 to 1.3.12. The commit message says the change is meant to avoid false safety warnings, because Mako versions 1.3.11 and earlier have a known…
Dependency version bump for a known-vulnerable packageCommit message references a GitHub Dependabot security alertVendor states the vulnerable Mako code is not used by the project
This commit only changes how long hexadecimal fingerprints and hashes are displayed to users. It inserts spaces every four characters so the strings are easier to read and compare visually. There is no change to security logic, cryptograph…
This commit fixes how Trezor's Python library validates signatures for a new bootloader image format (BootloaderV2). Before the fix, the code ignored the signature bitmask and simply checked every signature against every public key in orde…
Signature verification logic corrected to enforce bitmask alignmentAdded length/popcount validation for signature arraysMissing signature status reporting added for BootloaderV2Image header output
This commit only changes test files so that ten unit tests are skipped when running against the Bitcoin-only firmware variant. It does not modify the actual Trezor firmware code that users run, so it cannot directly affect device security …
This commit hardens how a Trezor hardware wallet checks the authentication tag when decrypting data protected by the ChaCha20-Poly1305 cipher. Previously, the Python caller compared the expected tag with the computed tag using a helper cal…
Constant-time MAC comparison added inside cryptographic moduleMandatory expected MAC argument when decryptingState machine added to ChaCha20Poly1305 object to prevent misuse
This commit is a code cleanup, not a security fix. It creates a new, more specific error type called AuthenticationError and changes AES-GCM and ChaCha20-Poly1305 decryption to throw that error instead of a generic RuntimeError when authen…
Changed exception type for AEAD authentication failures from RuntimeError to a dedicated AuthenticationErrorUpdated all Python exception handlers to catch the new specific exception typeNo change to cryptographic verification logic or constant-time comparison
This commit is a routine code cleanup (chore) that splits one combined ChaCha20-Poly1305 encryption/decryption class into two separate classes: one for encryption and one for decryption. It does not fix a security bug, add a new feature, o…
No security-relevant signal: refactor onlyAPI split removes dual-use encrypt/decrypt state machineMAC verification path still uses constant-time comparison (consteq)
This commit adds a new utility function called `consteq` that compares two chunks of memory in a way that takes the same amount of time regardless of how similar the chunks are. It is intended to help prevent timing-based attacks in the fu…
New constant-time comparison helper addedBuild scripts updated to compile the new helperNo existing comparison logic was replaced in this commit
This commit is purely a code-style cleanup. It updates the project's C source files so they match the formatting rules of a newer version of the clang-format tool (version 21.1.8 instead of 17.0.6). The changes are limited to whitespace, l…
This commit is purely a code-style cleanup triggered by an update to the Python formatter 'black'. It removes unnecessary parentheses around tuple unpacking and adjusts some string-literal formatting. There is no functional change and no s…
This commit is a hardening change, not a vulnerability fix. It pins all GitHub Actions used by Trezor's firmware build and test pipelines to specific commit hashes instead of version tags, and updates those actions to their latest released…
CI/CD supply-chain hardeningGitHub Actions version pinning to immutable commit hashesThird-party action version bumps
This commit only changes the test code for the Trezor firmware. It fixes how debug logging is suppressed during unit tests by moving the suppression logic into the shared test runner, instead of having each test file call a helper function…
This commit fixes a cleanup oversight in the Trezor firmware's code that handles NEM cryptocurrency encryption and decryption. Previously, if an encryption or decryption operation failed partway through, the temporary AES key context (a sm…
Missing secure zeroization (memzero) on error pathsSensitive cryptographic context (AES key schedule) left on stack after failureNEM-specific BIP32 encrypt/decrypt functions affected
This commit updates the Python image-processing library Pillow from a vulnerable version to a fixed one, but only for users running Python 3.10 or newer. The commit message explicitly says it fixes an out-of-bounds write vulnerability in P…
Dependency update to address reported out-of-bounds write in third-party library PillowVendor explicitly states the issue does not affect Trezor firmware itselfVendor explicitly states Pillow is only used by toiftool, a Python CLI tool