GHSA-jr5q-r9qx-v738: liboqs: Uninitialized function-pointer dereference in OQS_KEM_encaps_derand for NTRU KEMs
liboqs is a C-language cryptographic library that provides implementations of post-quantum cryptography algorithms. Prior to 0.16.0, OQSKEMencapsderand can dereference an uninitialized encapsderand function pointer when called on NTRU-HPS-2048-509, NTRU-HPS-2048-677, NTRU-HPS-4096-821, NTRU-HPS-4096-1229, NTRU-HRSS-701, or NTRU-HRSS-1373. The affected NTRU constructors omit the OQSKEM.encapsderand member because those schemes do not support derandomized encapsulation, OQSKEM objects are allocated without zero initialization, and the wrapper in src/kem/kem.c checks only that the OQSKEM pointer is non-null before calling through the residual heap value. An application is affected only if it instantiates one of those six NTRU KEMs and invokes OQSKEMencapsderand on it. The supported impact is a calling-process crash and denial of service. This issue is fixed in version 0.16.0.
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
liboqsto a version that resolves this vulnerability.Fixed in 0.16.0