System queries with Lua: l3sys-query

David Carlisle d.p.carlisle at gmail.com
Wed Mar 6 01:01:04 CET 2024


On Tue, 5 Mar 2024 at 23:35, Karl Berry <karl at freefriends.org> wrote:

> Hi Joseph and David,
>
>     a script for doing (primarily) directory listings from Lua
>     https://github.com/latex3/l3sys-query
>
> I passed it on to tlsecurity at tug.org for completeness, though I think
> everyone there is also here.
>
>     The aim here is to be able to use it from restricted shell escape,
> which
>     means appropriate security review, etc. Hopefully we've been
>     conservative in that regard (currently it should simply refuse to
>     provide a listing at all outside pwd). Before thinking about a release,
>     I'd like to know what we need to do security-wise to have a chance to
>     get this into the default restricted list.
>
> Do I understand correctly that the key safety bit is:
>
>   -- Look for absolute paths or any trying to leave the confines of the
> current
>   -- directory: this is not supported.
>   if match(spec,"%.%.") or
>      match(spec,"^/") or
>      match(spec,"^\\") or
>      match(spec,"[a-zA-Z]:") then
>     return
>   end
>
> That looks ok to me. And when I tried running it, I got back the
> expected blank line for anything untoward.
>
> So I see no problems for security. I believe the --all option is
> ineffective? (Which seems good.)
>

--all enables .files in the current directory being read.

If the current directory has foo.tex and .foo then .foo is not listed
unless --all is used


$ ./l3sys-query.lua ls '*foo*'
./foo.tex

$ ./l3sys-query.lua ls --all '*foo*'
./.foo
./foo.tex

If openin_any = p is in force the calling tex system wouldn't be able to
read .foo but (currently at least)  it shows in the directory listing.
I think that's compatible with openin_any=p (which actually is in force
above) otherwise we would (I think) have to add a call to
kpsewhich -var-value 'openin_any'
to disable --all in that case.




>
> I have a number of non-security comments, but will write those up later
> today or tomorrow. Wanted to send this off now. --thanks, karl.
>

David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://tug.org/pipermail/tex-live/attachments/20240306/adc24e63/attachment.htm>


More information about the tex-live mailing list.