Skip to content

Conversation

@cosmasken
Copy link

Summary

Resolves all security vulnerabilities identified in the internal security audit.

Key Fixes

File Security: Wallet files now use 0o600 permissions (user-only access)
Memory Safety: Added zeroize crate to securely clear sensitive data from
memory
Command Injection: Replaced system clear with crossterm crate
Encryption: Upgraded from AES-CBC to AES-GCM with authentication
Dependencies: Updated 3 unmaintained packages to secure alternatives
Project Name: Updated from "rootstock-wallet" to "rsk-rust-cli"

Additional Improvements

• Added password strength validation
• Fixed backup path handling
• Replaced floating-point with string-based amount parsing
• Removed dead code

Testing

• [x] All tests pass
• [x] Zero security vulnerabilities remaining
• [x] Cross-platform compatibility verified

cosmasken and others added 4 commits October 19, 2025 11:33
- Fix L44: Zeroize temporary private key bytes in wallet.new()
- Fix L106: Zeroize plaintext after decryption in decrypt_private_key()
- Fix L34: Add Drop trait for WalletData to zeroize api_key
- Fix L74: Zeroize private_key string in transfer command
- Fix L100,L181,L330: Zeroize password strings in interactive flows
- Fix L143,L340: Zeroize private_key strings in interactive flows
- Fix L22,L25,L27: Add Drop trait for WalletAction enum

Addresses Issue 9 - Missing zeroization points for sensitive data
@cosmasken cosmasken marked this pull request as draft November 12, 2025 11:42
@cosmasken cosmasken closed this Nov 12, 2025
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