Bug 505983 (CVE-2009-1883)

Summary: CVE-2009-1883 kernel: missing capability check in z90crypt
Product: [Other] Security Response Reporter: Eugene Teo (Security Response) <eteo>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: atangrin, dhoward, jolsa, peterm, security-response-team, vgoyal
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: s390   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-10-19 09:07:38 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 505984, 505985, 505986    
Bug Blocks:    

Description Eugene Teo (Security Response) 2009-06-15 04:38:46 UTC
Solar Designer reported a missing capability check in the z90crypt driver
in the Linux kernel. This missing check could allow a local, unprivileged
user to bypass intended capability restrictions.

Comment 2 Eugene Teo (Security Response) 2009-06-15 04:51:54 UTC
Doesn't affect upstream anymore. We need to fix this in rhel-3/4.

@@ -1887,20 +1887,21 @@ z90crypt_unlocked_ioctl(struct file *fil
 				PRINTK("No longer issuing messages about depre"
 				       "cated ioctl Z90STAT_PCIXCCCOUNT.\n");
 		}
 
 		tempstat = get_status_PCIXCCcount();
 		if (copy_to_user((int *)arg, &tempstat, sizeof(int)) != 0)
 			ret = -EFAULT;
 		break;
 
 	case Z90QUIESCE:
+/* AUDIT-UL: should check a capability */
 		if (current->euid != 0) {
 			PRINTK("QUIESCE fails: euid %d\n",
 			       current->euid);
 			ret = -EACCES;
 		} else {
 			PRINTK("QUIESCE device from PID %d\n", PID());
 			quiesce_z90crypt = 1;
 		}
 		break;

Comment 3 Eugene Teo (Security Response) 2009-06-15 04:53:18 UTC
[...]
 171 *   Z90QUIESCE (not recommended)
 172 *     Quiesce the driver.  This is intended to stop all new
 173 *     requests from being processed.  Its use is NOT recommended,
 174 *     except in circumstances where there is no other way to stop
 175 *     callers from accessing the driver.  Its original use was to
 176 *     allow the driver to be "drained" of work in preparation for
 177 *     a system shutdown.

Comment 10 errata-xmlrpc 2009-09-15 08:30:39 UTC
This issue has been addressed in following products:

  Red Hat Enterprise Linux 4

Via RHSA-2009:1438 https://rhn.redhat.com/errata/RHSA-2009-1438.html