view website/issues/html/user.help-search.html @ 8356:63390dcfcfe9

bug: fix template use of structure with untrusted data Looks like an xSS bug with an early version of the template that was fixed in the code but never in the deployed tracker. It has been a while since this particular construct has been in the classic template which is the base for the tracker. This has been fixed on the deployed tracker as well. reported by 4bug of ChaMd5 Security Team H1 Group
author John Rouillard <rouilj@ieee.org>
date Tue, 08 Jul 2025 10:23:09 -0400
parents 28aa76443f58
children
line wrap: on
line source

<html
  tal:define="form request/form/form/value;
  field request/form/property/value"
  >
  <head>
    <title>Search input for user helper</title>
    <script language="Javascript" type="text/javascript"
        tal:attributes="nonce request/client/client_nonce"
        tal:content="string:
        // this is the name of the field in the original form that we're working on
        form  = parent.opener.document.${form};
        field  = '${field}';">
    </script>
    <script type="text/javascript" src="@@file/help_controls.js"
	    tal:attributes="nonce request/client/client_nonce"></script>
    <link rel="stylesheet" type="text/css" href="@@file/style.css" />
  </head>
  <body onload="parent.submit.url='...'"
    tal:define="
qs request/env/QUERY_STRING;
qs python:'&'.join([a for a in qs.split('&') if not a.startswith('@template=')])"
>
    <pre tal:content="request/env/QUERY_STRING" tal:condition=false />
    <form method="get" name="itemSynopsis"
      target="list"
      tal:attributes="action request/classname"
      tal:define="
      property request/form/property/value;
   cols python:request.columns or 'id username address realname roles'.split();
   sort_on request/sort | nothing;
   sort_desc python:sort_on and request.sort[0][0] == '-';
   sort_on python:sort_on and request.sort[0][1] or 'lastname';

   search_input templates/page/macros/search_input;
   search_select templates/page/macros/search_select;
   search_select_roles templates/page/macros/search_select_roles;
   required python:[];
   th_label templates/page/macros/th_label;
   ">
   <input type="hidden" name="@template" value="help-list">
   <input type="hidden" name="property" value="" tal:attributes="value property">
   <input type="hidden" name="form" value="" tal:attributes="value request/form/form/value">
   <table>
<tr tal:define="name string:username; label string:Username:">
  <th metal:use-macro="th_label">Name</th>
  <td metal:use-macro="search_input"><input type=text></td>
</tr>

<tr tal:define="name string:roles;
                onchange string:this.form.submit();
                label string:Roles:"
                >
  <th metal:use-macro="th_label">role</th>
  <td metal:use-macro="search_select_roles">
    <select>
      <option value="">jokester</option>
    </select>
  </td>
</tr>

<tr>
  <td>&nbsp;</td>
  <td>
    <input type="hidden" name="@action" value="search">
    <input type="submit" value="Search" i18n:attributes="value">
    <input type="reset">
    <input type="hidden" value="username,realname,organisation,roles" name="properties">
    <input type="text" name="@pagesize" id="sp-pagesize" value="25" size="2">
    <label for="sp-pagesize" i18n:translate="">Pagesize</label>
  </td>
</tr>

   </table>

</form>
<pre tal:content="request" tal:condition=false />
<script type="text/javascript"
	tal:attributes="nonce request/client/client_nonce"><!--
  focus2id('username');
//--></script>
  </body>
</html>

Roundup Issue Tracker: http://roundup-tracker.org/