This update for perl-MIME-tools fixes the following issues:
Changes in perl-MIME-tools:
updated to 5.522.0 (5.522)
5.522
VERSION 5.522 RELEASED
Many security issues were addressed (see the following ten CVEs)
Issues were brought to my attention, and patches supplied, by the
CPANSec security group.
parse_params: flag a parameter list that could not be parsed
Detect additional ambiguous parse situations when parameter
names contain illegal characters. Fixes:
CVE-2026-116264 invalid parameter hides boundary/filename. bsc#1288723
parse_params: check the boundary after RFC 2231 reassembly
Another ambiguous-parse case was missed (trailing space after
boundary was not detected for RFC-2231-encoded boundaries.) Fixes:
CVE-2026-116265 RFC 2231 boundary skips ambiguity checks. bsc#1288722
parse_params: Stricter checking for encoded boundaries; earlier
versions would miss some cases. Fixes:
CVE-2026-116266 boundary changed by decoding not flagged. bsc#1288721
Cap the indentation levels in the Results: structure. Otherwise,
specially-crafted messages could consume large amounts of memory.
Fixes: CVE-2026-116267 indent stored per message per level bsc#1288720
parse_params: stop a comment match at the next parenthesis.
Otherwise, specially-crafted messages could cause the regex
back-tracker to consume large amounts of CPU time. Note that
MIME::Parser does not correctly parse ((nested comments)) and
has never done so. Fixes:
CVE-2026-116268 unclosed "(" comments backtrack CPU exhaustion. bsc#1288719
parse_params: re-encode filename* values without charset tricks
Specially-crafted messages could trick recommended_filename()
into returning an empty string instead of a plausible filename.
Fixes: CVE-2026-116269 RFC 2231 language tag empties filename. bsc#1288718
decode_mimewords: do not copy the input into each error. Otherwise,
specially-crafted messages could consume large amounts of memory.
Fixes: CVE-2026-116270 each bad "=?" copies the input into $@. bsc#1288717
FileUnder: do not reuse an existing generated directory. Otherwise,
attackers might be able to use symbolic links to get files created
in unexpected locations. Fixes:
CVE-2026-116271 FileUnder reuses a pre-created directory. bsc#1288716
parse_params: flag comments other readers do not skip
Specially-crafted messages could create ambiguous messages without
setting the ambiguous_parse flag. Fixes:
CVE-2026-116272 comment hides a duplicate boundary. bsc#1288715
Call whine() rather than error() if max_parts or max_depth is
exceeded during a parse. This lets us return undef rather than
throwing an exception if ignore_errors() is set to 0.
Change to defaults: max_parts is now set to 1000 and max_depth
to 64 rather than being unlimited. This should not affect most
real-world uses of MIME::tools, but you may need to increase
these values or set them to -1 (unlimited) if you run into trouble.
***** NOTE INCOMPATIBILITY *****
Fixes: CVE-2026-116273 max_parts and max_depth unlimited. bsc#1288714
Do not signal an ambiguous parse if we have filename="" or
name=""
Update author names in META.yml
Add git repo to META.yml
5.520
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
preamble 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
5.519
VERSION 5.519 RELEASED
Some (buggy) software creates base64-encoded parts as a
concatenation of multiple base64-encoded streams, and some client
software decodes each stream separately and concatenates the
results. Duplicate this behavior in MIME::tools to prevent it
from being used as a mechanism to sneak dangerous content past a
security scanner. Patch courtesy of Giorgio Premi
giosh94mhz@gmail.com.
updated to 5.518.0 (5.518)
5.518
VERSION 5.518 RELEASED
Add tests for encoded "boundary=XXX" parameters and set
the ambiguous-parse flag if any are found. Patch courtesy
of Dominik Csapak d.csapak@proxmox.com
MIME::tools chooses to decode encoded boundary parameters.
MUA behaviors differ; Claws-Mail decodes them while Thunderbird
does not.
Don't ignore invalid whitespace after "boundary=XXX" parameter.
Patch courtesy of Dominik Csapak d.csapak@proxmox.com
Ignore comments between tokens. A header parameter can be
written foo(comment)=bar and it's the same as foo=bar.
Patch courtesy of Dominik Csapak d.csapak@proxmox.com
updated to 5.517.0 (5.517)
5.517
VERSION 5.517 RELEASED
Add a missing test message file that was causing tests to fail.
5.516
VERSION 5.516 RELEASED
Handle MIME parameters of the form param= better (ie,
a parameter with no value at all.) It's treated the
same as param="" rather than aborting the parse.
Diagnose additional types of malformed MIME as ambiguous.
Specifically, an empty boundary parameters like boundary= or
boundary="" is treated as ambiguous. Thanks to Stoiko Ivanov
s.ivanov@proxmox.com for pointing out this missing case.