<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/126115/">https://git.reviewboard.kde.org/r/126115/</a>
     </td>
    </tr>
   </table>
   <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On November 19th, 2015, 12:26 nachm. UTC, <b>Sebastian Kügler</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Possibly naive question: How would I use it with my custom-build setup, where I need vars like QT_PLUGIN_PATH, etc. set to be able to start the binaries at all?</p></pre>
 </blockquote>




 <p>On November 19th, 2015, 12:31 nachm. UTC, <b>Martin Gräßlin</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I don't have a solution for it yet and yes it also affects my setup. I hope qt.conf can be used, but I don't know yet.</p></pre>
 </blockquote>





 <p>On November 19th, 2015, 2:02 nachm. UTC, <b>Matthias Klumpp</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">A possible solution to that problem is to allow setting this in a system-wide configuration file, or create a special KDE-specific configuration which sets the script to a "debug mode", which doesn't filter env vars.
The important thing is that you need root access to modify these settings (set it to debug mode or set additional variables).</p></pre>
 </blockquote>





 <p>On November 19th, 2015, 2:39 nachm. UTC, <b>Aleix Pol Gonzalez</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Wouldn't specifying them in /etc/profile.d/ work?</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Currently I use it and it works fine:</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;"><div class="codehilite" style="background: #f8f8f8"><pre style="line-height: 125%"><span style="color: #19177C">$ </span>cat /etc/profile.d/kde5.sh 
<span style="color: #008000">source</span> ~kde-devel/kdescripts/deploykde5.sh
</pre></div>
</p></pre>
 </blockquote>








</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Not having tried this, it <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">should</em> work.
For Limba, which had a suid-root helper a while ago which was launched by the user, I once wrote a wrapper which filtered the environment and allowed only specific env-vars/values to exist. After cleaning up the environment, the wrapper execv'ed the real binary, replacing the wrapper process image with the real process. This has now been replaced with a much better solution not using this hackish approach anymore, but I wonder if it's something like this that we actually need, since this gives us full control over the environment of new processes.
(I am kind of curious now how GNOME handles this... Maybe I'll ask ^^)</p></pre>
<br />










<p>- Matthias</p>


<br />
<p>On November 19th, 2015, 12:22 nachm. UTC, Martin Gräßlin wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
 <tr>
  <td>

<div>Review request for Plasma, David Edmundson and Matthias Klumpp.</div>
<div>By Martin Gräßlin.</div>


<p style="color: grey;"><i>Updated Nov. 19, 2015, 12:22 nachm.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
plasma-workspace
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Any environment variable which can be used to specify a path to a
binary object to be loaded in the KWin process bears the risk of
being abused to add code to KWin to perform as a key logger.

E.g. an env variable pointing QT_PLUGIN_PATH to a location in $HOME
and adjusting QT_STYLE_OVERRIDE to load a specific QStyle plugin from
that location would allow to easily log all keys without KWin noticing.

As env variables can be specified in scripts sourced before the session
starts there is not much KWin can do about that to protect itself.

This affects all the LD_* variables and any library KWin uses and
loads plugins.

The list here is based on what I could find:
* LD_* variables as specified in the man page
* LIBGL_* and EGL_* as specified on mesa page
* QT_* variables based on "git grep qgetenv" in qtbase and qtdeclarative
  combined with Qt's documentation
* "git grep getenv" in various KDE frameworks based on ldd output of KWin

Unfortunately the list is unlikely to be complete. If one env variable is
missed, there is a risk. Even more each change in any library might
introduce new variables.

The approach is futile, but needed till Linux has a secure way to start
the session without sourcing env variable scripts from user owned
locations.</pre>
  </td>
 </tr>
</table>



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>startkde/startplasmacompositor.cmake <span style="color: grey">(1e46e5be0a0d733fb01e1a87a34ee3c73a06bf8c)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/126115/diff/" style="margin-left: 3em;">View Diff</a></p>






  </td>
 </tr>
</table>







  </div>
 </body>
</html>