Fix HKDF implementation to prevent buffer overrun when compiled with NX_SECURE_KEY_CLEAR #317
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.
The
_nx_crypto_method_hkdf_cleanup
method is passing the incorrect pointer to the HMAC method cleanup when NetX is compiled withNX_SECURE_KEY_CLEAR
.When
NX_SECURE_KEY_CLEAR
defined, calling_nx_crypto_method_hkdf_cleanup
will result in a subsequent call to the HMAC method (if one is set) cleanup function. However the incorrect parameter is being passed, currently HKDF passes in the a pointer to theNX_CRYPTO_METHOD
structure of the HMAC method, which is 32 bytes in size.But the HMAC cleanup method is calling
NX_CRYPTO_MEMSET()
on the provided pointer usingsizeof(NX_CRYPTO_HMAC)
which is 292 bytes is size:This leads to a buffer overflow of 260 bytes. The actual amount can vary depending of the exact HMAC method being used.