CVE-2026-113877
Beschrijving NL
HTTP::Headers::ActionPack-versies vóór 0.10 voor Perl staan CPU-uitputting toe via Accept-Language-bereiken die overeenkomen met reguliere expressies. _language_match interpoleert elk Accept-Language-bereik in het patroon `/^$range-/i` zonder het te escapen, waardoor de syntaxis van de reguliere expressie in de header de regex-engine bereikt. Een bereik van 12 bytes, zoals `(a?|b?){26}z`, telt seconden terug, en elke verhoging van de kwantificator verdubbelt de tijd. Een ongeldig bereik, zoals `(`, wordt niet gecompileerd. Een externe aanvaller kan de CPU uitputten of Choose_language laten sterven in elke toepassing die er een niet-vertrouwde Accept-Language-header aan doorgeeft.
Origineel (Engels) tonen
HTTP::Headers::ActionPack versions before 0.10 for Perl allow CPU exhaustion via Accept-Language ranges matched as regular expressions.
_language_match interpolates each Accept-Language range into the pattern `/^$range-/i` without escaping it, so regular expression syntax in the header reaches the regex engine. A 12-byte range such as `(a?|b?){26}z` backtracks for seconds, and each increment of the quantifier doubles the time. An invalid range such as `(` fails to compile.
A remote attacker can exhaust CPU, or make choose_language die, in any application that passes an untrusted Accept-Language header to it.