Hi,

It's possible to craft a malformed .swp file that causes vim to crash
in a way that completely locks up a terminal.

Here's what was on my screen when it occurred:


E325: ATTENTION
Found a swap file by the name ".Accounting.pm.swp"
          owned by: root   dated: Sat Nov  3 04:36:39 2007
         file name: /usr/local/bin/Accounting.pm
          modified: no
         user name: root   host name: ***
        process ID: 5936
While opening file "Accounting.pm"
             dated: Sat Nov  3 03:57:44 2007

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.
    Quit, or continue with caution.

(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r Accounting.pm"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file ".Accounting.pm.swp"
    to avoid this message.

Swap file ".Accounting.pm.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort, (D)elete it:

"Accounting.pm" 2059L, 113828C
Using swap file ".Accounting.pm.swp"
Original file "/usr/local/bin/src/Accounting/lib/Accounting.pm"
*** glibc detected *** double free or corruption (!prev): 0x0926fd60 ***
                                                                        
Recovery completed. You should check if everything is OK.
(You might want to write out this file under another name
and run diff with the original file to check for changes)
Delete the .swp file afterwards.

Vim: Caught deadly signal ABRT

(at this point - the terminal is completely locked up - ^C etc all
have no effect.  kill also has no effect.  kill-9 from another session
ended it OK)

------------------------
Here's some version info
------------------------
                                                    
                 VIM - Vi IMproved                  
                                                    
                   version 6.3.82                   
              by Bram Moolenaar et al.              
         Modified by <[EMAIL PROTECTED]>          
    Vim is open source and freely distributable     
                                                    
           Help poor children in Uganda!            
   type  :help iccf<Enter>       for information    
                                                    
   type  :q<Enter>               to exit            
   type  :help<Enter>  or  <F1>  for on-line help   
   type  :help version6<Enter>   for version info   
                                                    
------------------------
Here's some version info
------------------------

I think vim is used for lots of things, including at least editing
crontab files (after copy stuff to /tmp) - thus - a malicious local
user could place crafted .swp files in /tmp (or elsewhere that they
might have access to) to "crash" (DoS) anyone elses future VIM
sessions.  Depending on the error - it might be possible to exploit
this to run arbitrary code elevated to the vim users permissions (the
error reports as *either* "double free" (hard to exploit) or
"corruption" (probably a buffer overflow - easy to exploit))

Kind Regards,
Chris Drake



--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui