[Full-Disclosure] [VSA0402] OpenFTPD format string vulnerability

From: VOID.AT Security (crew_at_void.at)
Date: 07/30/04

  • Next message: Juan Manuel Pascual: "[Full-Disclosure] OPEN3S - Local Privilege Elevation through Oracle products (Unix Platform)"
    To: full-disclosure@lists.netsys.com
    Date: Fri, 30 Jul 2004 12:55:07 +0200
    
    
    

    [VSA0402 - openftpd - void.at security notice]

    Overview
    ========

    We have discovered a format string vulnerability in openftpd
    (http://www.openftpd.org:9673/openftpd). OpenFTPD is a free,
    open source FTP server implementation for the UNIX platform.
    FTP4ALL is not vulnerable (it doesnt use that message system).

    Affected Versions
    =================

    This affects openftpd version up to 0.30.2. This includes
    also the old version 0.29.4.

    Impact
    ======

    Middle.
    Remote Shell Access when you have an working FTP user account.

    Workaround:
    ===========

    Apply the following patch or upgrade to the latest CVS version.

    cat > openftpd_formatstring.patch << _EOF_
    --- openftpd-daily.orig/src/misc/msg.c 2004-07-05 22:02:43.000000000 +0200
    +++ openftpd-daily/src/misc/msg.c 2004-07-13 18:05:01.000000000 +0200
    @@ -319,7 +319,7 @@
        while (fgets(buff, 67, file)) {
           if (*(buff+strlen(buff)-1) == '\n') *(buff+strlen(buff)-1) = 0;
           sprintf(str, " !C| !0%-66s !C|!0\n", buff);
    - printf(str);
    + printf("%s", str);
        }
        fclose(file);
        printf("!C \\__________________________________________________!Hend of message!C__/!0\n");
    _EOF_

    Details
    =======

    When a user sends a message to another user an external program will be
    called (msg). It is used for the OpenFTPD message handling.

    andi@hoagie:~$ ncftp
    ...
    ...
    ncftp / > site msg purge
    All the messages in trash box purged.
    ncftp / > site msg send andi "AAAA%08x|%08x|%08x|%08x|%08x|%08x|%08x|%08x|%08x|%08x]"
    Message sent to andi.
    ncftp / > site msg read

    .________________________________________________________________________.
      | Message sent from: andi Tue 13/07/2004 18:28:46 |
      | |
      | AAAA0804c1e5|5e8457e0|2b379fc0|00000000|5e84572c|5e84568c|fbad8001|43212020|3021207c|41414141] |
       \__________________________________________________end of message__/
    Messages moved to archive box.
    ...
    ...

    Lets have a look at the source code:

    [openftpd-daily/src/misc/msg.c, function cat_message()]
    ...
       while (fgets(buff, 67, file)) {
          if (*(buff+strlen(buff)-1) == '\n') *(buff+strlen(buff)-1) = 0;
          sprintf(str, " !C| !0%-66s !C|!0\n", buff);
          printf(str);
       }
    ...

    Timeline
    ========

    2004-04-02: Bug discovered
    2004-07-14: Vendor notified (primemovr)
    2004-07-16: Patch for format string bug
    2004-07-22: public release

    Discovered by
    =============

    Thomas Wana <greuff@void.at>

    Further research by
    ===================

    Andi <andi@void.at>

    Credits
    =======

    void.at

    
    

    _______________________________________________
    Full-Disclosure - We believe in it.
    Charter: http://lists.netsys.com/full-disclosure-charter.html



  • Next message: Juan Manuel Pascual: "[Full-Disclosure] OPEN3S - Local Privilege Elevation through Oracle products (Unix Platform)"

    Relevant Pages

    • [VSA0402] OpenFTPD format string vulnerability
      ... We have discovered a format string vulnerability in openftpd ... open source FTP server implementation for the UNIX platform. ... ncftp /> site msg purge ...
      (Bugtraq)
    • [UNIX] OpenFTPD Format String Vulnerability
      ... The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com ... OpenFTPD suffers from a format string vulnerability when handling the SITE ... When a user sends a message to another user using the SITE MSG command an ... ncftp /> site msg purge ...
      (Securiteam)