← Back to CVE Explorer

CVE-2026-44240

Full vulnerability record from the local CVENow database.

Description

basic-ftp is an FTP client for Node.js. Prior to 5.3.1, basic-ftp is vulnerable to client-side denial of service when parsing FTP control-channel multiline responses. A malicious or compromised FTP server can send an unterminated multiline response during the initial FTP banner phase, before authentication. The client keeps appending attacker-controlled data into FtpContext._partialResponse and repeatedly reparses the accumulated buffer without enforcing a maximum control response size. As a result, an application using basic-ftp can remain stuck in connect() while memory and CPU usage grow under attacker-controlled input. This can lead to process-level denial of service, container OOM kills, worker restarts, queue backlog, or service degradation in applications that automatically connect to FTP endpoints. This vulnerability is fixed in 5.3.1.

Severity
HIGH
CVSS score
7.5 (v3.1)
Vulnerability status
Deferred
Source identifier
Published
2026-05-12 21:16:16.410000
Last modified
2026-10-26 17:10:03.270000
View original CVE JSON
{
  "id": "CVE-2026-44240",
  "sourceIdentifier": "[email protected]",
  "published": "2026-05-12T21:16:16.410",
  "lastModified": "2026-10-26T17:10:03.270",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "basic-ftp is an FTP client for Node.js. Prior to 5.3.1, basic-ftp is vulnerable to client-side denial of service when parsing FTP control-channel multiline responses. A malicious or compromised FTP server can send an unterminated multiline response during the initial FTP banner phase, before authentication. The client keeps appending attacker-controlled data into FtpContext._partialResponse and repeatedly reparses the accumulated buffer without enforcing a maximum control response size. As a result, an application using basic-ftp can remain stuck in connect() while memory and CPU usage grow under attacker-controlled input. This can lead to process-level denial of service, container OOM kills, worker restarts, queue backlog, or service degradation in applications that automatically connect to FTP endpoints. This vulnerability is fixed in 5.3.1."
    },
    {
      "lang": "es",
      "value": "basic-ftp es un cliente FTP para Node.js. Antes de la 5.3.1, basic-ftp es vulnerable a una denegación de servicio del lado del cliente al analizar respuestas multilínea del canal de control FTP. Un servidor FTP malicioso o comprometido puede enviar una respuesta multilínea no terminada durante la fase inicial del banner FTP, antes de la autenticación. El cliente sigue añadiendo datos controlados por el atacante en FtpContext._partialResponse y vuelve a analizar repetidamente el búfer acumulado sin aplicar un tamaño máximo de respuesta de control. Como resultado, una aplicación que utiliza basic-ftp puede quedarse atascada en connect() mientras el uso de memoria y CPU crece bajo la entrada controlada por el atacante. Esto puede llevar a denegación de servicio a nivel de proceso, eliminaciones OOM de contenedores, reinicios de trabajadores, acumulación de cola o degradación del servicio en aplicaciones que se conectan automáticamente a puntos finales FTP. Esta vulnerabilidad está corregida en la versión 5.3.1."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "patrickjuchli",
          "product": "basic-ftp",
          "versions": [
            {
              "version": "< 5.3.1",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
          "baseScore": 7.5,
          "baseSeverity": "HIGH",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "NONE",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "NONE",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 3.9,
        "impactScore": 3.6
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-05-14T12:31:54.775969Z",
          "id": "CVE-2026-44240",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "yes"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-400"
        },
        {
          "lang": "en",
          "value": "CWE-770"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/patrickjuchli/basic-ftp/security/advisories/GHSA-rpmf-866q-6p89",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/patrickjuchli/basic-ftp/security/advisories/GHSA-rpmf-866q-6p89",
      "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
    }
  ]
}