Skip to content

Commit 013edf9

Browse files
authored
fix(security): escape regular expression created from user input (#3506)
Refs #3505
1 parent 43e55ec commit 013edf9

File tree

3 files changed

+4
-1
lines changed

3 files changed

+4
-1
lines changed

package-lock.json

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

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@
124124
"node-fetch-commonjs": "^3.3.2",
125125
"openapi-path-templating": "^1.5.1",
126126
"qs": "^6.10.2",
127+
"ramda-adjunct": "^5.0.0",
127128
"traverse": "=0.6.8"
128129
},
129130
"overrides": {

src/execute/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import cookie from 'cookie';
22
import { isPlainObject } from 'is-plain-object';
3+
import { escapeRegExp } from 'ramda-adjunct';
34
import { ApiDOMStructuredError } from '@swagger-api/apidom-error';
45
import { url } from '@swagger-api/apidom-reference/configuration/empty';
56

@@ -353,7 +354,7 @@ function oas3BaseUrl({ spec, pathName, method, server, contextUrl, serverVariabl
353354
const variableDefinition = selectedServerObj.variables[variable];
354355
const variableValue = serverVariables[variable] || variableDefinition.default;
355356

356-
const re = new RegExp(`{${variable}}`, 'g');
357+
const re = new RegExp(`{${escapeRegExp(variable)}}`, 'g');
357358
selectedServerUrl = selectedServerUrl.replace(re, variableValue);
358359
}
359360
});

0 commit comments

Comments
 (0)