Skip to content

Commit cb81128

Browse files
committed
chore: use package to check for regex vulnerability
1 parent 2778022 commit cb81128

3 files changed

Lines changed: 66 additions & 3 deletions

File tree

package-lock.json

Lines changed: 57 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,9 @@
8787
"deepsignal": "^1.5.0",
8888
"goober": "^2.1.14",
8989
"lodash-es": "^4.17.21",
90-
"preact": "^10.19.5",
9190
"mustache": "^4.2.0",
91+
"preact": "^10.19.5",
92+
"recheck": "^4.4.5",
9293
"uuid": "^8.3.2"
9394
},
9495
"optionalDependencies": {

src/visualBuilder/eventManager/useVariantsPostMessageEvent.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import { VisualBuilder } from "..";
22
import { visualBuilderStyles } from "../visualBuilder.style";
33
import visualBuilderPostMessage from "../utils/visualBuilderPostMessage";
44
import { VisualBuilderPostMessageEvents } from "../utils/types/postMessage.types";
5+
import { checkSync } from "recheck";
6+
57

68
interface VariantFieldsEvent {
79
data: {
@@ -37,8 +39,11 @@ function addVariantFieldClass(
3739
const dataCslp = element.getAttribute("data-cslp");
3840
if (!dataCslp) return;
3941

40-
const escapedVariantUid = variant_uid.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
41-
if (new RegExp(escapedVariantUid).test(dataCslp)) {
42+
const regexStatus = checkSync(variant_uid, "g");
43+
if (regexStatus.status !== "safe") {
44+
return;
45+
}
46+
if (new RegExp(variant_uid).test(dataCslp)) {
4247
highlightVariantFields &&
4348
element.classList.add(
4449
visualBuilderStyles()["visual-builder__variant-field"]

0 commit comments

Comments
 (0)