🇰🇷 한글 설명
pyLoad 0.5.0b3.dev100 이전 버전의 set_config_value() API에서 보안 옵션 허용목록 검증이 불완전하여, 인증된 비관리자 사용자가 SSL/TLS 검증을 비활성화할 수 있습니다. 이를 통해 중간자 공격자가 위조된 인증서를 제시하여 모든 다운로드 통신을 탈취할 수 있습니다.
💡 쉬운 설명
pyLoad 다운로드 매니저에서 일반 사용자가 보안 검증을 끌 수 있는 버그입니다. 공격자가 네트워크를 가로채서 위조된 웹사이트로 사용자를 속여 파일을 탈취할 수 있습니다.
🇺🇸 원문 (English)
pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev100, the set_config_value() API method (@permission(Perms.SETTINGS)) in src/pyload/core/api/__init__.py gates security-sensitive options behind a hand-maintained allowlist ADMIN_ONLY_CORE_OPTIONS. The option ("general", "ssl_verify") is not on that allowlist. Any authenticated user with the non-admin SETTINGS permission can set general.ssl_verify = off, and every subsequent outbound pycurl request is made with SSL_VERIFYPEER=0 and SSL_VERIFYHOST=0 — TLS peer and hostname verification are fully disabled. An on-path attacker can then present forged certificates for any hostname pyload fetches. This is a direct continuation of the fix family CVE-2026-33509 / CVE-2026-35463 / CVE-2026-35464 / CVE-2026-35586, each of which patched a different missed option in the same allowlist. This vulnerability is fixed in 0.5.0b3.dev100.
📍 영향받는 시스템
pyLoad < 0.5.0b3.dev100
⚔️ 공격 벡터
인증된 사용자가 API의 set_config_value()를 통해 general.ssl_verify=false를 설정하면 TLS 검증 비활성화, 중간자 공격으로 통신 탈취 가능
🛡️ 대응 방법
pyLoad를 0.5.0b3.dev100 이상으로 업그레이드하거나, ssl_verify 옵션을 허용목록(ADMIN_ONLY_CORE_OPTIONS)에 추가하여 관리자만 변경 가능하도록 제한
🔧 검증 코드
버전이 0.5.0b3.dev100 이상이면 안전하고, 그 이하면 취약합니다. 버전이 출력되지 않으면 pyLoad가 설치되지 않은 상태입니다.
pip show pyload-ng 2>/dev/null | grep Version | awk '{print $2}' | sed 's/^v//'