Diego Rodrigues de Sa e Souza
a9d73bcbfb
fix(security): polynomial ReDoS in comboAgentMiddleware regex ( #3982 )
...
* fix(security): eliminate polynomial ReDoS in comboAgentMiddleware <omniModel> regex (CodeQL js/polynomial-redos)
CACHE_TAG_PATTERN wrapped the tag in an unbounded `(?:\\n|\n|\r)*` prefix/suffix.
On an unanchored `.test()`/`.exec()` that is O(n²) on inputs with many newlines
(CodeQL js/polynomial-redos, alerts #612/#613). The surrounding runs are irrelevant
to detecting/capturing the tag, so the detection pattern now matches only the core
`<omniModel>([^<]+)</omniModel>`; the global strip pattern still consumes the
wrapping newlines (combo.ts streaming, #531 ) but BOUNDED ({0,16}) so it stays linear.
Behavior preserved: detection, model extraction, multi-tag stripping (#454 ) and
blank-line cleanup all unchanged (107 related tests green). Adds ReDoS-safety
regression tests (50k-newline inputs complete in <1ms).
* docs(changelog): add #3982 ReDoS fix to [3.8.27]
2026-06-16 08:42:58 -03:00
..
2026-06-06 00:20:51 -03:00
2026-06-13 17:27:40 -03:00
2026-06-16 01:00:40 -03:00
2026-06-01 19:46:58 -03:00
2026-06-12 23:49:22 -03:00
2026-03-05 08:41:44 -03:00
2026-05-01 12:37:09 -03:00
2026-05-04 01:36:53 -03:00
2026-06-13 17:27:40 -03:00
2026-05-21 01:29:12 -03:00
2026-04-16 16:07:44 -03:00
2026-05-23 01:46:59 -03:00
2026-05-26 23:51:47 -03:00
2026-05-21 01:29:12 -03:00
2026-04-13 13:13:37 -03:00
2026-05-21 01:29:12 -03:00
2026-05-21 01:29:12 -03:00
2026-05-30 13:03:02 -05:00
2026-06-06 19:13:11 -03:00
2026-03-23 11:08:14 -03:00
2026-04-17 21:02:26 -03:00
2026-05-26 23:51:47 -03:00
2026-05-26 23:51:47 -03:00
2026-06-07 07:20:02 -03:00
2026-06-09 15:56:24 -03:00
2026-05-31 18:17:34 -03:00
2026-05-29 13:21:36 -03:00
2026-06-13 17:27:40 -03:00
2026-04-13 14:43:32 -03:00
2026-06-16 01:00:40 -03:00
2026-06-16 01:00:40 -03:00
2026-06-13 17:27:40 -03:00
2026-04-19 19:50:30 -03:00
2026-04-12 22:41:12 -03:00
2026-04-19 19:50:30 -03:00
2026-05-30 14:35:53 +00:00
2026-06-13 17:27:40 -03:00
2026-05-26 23:51:47 -03:00
2026-05-15 12:51:07 -03:00
2026-05-02 00:48:54 -03:00
2026-05-12 20:28:02 -03:00
2026-05-23 01:46:59 -03:00
2026-05-30 13:03:02 -05:00
2026-06-16 01:00:40 -03:00
2026-06-16 08:42:58 -03:00
2026-06-13 17:27:40 -03:00
2026-05-10 00:55:06 -03:00
2026-06-13 17:27:40 -03:00
2026-05-29 12:44:29 -03:00
2026-06-11 18:52:29 -03:00
2026-05-24 18:05:58 -03:00
2026-04-25 23:51:18 -03:00
2026-06-03 18:24:41 -03:00
2026-05-10 00:55:06 -03:00
2026-06-13 17:27:40 -03:00
2026-06-11 04:01:24 -03:00
2026-05-26 23:51:47 -03:00
2026-05-26 23:51:47 -03:00
2026-06-12 23:49:22 -03:00
2026-05-29 13:21:36 -03:00
2026-05-14 20:19:55 -03:00
2026-04-11 09:38:17 -03:00
2026-06-04 20:05:38 -03:00
2026-06-13 17:27:40 -03:00
2026-06-06 19:13:11 -03:00
2026-05-23 01:46:59 -03:00
2026-05-29 13:21:36 -03:00
2026-05-24 18:05:58 -03:00
2026-06-14 10:32:26 -03:00
2026-05-10 00:55:06 -03:00
2026-06-11 18:52:29 -03:00
2026-04-12 10:34:10 -03:00
2026-03-23 09:21:03 -03:00
2026-06-12 23:49:22 -03:00
2026-05-29 12:44:29 -03:00
2026-04-22 01:39:49 -03:00
2026-06-14 10:27:39 -03:00
2026-05-31 11:31:34 -03:00
2026-06-13 17:27:40 -03:00
2026-06-16 01:00:40 -03:00
2026-06-10 13:49:08 -03:00
2026-06-10 13:49:08 -03:00
2026-05-10 00:55:06 -03:00
2026-06-07 07:20:02 -03:00
2026-06-06 03:11:58 -03:00
2026-05-29 13:21:36 -03:00
2026-05-26 23:51:47 -03:00
2026-04-13 13:11:30 -03:00
2026-06-06 19:13:11 -03:00
2026-05-29 13:21:36 -03:00
2026-06-04 20:05:38 -03:00
2026-06-12 23:49:22 -03:00
2026-05-31 19:13:41 -03:00
2026-05-29 13:21:36 -03:00
2026-06-04 20:05:38 -03:00
2026-05-16 10:13:08 -03:00
2026-05-29 13:21:36 -03:00
2026-06-04 20:05:38 -03:00
2026-05-29 13:21:36 -03:00
2026-05-10 00:55:06 -03:00
2026-05-10 00:55:06 -03:00
2026-05-10 00:55:06 -03:00
2026-05-26 23:51:47 -03:00
2026-05-24 18:05:58 -03:00
2026-03-14 10:59:15 -03:00
2026-06-06 02:48:38 -03:00
2026-05-10 00:55:06 -03:00
2026-05-10 00:55:06 -03:00
2026-05-10 00:55:06 -03:00
2026-05-10 00:55:06 -03:00
2026-06-13 17:27:40 -03:00
2026-06-12 23:49:22 -03:00
2026-05-29 12:44:29 -03:00
2026-06-12 23:49:22 -03:00
2026-06-04 20:05:38 -03:00
2026-05-29 13:21:36 -03:00
2026-06-03 18:29:31 -03:00
2026-06-14 10:27:39 -03:00
2026-03-30 12:58:45 -03:00
2026-05-30 21:17:52 -03:00
2026-06-08 00:48:01 -03:00
2026-04-17 23:21:02 -03:00
2026-04-03 00:15:35 -03:00