Open
Description
As of version 0.13.0 of liboqs, we found that there is no explicit deletion of intermediate sensitive data in memory for at least the following mechanisms:
- KEM:
- Classic McEliece
- HQC
- NTRU Prime
- Signature:
- CROSS
- Falcon
- ML-DSA
- SPHINCS+
Furthermore, the liboqs implementation of the SHA-3 family does not contain a secure deletion of the internal state.
As a consequence, a copy of sensitive values might still be present in memory in the heap when liboqs is compiled to use this implementation of the SHA-3 family.
For example, the release of the internal state for SHAKE256 is:
static void SHA3_shake256_inc_ctx_release(OQS_SHA3_shake256_inc_ctx *state) {
OQS_MEM_aligned_free(state->ctx);
}
And the function OQS_MEM_aligned_free()
is a wrapper around a simple free()
.
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Todo