Description
In the Linux kernel, the following vulnerability has been resolved: dpaa2-switch: rework FDB management on the bridge leave path On bridge leave, the dpaa2_switch_port_set_fdb() function always allocates a new FDB for the port which is becoming standalone. In case no FDB is found, then the port leaving a bridge will continue to use the current one. The above logic does not cover the case in which there are multiple bridges which have ports from the same DPSW instance. In this case, when the last port leaves bridge #1, it finds an unused FDB to switch to, but the old FDB is not marked as unused. Since the number of FDBs is equal to the number of DPSW interfaces, this will eventually lead to multiple ports sharing the same FDB. Fix this by changing how we are managing the FDBs on the leave path. Instead of directly allocating a new FDB, first verify if the current port is the last one to leave a bridge. If this is the case, then continue to use the current FDB and only allocate another FDB if there are other ports remaining in the bridge.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
539dda3c5d190c5088b5e57944b1b482fcb464de to < ec41bfd281a8bc8027a42d2674eac5b74947ff7aaffected539dda3c5d190c5088b5e57944b1b482fcb464de to < e07ff2338f45adbf572850335d761c2f97545935affected539dda3c5d190c5088b5e57944b1b482fcb464de to < dc626f2abb3052881911b6166a9425739ce80085affected539dda3c5d190c5088b5e57944b1b482fcb464de to < abea361a11e4e48695ea149652ef5d3f308b6a49affected539dda3c5d190c5088b5e57944b1b482fcb464de to < 5adbc4d02d7df8bd7aa02c21874f7a582a576b55affected539dda3c5d190c5088b5e57944b1b482fcb464de to < efc1d92eacf03afa6f4d53bf7120e059b6f961f2affected
Linux Linux
Default version status: affected
5.13affected0 to < 5.13unaffected5.15.222 to ≤ 5.15.*unaffected6.1.189 to ≤ 6.1.*unaffected6.6.158 to ≤ 6.6.*unaffected6.12.111 to ≤ 6.12.*unaffected6.18.53 to ≤ 6.18.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/ec41bfd281a8bc8027a42d2674eac5b74947ff7a ↗
- https://git.kernel.org/stable/c/e07ff2338f45adbf572850335d761c2f97545935 ↗
- https://git.kernel.org/stable/c/dc626f2abb3052881911b6166a9425739ce80085 ↗
- https://git.kernel.org/stable/c/abea361a11e4e48695ea149652ef5d3f308b6a49 ↗
- https://git.kernel.org/stable/c/5adbc4d02d7df8bd7aa02c21874f7a582a576b55 ↗
- https://git.kernel.org/stable/c/efc1d92eacf03afa6f4d53bf7120e059b6f961f2 ↗