Findings

CVE-2026-39457

When exchanging data over a socket, libnv uses select(2) to wait for data to arrive.

Published Apr 30, 2026 · updated Jun 17, 2026 · freebsd freebsd

When exchanging data over a socket, libnv uses select(2) to wait for data to arrive. However, it does not verify whether the provided socket descriptor fits in select(2)'s file descriptor set size limit of FD_SETSIZE (1024). An attacker who is able to force a libnv application to allocate large file descriptors, e.g., by opening many descriptors and executing a program which is not careful to close them upon startup, can trigger stack corruption. If the target application is setuid-root, then this could be used to elevate local privileges.

Code

The project this record applies to. Exploit listings stay in References.

No public source repository is identified for this product.

Timeline

Detection, updates, and resolution for this record.

  1. Apr 30, 2026 · NIST NVD

    Detected

    When exchanging data over a socket, libnv uses select(2) to wait for data to arrive. However, it does not verify whether the provided socket descriptor fits in select(2)'s file descriptor set size limit of FD_SETSIZE (1024). An attacker who is able to force a libnv application to allocate large file descriptors, e.g., by opening many descriptors and executing a program which is not careful to clos

  2. Jun 17, 2026 · NIST NVD

    Updated

    When exchanging data over a socket, libnv uses select(2) to wait for data to arrive. However, it does not verify whether the provided socket descriptor fits in select(2)'s file descriptor set size limit of FD_SETSIZE (1024). An attacker who is able to force a libnv application to allocate large file descriptors, e.g., by opening many descriptors and executing a program which is not careful to clos

Affected

  • cpe freebsd/freebsd13.5

Sources

  • CVE.orgVulnerability recordCVE-2026-39457

    Official CVE identifier

    cve.org
  • NIST NVDVulnerability recordCVE-2026-39457

    When exchanging data over a socket, libnv uses select(2) to wait for data to arrive. However, it does not verify whether the provided socket descriptor fits in select(2)'s file descriptor set size limit of FD_SETSIZE (1024). An attacker who is able to force a libnv application

    nvd.nist.gov

References

CVE-2026-39457 · ZeroDay Findings