Skip to content

Commit 1ff9006

Browse files
IlyasShabirobertomonteromiguel
authored andcommitted
[Nodejs] Update iast stack trace tests (#3746)
1 parent f197a20 commit 1ff9006

File tree

3 files changed

+44
-16
lines changed

3 files changed

+44
-16
lines changed

manifests/nodejs.yml

+41-14
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ refs:
4242
- &ref_5_27_0 '>=5.27.0 || ^4.51.0'
4343
- &ref_5_29_0 '>=5.29.0 || ^4.53.0' # express 5 support
4444
- &ref_5_30_0 '>=5.30.0 || ^4.54.0'
45-
- &ref_5_32_0 '>=5.32.0 || ^4.56.0'
45+
- &ref_5_32_0 '>=5.32.0'
46+
- &ref_5_33_0 '>=5.33.0'
4647

4748
tests/:
4849
apm_tracing_e2e/:
@@ -95,12 +96,16 @@ tests/:
9596
TestCodeInjection:
9697
'*': *ref_5_20_0
9798
nextjs: missing_feature
98-
TestCodeInjection_StackTrace: missing_feature
99+
TestCodeInjection_StackTrace:
100+
'*': *ref_5_33_0
101+
nextjs: missing_feature
99102
test_command_injection.py:
100103
TestCommandInjection:
101104
'*': *ref_3_11_0
102105
nextjs: missing_feature
103-
TestCommandInjection_StackTrace: missing_feature
106+
TestCommandInjection_StackTrace:
107+
'*': *ref_5_33_0
108+
nextjs: missing_feature
104109
test_email_html_injection.py:
105110
TestEmailHtmlInjection: missing_feature
106111
TestEmailHtmlInjection_StackTrace: missing_feature
@@ -137,7 +142,9 @@ tests/:
137142
'*': *ref_5_26_0
138143
express5: *ref_5_29_0 # test uses querystring
139144
nextjs: missing_feature
140-
TestHeaderInjection_StackTrace: missing_feature
145+
TestHeaderInjection_StackTrace:
146+
'*': *ref_5_33_0
147+
nextjs: missing_feature
141148
test_hsts_missing_header.py:
142149
Test_HstsMissingHeader:
143150
'*': *ref_4_8_0
@@ -158,7 +165,9 @@ tests/:
158165
TestLDAPInjection:
159166
'*': *ref_4_1_0
160167
nextjs: missing_feature
161-
TestLDAPInjection_StackTrace: missing_feature
168+
TestLDAPInjection_StackTrace:
169+
'*': *ref_5_33_0
170+
nextjs: missing_feature
162171
test_no_httponly_cookie.py:
163172
TestNoHttponlyCookie:
164173
'*': *ref_4_3_0
@@ -179,25 +188,33 @@ tests/:
179188
TestNoSqlMongodbInjection:
180189
'*': *ref_4_17_0
181190
nextjs: missing_feature
182-
TestNoSqlMongodbInjection_StackTrace: missing_feature
191+
TestNoSqlMongodbInjection_StackTrace:
192+
'*': *ref_5_33_0
193+
nextjs: missing_feature
183194
test_path_traversal.py:
184195
TestPathTraversal:
185196
'*': *ref_3_19_0
186197
nextjs: missing_feature
187-
TestPathTraversal_StackTrace: missing_feature
198+
TestPathTraversal_StackTrace:
199+
'*': *ref_5_33_0
200+
nextjs: missing_feature
188201
test_reflection_injection.py:
189202
TestReflectionInjection: missing_feature
190203
TestReflectionInjection_StackTrace: missing_feature
191204
test_sql_injection.py:
192205
TestSqlInjection:
193206
'*': *ref_3_11_0
194207
nextjs: missing_feature
195-
TestSqlInjection_StackTrace: missing_feature
208+
TestSqlInjection_StackTrace:
209+
'*': *ref_5_33_0
210+
nextjs: missing_feature
196211
test_ssrf.py:
197212
TestSSRF:
198213
'*': *ref_4_1_0
199214
nextjs: missing_feature
200-
TestSSRF_StackTrace: missing_feature
215+
TestSSRF_StackTrace:
216+
'*': *ref_5_33_0
217+
nextjs: missing_feature
201218
test_template_injection.py:
202219
TestTemplateInjection:
203220
'*': *ref_5_26_0
@@ -214,32 +231,42 @@ tests/:
214231
TestUnvalidatedHeader:
215232
'*': *ref_4_3_0
216233
nextjs: missing_feature
217-
TestUnvalidatedHeader_StackTrace: missing_feature
234+
TestUnvalidatedHeader_StackTrace:
235+
'*': *ref_5_33_0
236+
nextjs: missing_feature
218237
TestUnvalidatedRedirect:
219238
'*': *ref_4_3_0
220239
nextjs: missing_feature
221-
TestUnvalidatedRedirect_StackTrace: missing_feature
240+
TestUnvalidatedRedirect_StackTrace:
241+
'*': *ref_5_33_0
242+
nextjs: missing_feature
222243
test_unvalidated_redirect_forward.py:
223244
TestUnvalidatedForward: missing_feature
224245
TestUnvalidatedForward_StackTrace: missing_feature
225246
test_weak_cipher.py:
226247
TestWeakCipher:
227248
'*': *ref_3_6_0
228249
nextjs: missing_feature
229-
TestWeakCipher_StackTrace: missing_feature
250+
TestWeakCipher_StackTrace:
251+
'*': *ref_5_33_0
252+
nextjs: missing_feature
230253
test_weak_hash.py:
231254
TestDeduplication:
232255
'*': *ref_3_11_0
233256
nextjs: missing_feature
234257
TestWeakHash:
235258
'*': *ref_3_11_0
236259
nextjs: missing_feature
237-
TestWeakHash_StackTrace: missing_feature
260+
TestWeakHash_StackTrace:
261+
'*': *ref_5_33_0
262+
nextjs: missing_feature
238263
test_weak_randomness.py:
239264
TestWeakRandomness:
240265
'*': *ref_5_1_0
241266
nextjs: missing_feature
242-
TestWeakRandomness_StackTrace: missing_feature
267+
TestWeakRandomness_StackTrace:
268+
'*': *ref_5_33_0
269+
nextjs: missing_feature
243270
test_xcontent_sniffing.py:
244271
Test_XContentSniffing:
245272
'*': *ref_4_8_0

tests/appsec/iast/sink/test_nosql_mongodb_injection.py

+1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ def test_telemetry_metric_executed_sink(self):
4141
@rfc(
4242
"https://docs.google.com/document/d/1ga7yCKq2htgcwgQsInYZKktV0hNlv4drY9XzSxT-o5U/edit?tab=t.0#heading=h.d0f5wzmlfhat"
4343
)
44+
@scenarios.integrations
4445
@features.iast_stack_trace
4546
class TestNoSqlMongodbInjection_StackTrace:
4647
"""Validate stack trace generation"""

tests/appsec/iast/utils.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ def validate_stack_traces(request):
235235
locationFrame = None
236236
for frame in stack_trace["frames"]:
237237
# We are looking for the frame that corresponds to the location of the vulnerability, we will need to update this to cover all tracers
238-
# currently support: Java, Python
238+
# currently support: Java, Python, Node.js
239239
if (
240240
stack_trace["language"] == "java"
241241
and (
@@ -244,7 +244,7 @@ def validate_stack_traces(request):
244244
and location["line"] == frame["line"]
245245
)
246246
) or (
247-
stack_trace["language"] == "python"
247+
stack_trace["language"] in ("python", "nodejs")
248248
and (frame.get("file", "").endswith(location["path"]) and location["line"] == frame["line"])
249249
):
250250
locationFrame = frame

0 commit comments

Comments
 (0)