Description
In the Linux kernel, the following vulnerability has been resolved: crypto: ecdsa - Harden against integer overflows in DIV_ROUND_UP() Herbert notes that DIV_ROUND_UP() may overflow unnecessarily if an ecdsa implementation's ->key_size() callback returns an unusually large value. Herbert instead suggests (for a division by 8): X / 8 + !!(X & 7) Based on this formula, introduce a generic DIV_ROUND_UP_POW2() macro and use it in lieu of DIV_ROUND_UP() for ->key_size() return values. Additionally, use the macro in ecc_digits_from_bytes(), whose "nbytes" parameter is a ->key_size() return value in some instances, or a user-specified ASN.1 length in the case of ecdsa_get_signature_rs().
Product status
55779f26eab9af12474a447001bd17070f055712 (git) before f02f0218be412cff1c844addf58e002071be298b
c6ab5c915da460c0397960af3c308386c3f3247b (git) before f2133b849ff273abddb6da622daddd8f6f6fa448
c6ab5c915da460c0397960af3c308386c3f3247b (git) before 921b8167f10708e38080f84e195cdc68a7a561f1
c6ab5c915da460c0397960af3c308386c3f3247b (git) before b16510a530d1e6ab9683f04f8fb34f2e0f538275
6.6.70 (semver) before 6.6.99
6.10
Any version before 6.10
6.6.99 (semver)
6.12.39 (semver)
6.14.5 (semver)
6.15 (original_commit_for_fix)
References
git.kernel.org/...c/f02f0218be412cff1c844addf58e002071be298b
git.kernel.org/...c/f2133b849ff273abddb6da622daddd8f6f6fa448
git.kernel.org/...c/921b8167f10708e38080f84e195cdc68a7a561f1
git.kernel.org/...c/b16510a530d1e6ab9683f04f8fb34f2e0f538275