🇰🇷 한글 설명
eml_parser의 get_raw_body_text() 함수가 message/rfc822 첨부파일을 깊이 제한 없이 무조건 재귀 처리하여 RecursionError를 발생시킵니다. 약 120개 중첩 부분으로 구성된 악의적 EML 파일(12KB)로 파서를 충돌시킬 수 있으며, 3.0.1 이전 버전이 영향을 받습니다.
💡 쉬운 설명
eml_parser가 너무 깊게 중첩된 이메일을 처리하려다 프로그램이 충돌합니다. 공격자가 특수하게 만든 작은 파일 하나만 보내도 서비스를 중단시킬 수 있습니다.
🇺🇸 원문 (English)
eml_parser serves as a python module for parsing eml files and returning various information found in the e-mail as well as computed information. Prior to 3.0.1, EmlParser.get_raw_body_text() recurses unconditionally for every nested message/rfc822 attachment without any depth limit. An attacker who can supply a badly crafted EML file with approximately 120 nested message/rfc822 parts triggers an unhandled RecursionError and aborts parsing of the message. A 12 KB EML file is enough to crash a worker. Though this causes the parser to crash, it is an unlikely scenario as the suggested EML that crashes the parser would not pass basic RFC compliance tests. This vulnerability is fixed in 3.0.1.
📍 영향받는 시스템
eml_parser < 3.0.1
⚔️ 공격 벡터
중첩된 message/rfc822 첨부파일이 있는 악의적 EML 파일 제공을 통한 DoS
🛡️ 대응 방법
eml_parser를 3.0.1 이상으로 업그레이드
🔧 검증 코드
버전이 3.0.1 이상이면 안전하고, 그 이하면 패치 필요
pip show eml_parser | grep Version