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

Update of the SASL SCRAM Downgrade protection XEP #17

Open
edhelas opened this issue Jan 26, 2025 · 7 comments
Open

Update of the SASL SCRAM Downgrade protection XEP #17

edhelas opened this issue Jan 26, 2025 · 7 comments
Labels

Comments

@edhelas
Copy link

edhelas commented Jan 26, 2025

The value delimiters were changed to prevent some possible attack.

in a nutshell the "," delimiter with 0x1e and the "|" delimiter with 0x1f...the scram attribute key changed from "d" to "h" to get a better upgrade path...

The related PR is there: xsf/xeps#1422
And the rendered version is there: https://dyn.eightysoft.de/xeps/xep-0474.html

Thanks again for the awesome work you're doing on the library !

@fabiang
Copy link
Owner

fabiang commented Jan 26, 2025

Interesting attack vector! There are two key steps we need to address first:

  1. Ensure we have server software that supports the new parameter so we can validate it with our integration tests.
  2. Decide how to phase out the old parameter: should we trigger a warning when it's used and/or implement a strict mode to reject connections?

@edhelas: Could you provide an update here once XMPP servers has added the parameter?

@fabiang fabiang added enhancement upstream-fix-needed Waiting for upstream fixes labels Jan 26, 2025
@tmolitor-stud-tu
Copy link

I've already updated Prosody's ssdp module 2 days ago: https://hg.prosody.im/prosody-modules/rev/eedeed1bccf7

The fix for ejabberd was committed yesterday, too: processone/xmpp#99

@fabiang
Copy link
Owner

fabiang commented Jan 26, 2025

Thank you for the information! When I begin working on this issue, I'll attempt to build an ejabberd/ecs Docker image using the latest master branch, if no official version is available by that time.

@tmolitor-stud-tu
Copy link

tmolitor-stud-tu commented Jan 26, 2025

you can use Holger Weiß' test server at messaging.one, too. He deployed my PR there before merging it :)

@tmolitor-stud-tu
Copy link

btw: go-sendxmpp and Monal are now patched to implement the fixed version of ssdp, too.

@edhelas
Copy link
Author

edhelas commented Feb 9, 2025

It seems that some XMPP servers are already patched and Movim cannot login on them anymore :(
Do not hesitate to ping me if you make some advance, I'll do a .z release with the library bump once its fixed :)

@fabiang
Copy link
Owner

fabiang commented Feb 10, 2025

I'm currently waiting for processone/docker-ejabberd#121 to get merged. Without it I can't run the test automatically against a patched version of ejabberd.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants