CVE-2022-49339 Information
Description
In the Linux kernel the following vulnerability has been resolved:
net: ipv6: unexport __init-annotated seg6_hmac_init()
EXPORT_SYMBOL and __init is a bad combination because the .init.text section is freed up after the initialization. Hence modules cannot use symbols annotated __init. The access to a freed symbol may end up with kernel panic.
modpost used to detect it but it has been broken for a decade.
Recently I fixed modpost so it started to warn it again then this showed up in linux-next builds.
There are two ways to fix it:
- Remove __init
- Remove EXPORT_SYMBOL
I chose the latter for this case because the caller (net/ipv6/seg6.c) and the callee (net/ipv6/seg6_hmac.c) belong to the same module. It seems an internal function call in ipv6.ko.
Reference
https://git.kernel.org/stable/c/1084716f76c8045eadf92a9d9a62641f3c8d8c90 https://git.kernel.org/stable/c/317260b3eb6384a05a8af212308fa50f3b2e8290 https://git.kernel.org/stable/c/3e6de5037148c5a93a436b1e8d2edad3dac11755 https://git.kernel.org/stable/c/5801f064e35181c71857a80ff18af4dbec3c5f5c https://git.kernel.org/stable/c/5d9c1b081ad28c852a97e10dd75412546497694a https://git.kernel.org/stable/c/64aef8efe96c1616142c4476a05731306fc4494e https://git.kernel.org/stable/c/9ba4416b831eeb4d185e88e73488d1d21288e63a https://git.kernel.org/stable/c/ab8b2c2de273ec1d698a18e399896a6febb5cda0
Share on: