Bug 144187 - CAN-2004-1138 vim arbitrary command execution vulnerability
Summary: CAN-2004-1138 vim arbitrary command execution vulnerability
Alias: None
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: vim (Show other bugs)
(Show other bugs)
Version: 4.0
Hardware: All Linux
Target Milestone: ---
: ---
Assignee: Karsten Hopp
QA Contact: David Lawrence
Whiteboard: impact=low,embargo=20041215:14
Keywords: Security
Depends On:
Blocks: 142822
TreeView+ depends on / blocked
Reported: 2005-01-04 22:28 UTC by Josh Bressers
Modified: 2007-11-30 22:07 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2005-02-15 09:36:18 UTC
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2005:036 normal SHIPPED_LIVE Low: vim security update 2005-02-15 05:00:00 UTC

Description Josh Bressers 2005-01-04 22:28:19 UTC
*** This bug has been split off bug 142444 ***

------- Original comment by Josh Bressers (Security Response Team) on 2004.12.09
14:10 -------

This was reported by gentoo to vendor-sec

Ciaran McCreesh, our Gentoo vim maintainer, found and reported upstream
several modeline-related vulnerabilities in vim :

It's possible to do some pretty nasty stuff via vim modelines despite
the existing security code.

For example, by passing evil values for a fileformat setting in a
modeline, it's possible to make vim source arbitrary scripts upon
startup. This would hurt on a multiuser system. Here's one way:

User 'fred' creates a file in /home/fred/evil.vim containing lots of
nastiness (for example, "system('echo alias vim=emacs >> ~/.bashrc') |
quit"). He then creates a file in some shared location with a modeline
which does something like"set ft=../../../*fred/evil". User 'joe', who
has ftplugins and modelines enabled, edits this file. This results in a
call of ":runtime!../../../*fred/evil" , which (assuming ~/.vim is in
runtimepath) expands to ~/.vim/../../../*fred/evil which matches

Bram Moolenaar provided the following vim patch, that fixes the reported
vulnerabilities and adds more conservative modeline rights :

Patch 6.3.045
Problem:   Unusual characters in an option value may cause unexpected
           behavior, especially for a modeline. (Ciaran McCreesh)
Solution:  Don't allow setting termcap options or 'printdevice' or
           'titleold' in a modeline.  Don't list options for "termcap"
           and "all" in a modeline.  Don't allow unusual characters in
           'filetype', 'syntax', 'backupext', 'keymap', 'patchmode' and
Files:     src/option.c, runtime/doc/options.txt

This issue also affects RHEL2.1

I'll include patches when I have them.

Comment 1 Karsten Hopp 2005-01-10 15:11:14 UTC
vim-6.3.046-0.40E.1 has been built in RHEL4-errata-candidate, see 

Comment 2 Mark J. Cox 2005-02-15 09:36:18 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.


Note You need to log in before you can comment on or make changes to this bug.