Fixed file traversal via path filename vulnerability in swaggerui static route. #2559

This commit is contained in:
morpheus65535 2024-07-01 08:02:08 -04:00
parent ad88ec3767
commit 7b7e984bff

View file

@ -153,8 +153,8 @@ def backup_download(filename):
def swaggerui_static(filename): def swaggerui_static(filename):
basepath = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), 'libs', 'flask_restx', basepath = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), 'libs', 'flask_restx',
'static') 'static')
fullpath = os.path.join(basepath, filename) fullpath = os.path.realpath(os.path.join(basepath, filename))
if not fullpath.startswith(basepath): if not basepath == os.path.commonpath((basepath, fullpath)):
return '', 404 return '', 404
else: else:
return send_file(fullpath) return send_file(fullpath)