fix an XSS issue in an error message
authorDenis Ovsienko <denis@ovsienko.info>
Tue, 11 Jun 2019 14:42:16 +0000 (15:42 +0100)
committerDenis Ovsienko <denis@ovsienko.info>
Tue, 11 Jun 2019 14:46:27 +0000 (15:46 +0100)
The issue was reported by Diego Di Nardo.

ChangeLog
wwwroot/index.php

index 0004e35..3585f43 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
 0.21.3
        update: add a log entry limit to the object page (Mantis#769)
+       bugfix: fix an XSS issue in an error message
 0.21.2 2019-03-25
        update: enable CSS and JavaScript from external URLs (GH#231)
        update: 802.1Q: do permission check for changing native vlan while keeping the allowed vlans list unchanged
index 95ec625..ca360b4 100644 (file)
@@ -219,12 +219,14 @@ try {
                        if ($op == 'addFile' && !isset($_FILES['file']['error']))
                                throw new RackTablesError ('File upload error, check upload_max_filesize in php.ini', RackTablesError::MISCONFIGURED);
                        fixContext();
+                       // This could be a malformed request rather than an internal error, but spelling
+                       // that in proper detail would require finer checks.
                        if
                        (
                                ! isset ($ophandler[$pageno][$tabno][$op]) ||
                                ! is_callable ($ophandler[$pageno][$tabno][$op])
                        )
-                               throw new RackTablesError ("Invalid navigation data for '${pageno}-${tabno}-${op}'", RackTablesError::INTERNAL);
+                               throw new RackTablesError ('This request has no ophandler function.', RackTablesError::INTERNAL);
                        // We have a chance to handle an error before starting HTTP header.
                        if (!isset ($delayauth["${pageno}-${tabno}-${op}"]))
                                assertPermission();