Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sys/ssp: use a random value as the canary
This implements the randomization of canary values on each build as mentioned in the comment above the STACK_CHK_GUARD macro. The canary value is generated by the buildsystem and passed to the ssp module using a `-D` compiler flag. The ssp object file, using this canary value, is marked as PHONY to make sure it is rebuild on each make invocation, thereby ensuring that each build uses a new random canary value. Implementing this properly would require generating a cryptographically secure random value on each boot of the RIOT operating system. This is not deemed possible on some constrained devices, e.g. due to lack of hardware random number generators. Besides, RIOT only seems to support a PRNG (random module) currently. While this may be implemented in the future for some devices the changes implemented in this commit may still be used as a fallback then. A hardcoded canary value is used when building software on the CI to not break the CI test cache [1]. [1]: RIOT-OS#13119 (comment)
- Loading branch information