Description
In the Linux kernel, the following vulnerability has been resolved: crypto: comp - Use same definition of context alloc and free ops In commit 42d9f6c77479 ("crypto: acomp - Move scomp stream allocation code into acomp"), the crypto_acomp_streams struct was made to rely on having the alloc_ctx and free_ctx operations defined in the same order as the scomp_alg struct. But in that same commit, the alloc_ctx and free_ctx members of scomp_alg may be randomized by structure layout randomization, since they are contained in a pure ops structure (containing only function pointers). If the pointers within scomp_alg are randomized, but those in crypto_acomp_streams are not, then the order may no longer match. This fixes the problem by removing the union from scomp_alg so that both crypto_acomp_streams and scomp_alg will share the same definition of alloc_ctx and free_ctx, ensuring they will always have the same layout.
Product status
42d9f6c774790d290c175e8775ce9f1366438098 (git) before 779d3b6f2d32c5f1da6163e959abe1e1ffe2945b
42d9f6c774790d290c175e8775ce9f1366438098 (git) before f75f66683ded09f7135aef2e763c245a07c8271a
6.16
Any version before 6.16
6.17.3 (semver)
6.18-rc1 (original_commit_for_fix)
References
git.kernel.org/...c/779d3b6f2d32c5f1da6163e959abe1e1ffe2945b
git.kernel.org/...c/f75f66683ded09f7135aef2e763c245a07c8271a