CVE-2024-27414
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
17/05/2024
Last modified:
05/11/2024
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back<br />
<br />
In the commit d73ef2d69c0d ("rtnetlink: let rtnl_bridge_setlink checks<br />
IFLA_BRIDGE_MODE length"), an adjustment was made to the old loop logic<br />
in the function `rtnl_bridge_setlink` to enable the loop to also check<br />
the length of the IFLA_BRIDGE_MODE attribute. However, this adjustment<br />
removed the `break` statement and led to an error logic of the flags<br />
writing back at the end of this function.<br />
<br />
if (have_flags)<br />
memcpy(nla_data(attr), &flags, sizeof(flags));<br />
// attr should point to IFLA_BRIDGE_FLAGS NLA !!!<br />
<br />
Before the mentioned commit, the `attr` is granted to be IFLA_BRIDGE_FLAGS.<br />
However, this is not necessarily true fow now as the updated loop will let<br />
the attr point to the last NLA, even an invalid NLA which could cause<br />
overflow writes.<br />
<br />
This patch introduces a new variable `br_flag` to save the NLA pointer<br />
that points to IFLA_BRIDGE_FLAGS and uses it to resolve the mentioned<br />
error logic.
Impact
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/167d8642daa6a44b51de17f8ff0f584e1e762db7
- https://git.kernel.org/stable/c/743ad091fb46e622f1b690385bb15e3cd3daf874
- https://git.kernel.org/stable/c/831bc2728fb48a8957a824cba8c264b30dca1425
- https://git.kernel.org/stable/c/882a51a10ecf24ce135d573afa0872aef02c5125
- https://git.kernel.org/stable/c/a1227b27fcccc99dc44f912b479e01a17e2d7d31
- https://git.kernel.org/stable/c/b9fbc44159dfc3e9a7073032752d9e03f5194a6f
- https://git.kernel.org/stable/c/f2261eb994aa5757c1da046b78e3229a3ece0ad9