The GitHub Actions job "Java CI" on commons-jexl.git/JEXL-471 has succeeded.
Run started by GitHub user henrib (triggered by henrib).

Head commit for run:
65d1f0c2370ebf0d380f28dfcdcad1bf8b1bceb6 / Henrib <[email protected]>
JEXL-471 : Runtime hardening: Constrain BigInteger operations and ensure regex 
interruptibility

1. Make regex matching (=~ operator) interruptible
   * Wrap matched string in InterruptibleCharSequence
   * Samples Thread.isInterrupted() every 256 chars
   * Throws ArithmeticException -> JexlException.Cancel on interruption
   * Add length guard on regex patterns (max 2048 chars)

2. Enforce MathContext precision on BigInteger arithmetic
   * Move checkBigIntegerPrecision() outside try-catch in add()/subtract()/etc
   * Prevent ArithmeticException from being silently swallowed
   * Bounded results prevent memory exhaustion

3. Prevent O(n²) DoS from huge BigInteger literals at parse time
   * Cap literal digit count by MathContext.getPrecision()
   * Fallback to hardcoded 256-digit limit if no precision configured
   * NumberFormatException wraps as JexlException.Parsing

Tests added:
   * testRegexMatchingInterruptible()
   * testRegexPatternTooLong()
   * testBigIntegerArithmeticPrecisionCap()
   * testBigIntegerLiteralTooLong()

Co-Authored-By: Claude <[email protected]>

Report URL: https://github.com/apache/commons-jexl/actions/runs/33317299449

With regards,
GitHub Actions via GitBox

Reply via email to