🇰🇷 한글 설명
python-socketio 서버가 바이너리 메시지의 첨부 파일을 기다리는 동안 해당 메시지를 메모리에 저장하는 과정에서 발생하는 취약점입니다. 공격자가 일부 첨부 파일을 의도적으로 전송하지 않으면, 미완성된 메시지가 메모리에 장기간 남아 서비스 거부(DoS)를 유발할 수 있습니다.
💡 쉬운 설명
파일을 보낼 때 일부를 일부러 빼고 보내서 서버의 메모리를 계속 차지하게 만드는 공격입니다. 이로 인해 서버의 메모리가 가득 차서 서비스가 멈출 수 있습니다.
🇺🇸 원문 (English)
python-socketio is a Python implementation of the Socket.IO realtime client and server. The python-socketio server stores binary `EVENT` and `ACK` messages in memory while it waits to receive their binary attachments. Once all the attachments are received, these messages are then processed. Prior to version 5.16.4, an attacker can submit a binary message and intentionally omit sending one or more of its attachments to cause the message along with the partial list of received attachments to stay in memory for a long time. Version 5.16.4 takes the following measures to address this issue: Binary packets are only accepted from authenticated clients and, when a client disconnects, the server checks if there is a partial binary message being held for the client and deletes it.
📍 영향받는 시스템
python-socketio version 5.16.4 미만
⚔️ 공격 벡터
인증되지 않은 공격자가 바이너리 메시지를 전송한 후 일부 첨부 파일을 누락시켜 메모리 점유 유도
🛡️ 대응 방법
python-socketio를 5.16.4 버전 이상으로 업데이트
🔧 검증 코드
출력된 버전이 5.16.4보다 낮은지 확인하십시오.
pip show python-socketio | grep Version