Fix CVE-2024-23342 and PVE-2024-64396: Enhance timing attack resistance in ECDSA operations #365
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Security Fix: CVE-2024-23342 and PVE-2024-64396
Problem Description
This PR addresses two critical security vulnerabilities in the ECDSA implementation:
These vulnerabilities could potentially allow attackers to:
Root Cause Analysis
The vulnerabilities stem from:
randrange()
function: The original implementation had timing variations that could leak information about the generated nonce valuessign()
method: Different code paths based on nonce values created timing differencesSolution Implemented
1. Enhanced
randrange()
Function (src/ecdsa/util.py
)2. Improved
sign()
Method (src/ecdsa/ecdsa.py
)3. Comprehensive Security Testing (
src/ecdsa/test_timing_attacks.py
)References
Verification
This fix has been thoroughly tested and validated:
Type: Security Fix
Severity: Critical
Breaking Changes: None
Dependencies: None