Facebook Google Plus Twitter LinkedIn YouTube RSS Menu Search Resource - BlogResource - WebinarResource - ReportResource - Eventicons_066 icons_067icons_068icons_069icons_070

[R1] IBM iAccess for Windows i Navigator Encoded Windows Admin Password Local Disclosure

Low

Synopsis

When using System i Navigator (part of IBM iAccess For Windows Tools), it's been observed that both Windows and IBM iSeries passwords are saved in HKEY_USERS\<SID>\Software\IBM\Client Access Express\CurrentVersion\Volatile\Communication\Time Stamps\<HOST>\<USER_ID>\Function Admin Timestamp, where <SID> is the Windows user using the Navigator, <HOST> is the host for which the password is saved, and <USER_ID> is the user ID associated with the saved password. The saved credentials can be used by System i Navigator to access iSeries hosts without prompting for a user's credential. The saved password is encoded with a simple, XOR-based encoding algorithm and it can be decoded using some known values as the key. The vulnerability lies in the fact that any Windows user with administrative privilege can access iSeries/Windows credentials saved in the registry by any other Windows users, even if that administrative Windows user is not necessarily authorized to access the iSeries host, nor is allowed to access other Windows users' passwords.

A typical scenario:

  1. A domain user with administrative privileges (i.e., Domain Admins) logs in his workstation. Let us call this user dadmin1.
  2. She installs IBM i Access For Windows Tools (IBM_iAccess_Windows_V7R1.iso) on his workstation to manage an iSeries host.
  3. She runs System i Navigator and adds a connection to the iSeries host.
  4. When adding the connection, she chooses one of the following when prompted for "What user ID do you want to use to sign on to":
    a) Use Windows user name and password, no prompting
    b) Use default user ID, prompt as needed (this is the Windows user currently running the Navigator)
    c) Prompt every time
    d) Use Kerberos principal name, no prompting
  5. She chooses c) Prompt every time
  6. She signs on with the QSECOFR account and performs tasks on the iSeries host.
  7. Any user (domain or local) having access to the registry entries where encrypted passwords are saved on dadmin1's workstation, can decrypt the passwords.

The following shows a local administrator is enable to see passwords of dadmin1 and QSECOFR:

Nessus was able to extract the following cached password(s) for IBM iSeries system(s) :
S-1-5-21-2071108714-1890191877-1698390088-1148
Host: .windows, UserID: dadmin1, Password: s******e
Host: ISERIES82.CYBERSQUIRREL1.COM, UserID: QSECOFR, Password: t******@

The more interesting, and scary, part of this is that IBM iAccess for Windows also acquires a copy of the user's Windows password, and stores it in the same insecure manner. This poses security risks as the local administrator may not be authorized to access the iSeries host, and should not be allowed to see a domain administrator's password.

Nessus plugin 57849 (ibmi_cached_password.nasl) can access the registry and decode the password if the scanner is given sufficient privileges to access the registry. Note that while the CVSSv2 score for this is considered 'low risk', the immediate follow-up allows for access to an additional host, possibly with administrator privileges.

Additional note:

By default, IBM iSeries has a policy limiting failed logins to three. While this can be argued to be effective in stopping brute-force login attempts, it can also be argued that number is too low, effectively allowing for a trivial DoS against the system, especially given all of the potential default credentials on the system (covered by Nessus plugin ibmi_default_password.nasl):

  • 'QSYSOPR;QSYSOPR',
  • 'QSECOFR;QSECOFR',
  • '11111111;11111111',
  • '22222222;22222222',
  • 'IBM;PASSWORD',
  • 'IBM;2222',
  • 'IBM;SERVICE',
  • 'IBM;IBM',
  • 'QPGMR;QPGMR',
  • 'QSECOFR;11111111',
  • 'QSECOFR;22222222',
  • 'QSERV;QSERV',
  • 'QSRV;QSRV',
  • 'QSRVBAS;QSRVBAS',
  • 'QSVR;QSVR',
  • 'QSVR;IBMCEL',
  • 'QUSER;QUSER',
  • 'SECOFR;SECOFR'

Solution

IBM has released version 7.1 – SI60523 to address this issue.

Disclosure Timeline

2012-02-06 - Nessus plugin 57849 published
2015-11-17 - Vendor Informed (when we noticed it included the Windows password)
2015-11-24 - Pinged vendor to confirm they received report
2015-12-08 - Pinged vendor again to confirm they received report
2015-12-21 - Contact IBM from alternate address to verify mails getting through
2015-12-21 - IBM responds quickly, saying no mails received from Tenable. Original report re-sent.
2015-12-21 - IBM confirms receipt
2015-12-22 - IBM assigns PSIRT Advisory 4446
2016-02-17 - Pinged vendor for update
2016-02-24 - IBM replies "Your submission is still under review. We are hoping to have a update for you soon."
2016-03-24 - IBM replies "issue has been verified ... product team working on a fix"
2016-05-17 - Ping vendor for update
2016-05-17 - IBM replies hope to have fix late Q2. CVE-2016-0287 assigned for tracking.
2016-06-22 - Ping vendor for update
2016-06-23 - IBM replies "hope to issue the fix by the end of the month"
2016-06-27 - IBM releases an advisory and patch

All information within TRA advisories is provided “as is”, without warranty of any kind, including the implied warranties of merchantability and fitness for a particular purpose, and with no guarantee of completeness, accuracy, or timeliness. Individuals and organizations are responsible for assessing the impact of any actual or potential security vulnerability.

Tenable takes product security very seriously. If you believe you have found a vulnerability in one of our products, we ask that you please work with us to quickly resolve it in order to protect customers. Tenable believes in responding quickly to such reports, maintaining communication with researchers, and providing a solution in short order.

For more details on submitting vulnerability information, please see our Vulnerability Reporting Guidelines page.

If you have questions or corrections about this advisory, please email [email protected]