Rev3861, Escape error detail to avoid XSS (reported by krzotr)

This commit is contained in:
shortcutme 2019-04-11 00:48:16 +02:00
parent 5d81467083
commit c0d81021df
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE
2 changed files with 4 additions and 4 deletions

View file

@ -13,7 +13,7 @@ class Config(object):
def __init__(self, argv): def __init__(self, argv):
self.version = "0.6.5" self.version = "0.6.5"
self.rev = 3860 self.rev = 3861
self.argv = argv self.argv = argv
self.action = None self.action = None
self.pending_changes = {} self.pending_changes = {}

View file

@ -799,12 +799,12 @@ class UiRequest(object):
# Send file not found error # Send file not found error
def error404(self, path=""): def error404(self, path=""):
self.sendHeader(404) self.sendHeader(404)
return self.formatError("Not Found", cgi.escape(path.encode("utf8")), details=False) return self.formatError("Not Found", path.encode("utf8"), details=False)
# Internal server error # Internal server error
def error500(self, message=":("): def error500(self, message=":("):
self.sendHeader(500) self.sendHeader(500)
return self.formatError("Server error", cgi.escape(message)) return self.formatError("Server error", message)
def formatError(self, title, message, details=True): def formatError(self, title, message, details=True):
import sys import sys
@ -828,7 +828,7 @@ class UiRequest(object):
<h3>Please <a href="https://github.com/HelloZeroNet/ZeroNet/issues" target="_blank">report it</a> if you think this an error.</h3> <h3>Please <a href="https://github.com/HelloZeroNet/ZeroNet/issues" target="_blank">report it</a> if you think this an error.</h3>
<h4>Details:</h4> <h4>Details:</h4>
<pre>%s</pre> <pre>%s</pre>
""" % (title, message, json.dumps(details, indent=4, sort_keys=True)) """ % (title, cgi.escape(message), cgi.escape(json.dumps(details, indent=4, sort_keys=True)))
else: else:
return """ return """
<h1>%s</h1> <h1>%s</h1>