|
Vim: Insecure Temporary File Creation During Build: Arbitrary Code Execution Jul 17 2008 10:54PM Jan MinĂ¡Å? (rdancer rdancer org) (2 replies) Re: [Full-disclosure] Vim: Insecure Temporary File Creation During Build: Arbitrary Code Execution Jul 25 2008 01:17AM Robert Buchholz (rbu gentoo org) (1 replies) Re: [Full-disclosure] Vim: Insecure Temporary File Creation During Build: Arbitrary Code Execution Jul 25 2008 02:16AM Jan MináÅ? (rdancer rdancer org) (2 replies) Re: [Full-disclosure] Vim: Insecure Temporary File Creation During Build: Arbitrary Code Execution Jul 25 2008 03:57PM Steven M. Christey (coley linus mitre org) (1 replies) Re: [Full-disclosure] Vim: Insecure Temporary File Creation During Build: Arbitrary Code Execution Jul 26 2008 12:33PM Jan MináÅ? (rdancer rdancer org) Re: [Full-disclosure] Vim: Insecure Temporary File Creation During Build: Arbitrary Code Execution Jul 25 2008 10:18AM Robert Buchholz (rbu gentoo org) |
|
|
Privacy Statement |
> The attacker has to create the temporary file
> ``/tmp/Makefile-conf<PID>'' before it is first written to at (1). In
> the time between (1) and (2), arbitrary commands can be written to the
> file. They will be executed at (2).
> Patch fixing this vulnerability can be found at the following URL:
>
> http://www.rdancer.org/vulnerablevim-configure.in.patch
Using mktemp is a lot safer than using $$, but the file can still be
written to between the creation and setup of the file and the eval.
Dealing with temporary files in shell scripts is always racy. This
fixes the easily guessed PID-pattern problem and as mktemp creates its
file in a hopefully non-shared directory, increases security a great
deal, but it's still racy.
Why not use pipes instead?
eval "`cd /usr/lib/python2.4/config && (cat Makefile - <<'eof'
__:
@echo "python_MODLIBS='$(MODLIBS)'"
@echo "python_LIBS='$(LIBS)'"
@echo "python_SYSLIBS='$(SYSLIBS)'"
@echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
eof
) | make -f - __ | sed '/ directory /d'`"
(I really don't see the point of the sed. Isn't that information
output to stderr anyway (in which case it should be suppressed?))
I'm not sure if this requires too much from make and sh, though. It
works with Bash's sh emulation.
[ reply ]