"value":"In the Linux kernel, the following vulnerability has been resolved:\n\nmptcp: pm: only mark 'subflow' endp as available\n\nAdding the following warning ...\n\n WARN_ON_ONCE(msk->pm.local_addr_used == 0)\n\n... before decrementing the local_addr_used counter helped to find a bug\nwhen running the \"remove single address\" subtest from the mptcp_join.sh\nselftests.\n\nRemoving a 'signal' endpoint will trigger the removal of all subflows\nlinked to this endpoint via mptcp_pm_nl_rm_addr_or_subflow() with\nrm_type == MPTCP_MIB_RMSUBFLOW. This will decrement the local_addr_used\ncounter, which is wrong in this case because this counter is linked to\n'subflow' endpoints, and here it is a 'signal' endpoint that is being\nremoved.\n\nNow, the counter is decremented, only if the ID is being used outside\nof mptcp_pm_nl_rm_addr_or_subflow(), only for 'subflow' endpoints, and\nif the ID is not 0 -- local_addr_used is not taking into account these\nones. This marking of the ID as being available, and the decrement is\ndone no matter if a subflow using this ID is currently available,\nbecause the subflow could have been closed before."
"value":"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: mptcp: pm: solo marcar el extremo 'subflow' como disponible Agregar la siguiente advertencia ... WARN_ON_ONCE(msk->pm.local_addr_used == 0) ... antes de decrementar el contador local_addr_used ayud\u00f3 a encontrar un error al ejecutar la subprueba \"eliminar una sola direcci\u00f3n\" de las autopruebas mptcp_join.sh. Eliminar un extremo 'se\u00f1al' activar\u00e1 la eliminaci\u00f3n de todos los subflujos vinculados a este extremo a trav\u00e9s de mptcp_pm_nl_rm_addr_or_subflow() con rm_type == MPTCP_MIB_RMSUBFLOW. Esto decrementar\u00e1 el contador local_addr_used, lo cual es incorrecto en este caso porque este contador est\u00e1 vinculado a extremos 'subflow', y aqu\u00ed es un extremo 'se\u00f1al' el que se est\u00e1 eliminando. Ahora, el contador se reduce solo si el ID se usa fuera de mptcp_pm_nl_rm_addr_or_subflow(), solo para los puntos finales de 'subflujo' y, si el ID no es 0, local_addr_used no los tiene en cuenta. Esto marca el ID como disponible y la reducci\u00f3n se realiza sin importar si un subflujo que usa este ID est\u00e1 disponible actualmente, porque el subflujo podr\u00eda haberse cerrado antes."