Highlights
Cryptographic Error: 1 prior fix. Scrutinize any change in this area.
crypto/src/main/java/org/web3j/crypto/Sign.java: most-fixed (2 issues). Treat as high-risk during review.
4 high-severity fixes in this history; regressions here are high-impact.
Recurring patterns
The bug types that recur here, drawn from past fixes, not open vulnerabilities.
Signature Malleability / Bypass: Inadequate range checks on the recovery ID (recId) during signature recovery allowed potentially malformed parameters to bypass validation, undermining ECDSA signature integrity.
Input Validation: Failure to verify that the R and S components of an ECDSA signature are exactly 32 bytes before parsing can lead to malformed inputs corrupting signature state or causing parsing errors.
Cryptographic Weakness: Standard PRNG initialization could default to predictable sources on Android, necessitating a robust LinuxSecureRandom fallback mechanism to ensure private keys remain unguessable.