🇰🇷 한글 설명
pyLoad 0.5.0b3.dev101 미만 버전의 api_blueprint.py 내 rpc 함수에서 multipart/form-data 업로드를 처리할 때 파일 전체 내용을 메모리에 한꺼번에 읽어들이는 취약점이 존재합니다. 업로드 크기에 대한 제한이 없어 대용량 파일 업로드 시 서버 메모리가 고갈되어 프로세스가 강제 종료될 수 있습니다.
💡 쉬운 설명
파일을 올릴 때 크기 제한 없이 한꺼번에 메모리에 담으려다 보니, 너무 큰 파일을 올리면 컴퓨터의 메모리가 꽉 차서 프로그램이 꺼져버리는 문제입니다. 이는 서비스 중단(DoS)을 일으킬 수 있습니다.
🇺🇸 원문 (English)
pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev101, the API `rpc` function in `api_blueprint.py` handles `multipart/form-data` uploads by reading the whole content of the uploaded file into memory with `file.read()`. This occurs before the data is sent to the underlying function. Since there is no size limit set at this point, a large file upload can exhaust the server's available memory which led to process termination. Version 0.5.0b3.dev101 contains a patch.
📍 영향받는 시스템
pyLoad versions prior to 0.5.0b3.dev101
⚔️ 공격 벡터
공격자가 rpc API를 통해 제한 없는 크기의 대용량 파일을 업로드하여 서버 메모리 고갈 유도
🛡️ 대응 방법
pyLoad를 0.5.0b3.dev101 이상의 패치된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 0.5.0b3.dev101보다 낮으면 취약한 상태이며, 해당 버전 이상이면 안전합니다.
python3 -c "import pyload; print(pyload.__version__)" 2>/dev/null || echo 'pyload not installed'