🇰🇷 한글 설명
pyLoad의 EventManager에서 인증된 사용자가 getEvents API에 고유한 UUID를 반복적으로 제출할 경우, 비활성 클라이언트 객체가 제거되지 않고 메모리에 계속 누적됩니다. 이로 인해 프로세스 메모리가 무한히 증가하여 pyLoad 서비스가 종료되거나 호스트 시스템 전체의 불안정성을 초래하는 서비스 거부(DoS) 상태가 발생할 수 있습니다.
💡 쉬운 설명
로그인한 사용자가 가짜 식별 번호를 계속 보내면 프로그램이 이를 모두 기억하려고 하다가 메모리가 꽉 차서 멈춰버리는 문제입니다. 이로 인해 다운로드 관리 프로그램이 꺼지거나 컴퓨터 전체가 느려질 수 있습니다.
🇺🇸 원문 (English)
pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev101, EventManager in src/pyload/core/managers/event_manager.py appends a Client object to the clients list for each unique uuid submitted to the authenticated getEvents API endpoint, but get_events does not invoke the available clean method to remove inactive clients. An authenticated user can repeatedly submit unique UUID values, causing retained client objects and process memory to grow without bound even after requests stop. The resulting memory exhaustion can trigger an operating-system out-of-memory termination of pyLoad or host-wide instability and denial of service. This issue is fixed in version 0.5.0b3.dev101.
📍 영향받는 시스템
pyLoad versions prior to 0.5.0b3.dev101
⚔️ 공격 벡터
인증된 사용자가 getEvents API 엔드포인트에 고유한 UUID를 반복적으로 전송하여 메모리 고갈 유도
🛡️ 대응 방법
pyLoad를 0.5.0b3.dev101 이상의 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 0.5.0b3.dev101보다 낮으면 취약한 상태입니다.
python3 -c "import pkg_resources; print(pkg_resources.get_distribution('pyload').version)" 2>/dev/null || echo 'pyload not installed'