Skip to content

Commit 04049d9

Browse files
Merge pull request #1285 from q1uf3ng:fix/path-traversal-static-handler
PiperOrigin-RevId: 915565348
2 parents a91fa3d + 1f454ce commit 04049d9

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

openhtf/output/servers/web_gui_server.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,14 @@ class StaticFileHandler(tornado.web.StaticFileHandler):
9595

9696
@classmethod
9797
def get_absolute_path(cls, root, path):
98-
return os.path.join(root, path)
98+
return os.path.abspath(os.path.join(root, path))
9999

100100
def validate_absolute_path(self, root, abspath):
101+
root = os.path.abspath(root)
102+
if not abspath.startswith(root + os.sep) and abspath != root:
103+
raise tornado.web.HTTPError(403)
104+
if not os.path.isfile(abspath):
105+
raise tornado.web.HTTPError(404)
101106
return abspath
102107

103108

0 commit comments

Comments
 (0)