[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Open-Xchange Security Advisory 2016-03-02



Product: Open-Xchange Guard
Vendor: Open-Xchange GmbH

Internal reference: 42847 (Bug ID)
Vulnerability type: Information exposure (CWE-200)
Vulnerable version: 2.0, 2.2.0
Vulnerable component: backend
Report confidence: Confirmed
Solution status: Fixed by vendor
Fixed version: 2.0.0-rev16, 2.2.0-rev8
Vendor notification: 2015-12-10
Solution date: 2015-12-16
CVE reference: CVE-2015-8542
CVSSv2: 7.0 
(AV:N/AC:L/Au:S/C:P/I:N/A:N/E:H/RL:U/RC:C/CDP:MH/TD:H/CR:H/IR:ND/AR:ND)

Vulnerability Details:
The "getprivkeybyid" API call is used to download a PGP Private Key for a 
specific user after providing authentication credentials. Clients provide the 
"id" and "cid" parameter to specify the current user by its user- and 
context-ID. The "auth" parameter contains a hashed password string which gets 
created by the client by asking the user to enter his or her OX Guard password. 
This parameter is used as single point of authentication when accessing PGP 
Private Keys. In case a user has set the same password than another user, it is 
possible to download another users PGP Private Key by iterating the "id" and 
"cid" parameters. This kind of attack would also be able by brute-forcing login 
credentials, but since the "id" and "cid" parameters are sequential they are 
much easier to predict than a users login name. At the same time, there are 
some obvious insecure standard passwords that are widely used. A attacker could 
send the hashed representation of typically weak passwords and randomly fetch 
Private Key of matching accounts. The attack can be executed by both internal 
users and "guests" which use the external mail reader.

Risk:
Users PGP Private Keys may get exposed to authenticated users (attackers) in 
case they were using weak passwords. The chance of a successful attack is 
higher than guessing a combination of the login name and password.

Proof of concept:
* Make sure User A (ID: 3, CID: 23) and User B (ID: 4, CID: 42) share the same 
OX Guard password
* Login as User A and request User Bs PGP Private Key by changing the "id" or 
"cid" parameter accordingly. Use the same "auth" parameter as User A would use 
when triggering the "Download Private Key" functionality at "Guard PGP 
Settings".
https://example.com/appsuite/api/oxguard/pgp/private.asc?action=getprivkeybyid&id=4&cid=42&auth=f00...b4r&guest=true
* User Bs PGP Private Key is returned

Solution:
Users shall set a strong password for their PGP Private Keys. In case a account 
gets compromised, users shall create a new keypair and revoke the compromised 
one. Users should update to versions 2.0.0-rev16, 2.2.0-rev8, 2.2.1 or later.

Attachment: signature.asc
Description: PGP signature