Software which sets SO_REUSEPORT_LB on a socket and then connects it to a host will not directly observe any problems. However, due to its…
freebsd·CWE-488·Published 2025-10-22
Software which sets SO_REUSEPORT_LB on a socket and then connects it to a host will not directly observe any problems. However, due to its membership in a load-balancing group, that socket will receive packets originating from any host. This breaks the contract of the connect(2) and implied connect via sendto(2), and may leave the application vulnerable to spoofing attacks. The kernel failed to check the connection state of sockets when adding them to load-balancing groups. Furthermore, when looking up the destination socket for an incoming packet, the kernel will match a socket belonging to a load-balancing group even if it is connected, in violation of the contract that connected sockets are only supposed to receive packets originating from the connected host.
Software which sets SO_REUSEPORT_LB on a socket and then connects it to a host will not directly observe any problems. However, due to its membership in a load-balancing group, that socket will receive packets originating from any host. This breaks the contract of the connect(2) and implied connect via sendto(2), and may leave the application vulnerable to spoofing attacks. The kernel failed to check the connection state of sockets when adding them to load-balancing groups. Furthermore, when looking up the destination socket for an incoming packet, the kernel will match a socket belonging to a load-balancing group even if it is connected, in violation of the contract that connected sockets are only supposed to receive packets originating from the connected host.
El software que establece SO_REUSEPORT_LB en un socket y luego lo conecta a un host no observará directamente ningún problema. Sin embargo, debido a su pertenencia a un grupo de equilibrio de carga, ese socket recibirá paquetes originados desde cualquier host. Esto rompe el contrato de connect(2) y la conexión implícita a través de sendto(2), y puede dejar la aplicación vulnerable a ataques de suplantación de identidad. El kernel no verificó el estado de conexión de los sockets al añadirlos a grupos de equilibrio de carga. Además, al buscar el socket de destino para un paquete entrante, el kernel hará coincidir un socket perteneciente a un grupo de equilibrio de carga incluso si está conectado, en violación del contrato de que los sockets conectados solo deben recibir paquetes originados desde el host conectado.
| Version | Type | Source | Base | Exp | Impact | Vector |
|---|---|---|---|---|---|---|
| 3.1 | Primary | cve.org | 5.4 | — | — | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N |
| 3.1 | Primary | cve.org | 5.4 | — | — | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N |
| 3.1 | Secondary | NVD | 5.4 | 2.8 | 2.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N |