CVE-2014-0022: Input Validation
Gabriel VLASIU reported [1] that yum-cron would install unsigned RPM packages that yum itself would refuse to install. The yum-cron code is based on that in yum-updatesd.py. This is due to the installUpdates() function (processPkgs() in yum-updatesd.py) failing to fully check the return code of the called sigCheckPkg() function. sigCheckPkg() is described thus:
def sigCheckPkg(self, po): """Verify the GPG signature of the given package object.
:param po: the package object to verify the signature of :return: (result, errorstring) where result is::
0 = GPG signature verifies ok or verification is not required. 1 = GPG verification failed but installation of the right GPG key might help. 2 = Fatal GPG verification error, give up. """
However, the processPkgs() and installUpdates() calling function do not account for return code 2:
def processPkgs(self, dlpkgs): ... for po in dlpkgs: result, err = self.updd.sigCheckPkg(po) if result == 0: continue elif result == 1: try: self.updd.getKeyForPackage(po) except yum.Errors.YumBaseError, errmsg: self.failed([str(errmsg)])
and:
def installUpdates(self, emit): ... for po in dlpkgs: result, err = self.sigCheckPkg(po) if result == 0: continue elif result == 1: try: self.getKeyForPackage(po) except yum.Errors.YumBaseError, errmsg: self.emitUpdateFailed(errmsg) return False
yum-cron.py replaced yum-cron.sh in Fedora 19 (3.4.3-47); earlier versions of Fedora use yum-updatesd.
This has been corrected upstream [2] and in Fedora via yum-3.4.3-132.fc19 and yum-3.4.3-130.fc20.
This does not affect Red Hat Enterprise Linux 6 as it used neither yum-updatesd nor yum-cron; it used a shellscript that called yum itself to do updates.
[1] https://bugzilla.redhat.com/showbug.cgi?id=1052440 [2] http://yum.baseurl.org/gitweb?p=yum.git;a=commitdiff;h=9df69e579496ccb6df5c3f5b5b7bab8d648b06b4
Other sources
The installUpdates function in yum-cron/yum-cron.py in yum 3.4.3 and earlier does not properly check the return value of the sigCheckPkg function, which allows remote attackers to bypass the RMP package signing restriction via an unsigned package.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
yum (yum-cron)to a version that resolves this vulnerability.Fixed in yum-3.4.3-132.fc19 - Upgrade
Upgrade
yum (yum-cron)to a version that resolves this vulnerability.Fixed in yum-3.4.3-130.fc20
Event History
Frequently Asked Questions
What is the severity of CVE-2014-0022?
The severity of CVE-2014-0022 is rated as medium.
How do I fix CVE-2014-0022?
To fix CVE-2014-0022, ensure that updates are made only from trusted sources and consider disabling yum-cron until a secure patch is applied.
What kind of attack does CVE-2014-0022 allow?
CVE-2014-0022 may allow the installation of unsigned RPM packages, which compromises the integrity of the system.
What software is affected by CVE-2014-0022?
CVE-2014-0022 affects the yum and yum-cron software packages used for managing and installing RPM packages.
Who reported CVE-2014-0022?
CVE-2014-0022 was reported by Gabriel VLASIU.