Skip to content

Commit f8300a3

Browse files
authored
Merge pull request #2723 from Antiksec/fix/dedup-invalid-host-warning
fix: cache App Link host SSRF verdicts and log them once
2 parents 05cc95a + df108b1 commit f8300a3

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

‎mobsf/StaticAnalyzer/views/android/manifest_analysis.py‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,10 @@ def _check_url(host, w_url):
148148
'status': False}
149149

150150

151-
def get_browsable_activities(node, ns):
151+
def get_browsable_activities(node, ns, verdicts=None):
152152
"""Get Browsable Activities."""
153+
if verdicts is None:
154+
verdicts = {}
153155
try:
154156
browse_dic = {}
155157
schemes = []
@@ -192,7 +194,9 @@ def get_browsable_activities(node, ns):
192194
and host
193195
and host != '*'):
194196
host = host.replace('*.', '').replace('#', '')
195-
if not valid_host(host):
197+
if host not in verdicts:
198+
verdicts[host] = valid_host(host)
199+
if not verdicts[host]:
196200
logger.warning('Invalid Host: %s', host)
197201
continue
198202
shost = f'{scheme}://{host}'
@@ -246,6 +250,7 @@ def manifest_analysis(app_dic, man_data_dic):
246250
ret_list = []
247251
exported = []
248252
browsable_activities = {}
253+
verdicts = {}
249254
permission_dict = {}
250255
do_netsec = False
251256
debuggable = False
@@ -337,7 +342,7 @@ def manifest_analysis(app_dic, man_data_dic):
337342
item = node.getAttribute(f'{ns}:name')
338343
item = escape_manifest_attribute(item)
339344
# Browsable Activities
340-
browse_dic = get_browsable_activities(node, ns)
345+
browse_dic = get_browsable_activities(node, ns, verdicts)
341346
if browse_dic['browsable']:
342347
browsable_activities[node.getAttribute(
343348
f'{ns}:name')] = browse_dic

0 commit comments

Comments
 (0)