CVE-2026-63868

Summary

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 Software

VendorProductVersion RangeStatus
LinuxLinuxeca9ebac651f774d8b10fce7c5d173c3c3d3394f < 29f28172afb2ae7b31e9bf3e978396f20b381688affected
LinuxLinuxeca9ebac651f774d8b10fce7c5d173c3c3d3394f < 973cf7c433d27f4d9556d0b7c332543be7ed7a6eaffected
LinuxLinuxeca9ebac651f774d8b10fce7c5d173c3c3d3394f < d8dcd14aa886b8effd83022c550669f4f262854baffected
LinuxLinuxeca9ebac651f774d8b10fce7c5d173c3c3d3394f < 74e02121be1dcc0efcd56ebdf0171d6129105659affected
LinuxLinuxeca9ebac651f774d8b10fce7c5d173c3c3d3394f < d4c86ea09ae3e63ee5aa86e941fcc38e0e39874aaffected
LinuxLinuxeca9ebac651f774d8b10fce7c5d173c3c3d3394f < 04e22fefac1af3e32f245e9045382348773b5d59affected
LinuxLinuxeca9ebac651f774d8b10fce7c5d173c3c3d3394f < a11f1a671b1361f0f1278dc0041374f2730df73faffected
LinuxLinuxeca9ebac651f774d8b10fce7c5d173c3c3d3394f < 16e408e607a94b646fb14a2a98422c6877ae4b3caffected
LinuxLinux2.6.27affected
LinuxLinux0 < 2.6.27unaffected
LinuxLinux5.10.259 <= 5.10.*unaffected
LinuxLinux5.15.210 <= 5.15.*unaffected
LinuxLinux6.1.176 <= 6.1.*unaffected
LinuxLinux6.6.143 <= 6.6.*unaffected
LinuxLinux6.12.94 <= 6.12.*unaffected
LinuxLinux6.18.36 <= 6.18.*unaffected
LinuxLinux7.0.13 <= 7.0.*unaffected
LinuxLinux7.1 <= *unaffected

Weaknesses

References