Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hHwMD-0004br-Sp for pgsql-bugs@arkaria.postgresql.org; Sat, 20 Apr 2019 20:13:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hHwMC-0001kj-L7 for pgsql-bugs@arkaria.postgresql.org; Sat, 20 Apr 2019 20:13:04 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hHwMC-0001kc-CC for pgsql-bugs@lists.postgresql.org; Sat, 20 Apr 2019 20:13:04 +0000 Received: from meldrar.postgresql.org ([2a02:c0:301:0:ffff::31]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hHwMA-0001Kb-2T for pgsql-bugs@lists.postgresql.org; Sat, 20 Apr 2019 20:13:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Content-Type:In-Reply-To:MIME-Version:Date: Message-ID:From:References:Cc:To:Subject:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=RrACARkW4R2zLrj0SRfgWMvxf3xQQa/8NbBa7qkafoU=; b=ff6I8fABgXHyLZxtomGSVqkg9K fjfyfcfFUHXpuebUKg/3fMo+V24USVOvVedACIPoNk73039ECJikVWPVt2Jfwr6+rvxzajAn8c4zr /xkHjF+FX8s5hudXnfPiUGnYZGbWqv3lrIH7HjXTNRVlJjXN+VJkjajKx+yZzKZ4o1omDoithovjF bSrLy6zYmyL4gFjzR7dLCT2TcuvYam05TYd1AZief8W8AwBI5Gyhds/dKmAyOBOkQqYVOd4AxDcQl 7O/l/LA/M8ySf2F1epaMHfwE9NBajLpMmSOFfsDoN0+uK0dvGlrjClQbQCjOtpOXYMM77JqhbUFH0 KTdA7xug==; Received: from pool-96-250-83-19.nycmny.fios.verizon.net ([96.250.83.19] helo=Ph33r-Retina.home) by meldrar.postgresql.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hHwM6-0003uU-7s; Sat, 20 Apr 2019 20:13:00 +0000 Subject: Re: Possible to store invalid SCRAM-SHA-256 Passwords To: pgsql-bugs@lists.postgresql.org Cc: Stephen Frost References: <016deb6b-1f0a-8e9f-1833-a8675b170aa9@postgresql.org> From: "Jonathan S. Katz" Openpgp: preference=signencrypt Autocrypt: addr=jkatz@postgresql.org; keydata= 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 FmEC Message-ID: <4240a41f-a957-fd7d-7c24-31683f259b9d@postgresql.org> Date: Sat, 20 Apr 2019 16:12:56 -0400 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <016deb6b-1f0a-8e9f-1833-a8675b170aa9@postgresql.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="3j47u4iEmud78YdvSuExxYez7jWLjruJ1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --3j47u4iEmud78YdvSuExxYez7jWLjruJ1 Content-Type: multipart/mixed; boundary="AFQtlzUxmjPpTedJ9Y9cTu1qhVB40KDyd"; protected-headers="v1" From: "Jonathan S. Katz" To: pgsql-bugs@lists.postgresql.org Cc: Stephen Frost Message-ID: <4240a41f-a957-fd7d-7c24-31683f259b9d@postgresql.org> Subject: Re: Possible to store invalid SCRAM-SHA-256 Passwords References: <016deb6b-1f0a-8e9f-1833-a8675b170aa9@postgresql.org> In-Reply-To: <016deb6b-1f0a-8e9f-1833-a8675b170aa9@postgresql.org> --AFQtlzUxmjPpTedJ9Y9cTu1qhVB40KDyd Content-Type: multipart/mixed; boundary="------------0EC1BEEC2CD3B81B2C17AA00" Content-Language: en-US This is a multi-part message in MIME format. --------------0EC1BEEC2CD3B81B2C17AA00 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 4/20/19 3:26 PM, Jonathan S. Katz wrote: > Hi, >=20 > With some guidance from Stephen, I've discovered some scenarios where > one can store invalid SCRAM-SHA-256 passwords. >=20 > Scenario #1: Directly from CREATE/ALTER ROLE >=20 > for example on PostgreSQL 11: >=20 > CREATE ROLE test1 PASSWORD 'SCRAM-SHA-256$1234' LOGIN; >=20 > In the logs, one sees: >=20 > 2019-04-20 18:36:07.883 UTC [22251] postgres@postgres LOG: invalid > SCRAM verifier for user "test1" > 2019-04-20 18:36:07.883 UTC [22251] postgres@postgres STATEMENT: > CREATE USER test1 PASSWORD 'SCRAM-SHA-256$1234' LOGIN; >=20 > pg_authid contains: >=20 > -[ RECORD 1 ]--+------------------- > rolname | test1 > rolcanlogin | t > rolpassword | SCRAM-SHA-256$1234 >=20 > and when I try to login with the password "SCRAM-SHA-256$1234" e.g. >=20 > psql -U test1 postgres >=20 > psql: FATAL: password authentication failed for user "test1" > FATAL: password authentication failed for user "test1" >=20 > Scenario #2: On an upgrade from PG < 10 =3D> PG >=3D 10 >=20 > On a PostgreSQL 9.6.12, I created a user as the following: >=20 > CREATE ROLE test2 WITH UNENCRYPTED PASSWORD 'SCRAM-SHA-256$1234' LOGIN;= >=20 > with pg_authid contents: >=20 > -[ RECORD 1 ]--+------------------- > rolname | test2 > rolcanlogin | t > rolpassword | SCRAM-SHA-256$1234 >=20 > And was able to **successfully login.** >=20 > I installed PostgreSQL 11 and upgrading from 9.6.12 =3D> 11.2 >=20 > When I attempt to login as test2, I get the following error: >=20 > psql: FATAL: password authentication failed for user "tester" > FATAL: password authentication failed for user "tester" >=20 > While my hunch is that Scenario #2 is less likely to happen in the wild= , > Scenario #1 is a real possibility. Examples, a non-libpq passed driver > wants to send a hashed password directly to a server and has a mistake > in the algorithm, or a program calls "ALTER ROLE" and modifies a > password with an invalid SCRAM-SHA-256 hash in it, etc. Attached is a patch that I believe resolves this. I modified the "get_password_type" function to perform a SCRAM verification to see if it is a properly hashed SCRAM password. If it is, we treat the password as a SCRAM hashed one. Otherwise, we proceed to the next step, which is to treat it as a plainly stored one. Thoughts? Jonathan --------------0EC1BEEC2CD3B81B2C17AA00 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0001-Modified-SCRAM-SHA-256-validation-check-for-get_pass.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Modified-SCRAM-SHA-256-validation-check-for-get_pass.pa"; filename*1="tch" RnJvbSBhOGI5OTllZDQ0ZmQ2MzZmY2UwNWJlZThmY2FmZmVkYjliMGZiOWE3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSm9uYXRoYW4gUy4gS2F0eiIgPGpvbmF0aGFuLmth dHpAZXhjb3ZlbnR1cmVzLmNvbT4KRGF0ZTogU2F0LCAyMCBBcHIgMjAxOSAxNjowMjozMiAt MDQwMApTdWJqZWN0OiBbUEFUQ0hdIE1vZGlmaWVkIFNDUkFNLVNIQS0yNTYgdmFsaWRhdGlv biBjaGVjayBmb3IgZ2V0X3Bhc3N3b3JkX3R5cGUKClRoZSBnZXRfcGFzc3dvcmRfdHlwZSBm dW5jdGlvbiBwcmV2aW91c2x5IGp1c3QgY2hlY2tlZCB0byBzZWUgaWYgYSBwYXNzd29yZApz dGFydGVkIHdpdGggIlNDUkFNLVNIQS0yNTYkIiB0byBkZXRlcm1pbmUgd2hldGhlciBvciBu b3QgaXQgd2FzIGEKU0NSQU0tU0hBLTI1NiBoYXNoZWQgcGFzc3dvcmQuIEhvd2V2ZXIsIHRo aXMgd291bGQgY2F1c2UgcGFzc3dvcmRzIGNyZWF0ZWQKaW4gdGhpcyB3YXMgdG8gYmUgdW51 c3VhYmxlLgoKVGhpcyBjaGFuZ2VzIGdldF9wYXNzd29yZF90eXBlIG1ldGhvZG9sb2d5IHRv IGFjdHVhbGx5IHBlcmZvcm0gU0NSQU0tU0hBLTI1Ngp2ZXJpZmljYXRpb24gb24gdGhlIHBh c3N3b3JkIHRvIHNlZSBpZiBpdCBpcyBhIHZhbGlkIGhhc2guIElmIG5vdCwgaXQgd2lsbApw cm9jZWVkIHRvIHRoZSBuZXh0IHBhc3N3b3JkIHR5cGUgY2hlY2suCi0tLQogc3JjL2JhY2tl bmQvbGlicHEvYXV0aC1zY3JhbS5jIHwgNCArLS0tCiBzcmMvYmFja2VuZC9saWJwcS9jcnlw dC5jICAgICAgfCA5ICsrKysrKysrLQogc3JjL2luY2x1ZGUvbGlicHEvc2NyYW0uaCAgICAg IHwgMiArKwogMyBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGgtc2NyYW0uYyBiL3Ny Yy9iYWNrZW5kL2xpYnBxL2F1dGgtc2NyYW0uYwppbmRleCAzY2JlOTAyYWNlLi40YzdiMTQ5 NTcwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9saWJwcS9hdXRoLXNjcmFtLmMKKysrIGIv c3JjL2JhY2tlbmQvbGlicHEvYXV0aC1zY3JhbS5jCkBAIC0xNjEsOCArMTYxLDYgQEAgc3Rh dGljIGNoYXIgKmJ1aWxkX3NlcnZlcl9maXJzdF9tZXNzYWdlKHNjcmFtX3N0YXRlICpzdGF0 ZSk7CiBzdGF0aWMgY2hhciAqYnVpbGRfc2VydmVyX2ZpbmFsX21lc3NhZ2Uoc2NyYW1fc3Rh dGUgKnN0YXRlKTsKIHN0YXRpYyBib29sIHZlcmlmeV9jbGllbnRfcHJvb2Yoc2NyYW1fc3Rh dGUgKnN0YXRlKTsKIHN0YXRpYyBib29sIHZlcmlmeV9maW5hbF9ub25jZShzY3JhbV9zdGF0 ZSAqc3RhdGUpOwotc3RhdGljIGJvb2wgcGFyc2Vfc2NyYW1fdmVyaWZpZXIoY29uc3QgY2hh ciAqdmVyaWZpZXIsIGludCAqaXRlcmF0aW9ucywKLQkJCQkJIGNoYXIgKipzYWx0LCB1aW50 OCAqc3RvcmVkX2tleSwgdWludDggKnNlcnZlcl9rZXkpOwogc3RhdGljIHZvaWQgbW9ja19z Y3JhbV92ZXJpZmllcihjb25zdCBjaGFyICp1c2VybmFtZSwgaW50ICppdGVyYXRpb25zLAog CQkJCQljaGFyICoqc2FsdCwgdWludDggKnN0b3JlZF9rZXksIHVpbnQ4ICpzZXJ2ZXJfa2V5 KTsKIHN0YXRpYyBib29sIGlzX3NjcmFtX3ByaW50YWJsZShjaGFyICpwKTsKQEAgLTU0Niw3 ICs1NDQsNyBAQCBzY3JhbV92ZXJpZnlfcGxhaW5fcGFzc3dvcmQoY29uc3QgY2hhciAqdXNl cm5hbWUsIGNvbnN0IGNoYXIgKnBhc3N3b3JkLAogICoKICAqIFJldHVybnMgdHJ1ZSBpZiB0 aGUgU0NSQU0gdmVyaWZpZXIgaGFzIGJlZW4gcGFyc2VkLCBhbmQgZmFsc2Ugb3RoZXJ3aXNl LgogICovCi1zdGF0aWMgYm9vbAorYm9vbAogcGFyc2Vfc2NyYW1fdmVyaWZpZXIoY29uc3Qg Y2hhciAqdmVyaWZpZXIsIGludCAqaXRlcmF0aW9ucywgY2hhciAqKnNhbHQsCiAJCQkJCSB1 aW50OCAqc3RvcmVkX2tleSwgdWludDggKnNlcnZlcl9rZXkpCiB7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9saWJwcS9jcnlwdC5jIGIvc3JjL2JhY2tlbmQvbGlicHEvY3J5cHQuYwpp bmRleCBjMzRlNGEzZDg1Li5kYjE5ZjUxYzgwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9s aWJwcS9jcnlwdC5jCisrKyBiL3NyYy9iYWNrZW5kL2xpYnBxL2NyeXB0LmMKQEAgLTIwLDYg KzIwLDcgQEAKIAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAi Y29tbW9uL21kNS5oIgorI2luY2x1ZGUgImNvbW1vbi9zY3JhbS1jb21tb24uaCIKICNpbmNs dWRlICJsaWJwcS9jcnlwdC5oIgogI2luY2x1ZGUgImxpYnBxL3NjcmFtLmgiCiAjaW5jbHVk ZSAibWlzY2FkbWluLmgiCkBAIC05MCw5ICs5MSwxNSBAQCBnZXRfcm9sZV9wYXNzd29yZChj b25zdCBjaGFyICpyb2xlLCBjaGFyICoqbG9nZGV0YWlsKQogUGFzc3dvcmRUeXBlCiBnZXRf cGFzc3dvcmRfdHlwZShjb25zdCBjaGFyICpzaGFkb3dfcGFzcykKIHsKKwljaGFyCSAgICpl bmNvZGVkX3NhbHQ7CisJaW50CQkJaXRlcmF0aW9uczsKKwl1aW50OAkJc3RvcmVkX2tleVtT Q1JBTV9LRVlfTEVOXTsKKwl1aW50OAkJc2VydmVyX2tleVtTQ1JBTV9LRVlfTEVOXTsKKwog CWlmIChzdHJuY21wKHNoYWRvd19wYXNzLCAibWQ1IiwgMykgPT0gMCAmJiBzdHJsZW4oc2hh ZG93X3Bhc3MpID09IE1ENV9QQVNTV0RfTEVOKQogCQlyZXR1cm4gUEFTU1dPUkRfVFlQRV9N RDU7Ci0JaWYgKHN0cm5jbXAoc2hhZG93X3Bhc3MsICJTQ1JBTS1TSEEtMjU2JCIsIHN0cmxl bigiU0NSQU0tU0hBLTI1NiQiKSkgPT0gMCkKKwlpZiAoc3RybmNtcChzaGFkb3dfcGFzcywg IlNDUkFNLVNIQS0yNTYkIiwgc3RybGVuKCJTQ1JBTS1TSEEtMjU2JCIpKSA9PSAwICYmCisJ CQkJcGFyc2Vfc2NyYW1fdmVyaWZpZXIoc2hhZG93X3Bhc3MsICZpdGVyYXRpb25zLCAmZW5j b2RlZF9zYWx0LCBzdG9yZWRfa2V5LCBzZXJ2ZXJfa2V5KSkKIAkJcmV0dXJuIFBBU1NXT1JE X1RZUEVfU0NSQU1fU0hBXzI1NjsKIAlyZXR1cm4gUEFTU1dPUkRfVFlQRV9QTEFJTlRFWFQ7 CiB9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9saWJwcS9zY3JhbS5oIGIvc3JjL2luY2x1 ZGUvbGlicHEvc2NyYW0uaAppbmRleCBkN2Y0YzA5NGM5Li5iYzI5N2UyYTMzIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9saWJwcS9zY3JhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2xpYnBx L3NjcmFtLmgKQEAgLTI5LDYgKzI5LDggQEAgZXh0ZXJuIGludCBwZ19iZV9zY3JhbV9leGNo YW5nZSh2b2lkICpvcGFxLCBjb25zdCBjaGFyICppbnB1dCwgaW50IGlucHV0bGVuLAogCiAv KiBSb3V0aW5lcyB0byBoYW5kbGUgYW5kIGNoZWNrIFNDUkFNLVNIQS0yNTYgdmVyaWZpZXIg Ki8KIGV4dGVybiBjaGFyICpwZ19iZV9zY3JhbV9idWlsZF92ZXJpZmllcihjb25zdCBjaGFy ICpwYXNzd29yZCk7CitleHRlcm4gYm9vbCBwYXJzZV9zY3JhbV92ZXJpZmllcihjb25zdCBj aGFyICp2ZXJpZmllciwgaW50ICppdGVyYXRpb25zLCBjaGFyICoqc2FsdCwKKwkJCQkJIHVp bnQ4ICpzdG9yZWRfa2V5LCB1aW50OCAqc2VydmVyX2tleSk7CiBleHRlcm4gYm9vbCBzY3Jh bV92ZXJpZnlfcGxhaW5fcGFzc3dvcmQoY29uc3QgY2hhciAqdXNlcm5hbWUsCiAJCQkJCQkJ Y29uc3QgY2hhciAqcGFzc3dvcmQsIGNvbnN0IGNoYXIgKnZlcmlmaWVyKTsKIAotLSAKMi4x NC4zIChBcHBsZSBHaXQtOTgpCgo= --------------0EC1BEEC2CD3B81B2C17AA00-- --AFQtlzUxmjPpTedJ9Y9cTu1qhVB40KDyd-- --3j47u4iEmud78YdvSuExxYez7jWLjruJ1 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEE+oS2la8r95ogZD/x8QSccp8cZScFAly7fUgACgkQ8QSccp8c ZSftzw/+MX5CWcnIrrn38t1ed8ycUoru5pM4SP0WUqMM2UwFGmc5ofAaHJGXD9Nj E530wlXdYAx/70M4cHS7GdnM2361xwIOXQih6m3BnCypmsLwZUY+17iJALAFGq/6 +baw/U/2glnicoB9F+tUN2pHC25M9cBFZhAUfh+0v2jZI7DFp8uH0K+h6xjF9GLs vkuMHbCWPMG4uXcXN2injj/Sowta2poRGdq7nVaFdD3lyD9YEXCLVPq87hzSgCB5 WLpMueqcvF+bAxdPg7wCLCVYvTZMQOvzLWGMdCqkr5Fc2BN/rkoPfMHlA93ZbB/5 TZryDvaBCtiDm0GqG75jTkdCG6CUWpp97vDoJ2iXnyEwD0dV15iZR6DrUkOVHOHn ex7VOaUuea7sKm9ger4NHmflJDLanypKGB2BKHlCYHTErlFWFsLfnNc6msLgrfdO EDsnPwBNv1sfWaI0wVa1Hr1W5+jTok6DdhEndMTaKoYzQ8Agf2G8QAbvj0GqIzB3 2Q/LW/yXvBzspB298rgdqzpsHuO2VHPQCGF+AwsVl5Pnj0zbnAx02eLn8Bgw6k+F WZd2ReZonjc+y2U12Ys4hc36ogPu79RkPQFWdN3YHURN/DC/LkfNS1Hxqb1k/EK2 Yxqd7+YNz3Y4QAYeYw7a0SCPySv15SXyaDsWZwwZFw8koYU9iys= =hTgT -----END PGP SIGNATURE----- --3j47u4iEmud78YdvSuExxYez7jWLjruJ1--