{
  "affected": [
    {
      "ranges": [
        {
          "database_specific": {
            "extracted_events": [
              {
                "introduced": "2.1.5"
              },
              {
                "fixed": "4.2.9"
              }
            ],
            "source": [
              "AFFECTED_FIELD",
              "REFERENCES"
            ]
          },
          "events": [
            {
              "introduced": "52ac5236b2528237c8c7992b32e9a8b7e0208845"
            },
            {
              "fixed": "4bb8fbe8d3f3590e4af51a1f5f7de56fffa5804d"
            },
            {
              "fixed": "cf0dbb38a2bc86e4346660c804a873fefbbeab49"
            }
          ],
          "repo": "https://github.com/libp2p/js-libp2p",
          "type": "GIT"
        }
      ]
    }
  ],
  "aliases": [
    "GHSA-x787-gh7p-hmq7"
  ],
  "database_specific": {
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
      "CWE-400",
      "CWE-772"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/77xxx/CVE-2026-77384.json"
  },
  "details": "libp2p is a JavaScript implementation of the libp2p networking stack. Prior to version 4.2.9, the reservation refresh path in reservation-store.ts reuses the same retimeableSignal but unconditionally registers another abort listener on every refresh. As a result, a remote peer can repeatedly send valid RESERVE requests for the same reservation, causing unbounded listener and closure growth in @libp2p/circuit-relay-v2 relay servers and leading to denial of service. This issue is fixed in version 4.2.9.",
  "id": "CVE-2026-77384",
  "modified": "2026-08-27T11:30:40.158592220Z",
  "published": "2026-08-24T21:06:39.909Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/libp2p/js-libp2p/releases/tag/circuit-relay-v2-v4.2.9"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/77xxx/CVE-2026-77384.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/libp2p/js-libp2p/security/advisories/GHSA-x787-gh7p-hmq7"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-77384"
    },
    {
      "type": "FIX",
      "url": "https://github.com/libp2p/js-libp2p/commit/4bb8fbe8d3f3590e4af51a1f5f7de56fffa5804d"
    }
  ],
  "schema_version": "1.9.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
      "type": "CVSS_V3"
    }
  ],
  "summary": "libp2p: Circuit relay v2 server reservation refresh leaks abort listeners and allows remote resource exhaustion"
}