🔍 CVE-2026-44240

7.5
CVSS Score
HIGH
2026-05-12
2026-10-26 17:10
✅ 완료

🇰🇷 한글 설명

basic-ftp 5.3.1 이전 버전에서 악의적인 FTP 서버가 보낸 종료되지 않은 다중 라인 응답에 의해 클라이언트가 메모리 누수와 CPU 사용량 급증으로 DoS 상태에 빠지는 취약점입니다. 공격자가 제어하는 데이터가 _partialResponse에 계속 축적되면서 버퍼 크기 제한이 없어 프로세스 수준의 거부 서비스를 유발합니다.

💡 쉬운 설명

FTP 클라이언트가 끝나지 않은 서버 응답을 받으면 계속 메모리를 소비하며 먹통이 됩니다. 이로 인해 애플리케이션이 멈추고 서비스가 중단될 수 있습니다.

🇺🇸 원문 (English)

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.

📍 영향받는 시스템

basic-ftp < 5.3.1 (Node.js FTP 클라이언트)

⚔️ 공격 벡터

악의적이거나 손상된 FTP 서버가 인증 전 초기 배너 단계에서 종료되지 않은 다중 라인 응답을 전송하여 클라이언트 연결 프로세스를 중단시킴

🛡️ 대응 방법

npm install basic-ftp@>=5.3.1로 업그레이드

🔧 검증 코드

npm list 출력에서 버전을 확인하여 5.3.1 이상이면 안전, 미만이면 즉시 업그레이드 필요

Shell / Script
npm list basic-ftp 2>/dev/null | grep -E 'basic-ftp@' | awk '{print $NF}' | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | awk -F. '{if($1>5 || ($1==5 && $2>3) || ($1==5 && $2==3 && $3>=1)) print "SAFE"; else print "VULNERABLE"}'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Node.js