brace-expansion: Large numeric range defeats documented `max` DoS protection
Moderate severity
GitHub Reviewed
Published
May 12, 2026
in
juliangruber/brace-expansion
•
Updated May 18, 2026
Description
Published to the GitHub Advisory Database
May 18, 2026
Reviewed
May 18, 2026
Last updated
May 18, 2026
The
maxoption was being applied too late:When expanding a single large numeric range like
{1..10000000}, the sequence generation loop generates all 10 million intermediate elements before themaxlimit is applied Withmax=10, the output is correctly limited to 10 items, but the process still allocates~505 MBand spends~800msbuilding the full intermediate array.Workaround
Ensure the string to be expanded doesn't contain more values than the desired
maxitem count.References