Changes for version 5.520 - 2026-10-21
- VERSION 5.520 RELEASED
- MIME::Parser used O(N^2) CPU time and memory parsing a MIME message nested N levels deep. A smallish specially-crafted message could DOS the computer by making it consume enormous amounts of memory and CPU time. The parser was modified to use O(N) time and memory in this case. Additionally, a new MIME::Parser::max_depth() function was added to limit the nesting depth before declaring a parse failure. Problem was reported to me by Zhaoyang Li and Xiang Li from AOSP Lab at Nankai University.
- MIME::Parser would ignore multiple blank lines in a message when parsing it; this could break DKIM. Problem pointed out and fix suggested by Tim Henderson.
- If a MIME boundary includes trailing whitespace, we mark the parse as ambiguous. Problem noted and patch submitted by Christian Herdtweck
Modules
the body of a MIME message
an object for decoding the body part of a MIME stream
encode/decode a "base64" stream
decode a "binhex" stream
perform no encoding/decoding
decode a "base64" gzip stream
encode/decode a "7bit" or "8bit" stream
encode/decode a "quoted-printable" stream
decode a "uuencoded" stream
class for parsed-and-decoded MIME message
a "Content-transfer-encoding" field
a "Content-disposition" field
a "Content-type" field
subclass of Mail::Field, for structured MIME fields
MIME message header (a subclass of Mail::Header)
experimental class for parsing MIME streams
manage file-output of the parser
a line-oriented reader for a MIME::Parser
results of the last entity parsed
modules for parsing (and creating!) MIME entities
decode RFC 2047 encoded words to a local representation
deal with RFC 2047 encoded words
Provides
in lib/MIME/Body.pm
in lib/MIME/Body.pm
in lib/MIME/Body.pm
in lib/MIME/Parser/Filer.pm
in lib/MIME/Parser/Filer.pm
in lib/MIME/WordDecoder.pm
in lib/MIME/WordDecoder.pm
in lib/MIME/WordDecoder.pm