net: garp: fix unsigned integer underflow in garp_pdu_parse_attr
3Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Trackepss 0.2%
exploitation probability
0.2%top 94% of all CVEs
observed exploitation
nono source reports it
In the Linux kernel, the following vulnerability has been resolved:
net: garp: fix unsigned integer underflow in garp_pdu_parse_attr
The receive-side GARP attribute parser computes dlen with reversed
operands:
dlen = sizeof(*ga) - ga->len;
ga->len is the on-wire attribute length and includes the GARP attribute
header. For normal attributes with data, ga->len is larger than
sizeof(*ga), so the subtraction underflows in unsigned arithmetic.
The resulting value is later passed to garp_attr_lookup(), whose length
argument is u8. After truncation, the parsed data length usually no
longer matches the length stored for locally registered attributes, so
received Join/Leave events are ignored. This breaks the GARP receive path
for common attributes, such as GVRP VLAN registration attributes.
Compute the data length as the attribute length minus the header length.
Affected products
Linux · LinuxReferences
https://git.kernel.org/stable/c/04e22fefac1af3e32f245e9045382348773b5d59https://git.kernel.org/stable/c/16e408e607a94b646fb14a2a98422c6877ae4b3chttps://git.kernel.org/stable/c/29f28172afb2ae7b31e9bf3e978396f20b381688https://git.kernel.org/stable/c/74e02121be1dcc0efcd56ebdf0171d6129105659https://git.kernel.org/stable/c/973cf7c433d27f4d9556d0b7c332543be7ed7a6ehttps://git.kernel.org/stable/c/a11f1a671b1361f0f1278dc0041374f2730df73fhttps://git.kernel.org/stable/c/d4c86ea09ae3e63ee5aa86e941fcc38e0e39874ahttps://git.kernel.org/stable/c/d8dcd14aa886b8effd83022c550669f4f262854b