🇰🇷 한글 설명
Magento LTS의 XML-RPC/SOAP API 세션 ID가 안전하지 않은 시간 기반 방식으로 생성되어 CSPRNG를 사용하지 않습니다. OWASP ASVS v4 및 NIST 표준의 최소 64비트 엔트로피 요구사항을 위반하며, 공격자가 예측 가능한 세션 ID 풀을 생성한 후 고속 온라인 브루트포스 공격으로 활성 API 세션을 하이재킹할 수 있습니다. 버전 20.18.0에서 수정되었습니다.
💡 쉬운 설명
Magento 전자상거래 플랫폼에서 API 접속 토큰이 현재 시간과 서버 상태만으로 만들어져 공격자가 쉽게 예측하고 다른 사용자 계정에 접속할 수 있습니다. 20.18.0 버전으로 업그레이드하면 안전한 난수 생성 방식을 사용하게 됩니다.
🇺🇸 원문 (English)
Magento Long Term Support (LTS) is an unofficial, community-driven project provides an alternative to the Magento Community Edition e-commerce platform with a high level of backward compatibility. Prior to 20.18.0, the XML-RPC / SOAP API session ID is generated using an outdated, time-based construction rather than a Cryptographically Secure Pseudo-Random Number Generator (CSPRNG). All inputs to the MD5 hash are time-derived and non-secure. Because the resulting digest relies entirely on the timestamp and the PHP internal LCG state, the effective entropy is severely constrained. This violates the OWASP ASVS v4 requirement of ≥ 64 bits of entropy (V3.2.2) and NIST SP 800-63B standards. By narrowing the LCG window (via server state leaks or general predictability) and leveraging the lack of API rate-limiting, an attacker can generate a localized pool of candidate MD5 hashes and execute a high-speed online brute-force attack to hijack active API sessions. This vulnerability is fixed in 20.18.0.
📍 영향받는 시스템
Magento LTS (Long Term Support) 버전 20.18.0 미만
⚔️ 공격 벡터
시간 기반 세션 ID 생성의 약점을 이용하여 MD5 해시 후보군을 생성하고 API 레이트 제한 부재를 악용한 고속 온라인 브루트포스 공격
🛡️ 대응 방법
Magento LTS를 버전 20.18.0 이상으로 즉시 업그레이드
🔧 검증 코드
composer.json에서 magento-lts 버전 번호가 20.18.0 미만이면 취약 상태입니다.
cat composer.json 2>/dev/null | grep -A 1 '"magento-lts"' | grep -oP '(?<=")[\d.]+'