[NEWS] Silc Server and Toolkit Symlink Attack

From: SecuriTeam (support_at_securiteam.com)
Date: 09/19/05

  • Next message: SecuriTeam: "[NEWS] QNX RTOS inputtrap Arbitrary File Reading"
    To: list@securiteam.com
    Date: 19 Sep 2005 10:40:46 +0200
    
    

    The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com
    - - promotion

    The SecuriTeam alerts list - Free, Accurate, Independent.

    Get your security news from a reliable source.
    http://www.securiteam.com/mailinglist.html

    - - - - - - - - -

      Silc Server and Toolkit Symlink Attack
    ------------------------------------------------------------------------

    SUMMARY

    " <http://silcnet.org/> SILC Server enables system administrators to set
    up their own SILC networks. SILC Toolkit is full implementation of the
    SILC protocol and is intended for software and application developers who
    want to integrate SILC support in their products."

    Insecure temporary file usage allows local attackers to perform a symlink
    attack on Silc server and toolkit.

    DETAILS

    Vulnerable Systems:
     * silc-server version 1.0 and prior
     * silc toolkit version 0.9.12-r3 and prior

    The vulnerability is caused due to temporary file being created
    insecurely. This can be exploited via symlink attacks in combination to
    create and overwrite arbitrary files with the privileges of the user
    running the affected script.

    Vulnerable code:
    silcd/silcd.c:
    258 /* Dump server statistics into a file into /tmp directory */
    259
    260 SILC_TASK_CALLBACK(dump_stats)
    261 {
    262 FILE *fdd;
    263 char filename[256];
    264
    265 memset(filename, 0, sizeof(filename));
    266 snprintf(filename, sizeof(filename) - 1, "/tmp/silcd.%d.stats",
    getpid());
    267 fdd = fopen(filename, "w+");
    268 if (!fdd)
    269 return;
    270
    271 #define STAT_OUTPUT(fmt, stat) fprintf(fdd, fmt "\n", (int)stat);
    272
    273 fprintf(fdd, "SILC Server %s Statistics\n\n", silcd->server_name);
    274 fprintf(fdd, "Local Stats:\n");

    Disclosure Timeline:
    Discovered : 2005-05-31
    Vendor notified : 2005-06-15
    Vendor response : none
    Vendor fix : none
    Disclosure : 2005-09-01

    ADDITIONAL INFORMATION

    The information has been provided by <mailto:eromang@zataz.com> Eric
    Romang.
    The original article can be found at:
    <http://www.zataz.net/adviso/silc-server-toolkit-06152005.txt>
    http://www.zataz.net/adviso/silc-server-toolkit-06152005.txt

    ========================================

    This bulletin is sent to members of the SecuriTeam mailing list.
    To unsubscribe from the list, send mail with an empty subject line and body to: list-unsubscribe@securiteam.com
    In order to subscribe to the mailing list, simply forward this email to: list-subscribe@securiteam.com

    ====================
    ====================

    DISCLAIMER:
    The information in this bulletin is provided "AS IS" without warranty of any kind.
    In no event shall we be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages.


  • Next message: SecuriTeam: "[NEWS] QNX RTOS inputtrap Arbitrary File Reading"

    Relevant Pages