[ 
https://issues.apache.org/jira/browse/OPENNLP-1925?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Richard Zowalla updated OPENNLP-1925:
-------------------------------------
    Fix Version/s: addons-1.6.0

> Harden RegEx Tests + RegEx exception note
> -----------------------------------------
>
>                 Key: OPENNLP-1925
>                 URL: https://issues.apache.org/jira/browse/OPENNLP-1925
>             Project: OpenNLP
>          Issue Type: Bug
>            Reporter: Kristian Rickert
>            Assignee: Kristian Rickert
>            Priority: Major
>             Fix For: addons-1.6.0
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> OpenNLP's processing path is RegEx-free by policy. {{RegexNameFinder}} and 
> {{RegexNameFinderFactory}} are the deliberate exception: their entire purpose 
> is regular-expression matching. This change records that exception in the 
> class Javadoc of both classes:
> {quote}Please note: RegEx is not allowed in the processing path of OpenNLP. 
> However, a RegEx step is an obvious exception.{quote}
> The same change hardens {{testBuiltinPatternsAreNotVulnerableToReDoS}} (added 
> in OPENNLP-1922). The single test ran all five attack inputs inside one 
> 2-second wall-clock budget. On a throttled or cold CI executor, JVM warmup 
> alone can consume the budget before the match itself runs (observed: 2.372s 
> against a 2.0s budget on a workload that takes 30ms warm), and a failure did 
> not name the input that got slow.
> Each attack now runs as its own parameterized case with one warmup pass 
> outside the timed section. The 2-second budget per case acts purely as a hang 
> guard; against the pre-OPENNLP-1922 patterns the warmup pass itself hangs or 
> overflows the stack, so the test still goes red on a regression.
> h3. Benchmark evidence
> || Workload || Old patterns || Hardened patterns ||
> | Attack suite, all five inputs | hang (>10s) or StackOverflowError per input 
> | 30ms total, slowest ~10ms |
> | Normal text scan, EMAIL, 1MB | 131ms | 25ms |
> | Normal text scan, URL, 1MB | 18ms | 15ms |



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to