Added |
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.
|
Added |
Reference |
|
https://git.kernel.org/stable/c/1084716f76c8045eadf92a9d9a62641f3c8d8c90
|
Added |
Reference |
|
https://git.kernel.org/stable/c/317260b3eb6384a05a8af212308fa50f3b2e8290
|
Added |
Reference |
|
https://git.kernel.org/stable/c/3e6de5037148c5a93a436b1e8d2edad3dac11755
|
Added |
Reference |
|
https://git.kernel.org/stable/c/5801f064e35181c71857a80ff18af4dbec3c5f5c
|
Added |
Reference |
|
https://git.kernel.org/stable/c/5d9c1b081ad28c852a97e10dd75412546497694a
|
Added |
Reference |
|
https://git.kernel.org/stable/c/64aef8efe96c1616142c4476a05731306fc4494e
|
Added |
Reference |
|
https://git.kernel.org/stable/c/9ba4416b831eeb4d185e88e73488d1d21288e63a
|
Added |
Reference |
|
https://git.kernel.org/stable/c/ab8b2c2de273ec1d698a18e399896a6febb5cda0
|