MIME-tools before 5.521 for Perl fixes 10 CVEs
The visible flaws let one bad Content-Type parameter hide later parameters, including a multipart boundary.
Unflagged multipart boundary ambiguity in Perl MIME::Field::ParamVal
MIME::Field::ParamVal before 5.521 for Perl checks boundary ambiguity only on a plain boundary= parameter. RFC 2231 continuations (boundary*0=, boundary*1= and so on) are joined afterward, and a repeated section number is concatenated instead of treated as a duplicate. From 5.518, an encoded word or trailing whitespace in such a boundary is also unflagged even though multipart_boundary() decodes or strips it. A remote sender can make MIME::Parser split the message on a different boundary than other mail readers, so a filter that trusts ambiguous_content() can miss an attachment the recipient's client displays.
What to do: Upgrade MIME-tools (MIME::Field::ParamVal) to 5.521 or later.
| Product | Affected | Fixed in |
|---|---|---|
| Perl MIME::Field::ParamVal (MIME-tools) | before 5.521 | 5.521 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
MIME::Field::ParamVal versions before 5.521 for Perl do not flag an ambiguous multipart boundary written as RFC 2231 continuations. The boundary ambiguity checks look only at a plain boundary= parameter, and a boundary split into RFC 2231 sections (boundary*0=, boundary*1= and so on) is joined after they have run. A repeated section number is concatenated rather than reported as a duplicate. From version 5.518, an encoded word or trailing whitespace in such a boundary also goes unflagged, although multipart_boundary() decodes or strips it. A remote sender can make MIME::Parser split a message on a different boundary than other mail readers, hiding an attachment from a filter that relies on ambiguous_content() while the recipient's mail client shows it.
The visible flaws let one bad Content-Type parameter hide later parameters, including a multipart boundary.
Today 1.6K readers · 3.1K views · 2.3K reads · all time 161K views