Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: salt and iterations parsing for scram #1026

Merged
merged 1 commit into from
May 8, 2023

Conversation

trigonometr
Copy link
Contributor

According to RFC5802 server-first-message has the following form: [reserved-mext ","] nonce "," salt "," iteration-count ["," extensions]. Where nonce is a sequence of random printable ASCII characters excluding ','. So the nonce can potentially contain the substring "s=". In the previous version of parsing, the salt could be taken from the nonce part of the message because of that.

For instance, the server first message was b'r=Cipys==4,s=c2FsdA==,i=4096', then the old parsing would have b'=4' as a salt, which is wrong. The same problem could be with iteration-count.

@trigonometr
Copy link
Contributor Author

@elprans, looks like all the checks have passed, so could you, please, review these two small changes?)

@c-wygoda
Copy link

c-wygoda commented May 8, 2023

I'm seeing the error multiple times a day on an AWS Lambda connecting to RDS, so happy to throw in everything from moral support to providing code changes where asked!

Copy link
Member

@elprans elprans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for the patch!

@elprans elprans merged commit 7443a9e into MagicStack:master May 8, 2023
@c-wygoda
Copy link

quick question - what's the timeline for a patch release including this? considering where to throw my resources at - monkeypatching?

elprans added a commit that referenced this pull request Jul 7, 2023
Minor fixes and improvements.

Changes
=======

* Do not try to cleanup statements (#981)
  (by @fvannee in d2e710f for #981)

* Add Pool.is_closing() method (#973)
  (by @singingwolfboy in 9cb2c1c for #973)

* Fix test_tls_version for LibreSSL (#974)
  (by @CyberTailor in 7df9812 for #974)

* Handle environments without home dir (#1011)
  (by @LeonardBesson in 172b8f6 for #1011)

* fix: salt and iterations parsing for scram (#1026)
  (by @trigonometr in 7443a9e for #1026)

* Add support for target_session_attrs (#987)
  (by @JesseDeLoore in bf74e88 for #987)

* Add support for READ UNCOMMITTED (#1039)
  (by @benwah in 2f20bae for #1039)

* Update benchmarks, add psycopg3 (#1042)
  (by @elprans in 7d4fcf0 for #1042)
@elprans elprans mentioned this pull request Jul 7, 2023
elprans added a commit that referenced this pull request Jul 7, 2023
Minor fixes and improvements.

Changes
=======

* Do not try to cleanup statements (#981)
  (by @fvannee in d2e710f for #981)

* Add Pool.is_closing() method (#973)
  (by @singingwolfboy in 9cb2c1c for #973)

* Fix test_tls_version for LibreSSL (#974)
  (by @CyberTailor in 7df9812 for #974)

* Handle environments without home dir (#1011)
  (by @LeonardBesson in 172b8f6 for #1011)

* fix: salt and iterations parsing for scram (#1026)
  (by @trigonometr in 7443a9e for #1026)

* Add support for target_session_attrs (#987)
  (by @JesseDeLoore in bf74e88 for #987)

* Add support for READ UNCOMMITTED (#1039)
  (by @benwah in 2f20bae for #1039)

* Update benchmarks, add psycopg3 (#1042)
  (by @elprans in 7d4fcf0 for #1042)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants