Skip to content

feat(security): add local pwned-password list#10197

Draft
BacLuc wants to merge 1 commit into
ecamp:develfrom
BacLuc:check-password-against-breached-passwords
Draft

feat(security): add local pwned-password list#10197
BacLuc wants to merge 1 commit into
ecamp:develfrom
BacLuc:check-password-against-breached-passwords

Conversation

@BacLuc

@BacLuc BacLuc commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Use NotPwnedPasswordValidator that checks against a local copy of the top 3000 HaveIBeenPwned passwords (SHA1, sorted). This satisfies OWASP ASVS 6.2.4 without requiring external HTTP calls in production or test environments. https://github.com/OWASP/ASVS/blob/master/5.0/en/0x15-V6-Authentication.md#v6-authentication Do not use remote password list, as this api request may fail.

Symfony's NativePasswordHasher
pre-hashes passwords >72 bytes with SHA-512 before bcrypt, so the 72-byte truncation limitation does not apply.

Use NotPwnedPasswordValidator that checks against a local copy of the top 3000
HaveIBeenPwned passwords (SHA1, sorted). This satisfies OWASP ASVS 6.2.4
without requiring external HTTP calls in production or test environments.
https://github.com/OWASP/ASVS/blob/master/5.0/en/0x15-V6-Authentication.md#v6-authentication
Do not use remote password list, as this api request may fail.

Symfony's NativePasswordHasher
pre-hashes passwords >72 bytes with SHA-512 before bcrypt, so the 72-byte
truncation limitation does not apply.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: BacLuc <lucius.bachmann@clubpage.ch>
@BacLuc BacLuc added the Meeting Discuss Am nächsten Core-Meeting besprechen label Jun 30, 2026
@BacLuc

BacLuc commented Jun 30, 2026

Copy link
Copy Markdown
Contributor Author

The password list is not good yet. (contains passwords with less than 12 characters).

We need to decide: do we want to do this and make our users angry for the not so critical ecamp?

(Maybe we should disclose that we do not treat ecamp3 as critical an no one should store medical data or other critical things in ecamp?).

@manuelmeister

Copy link
Copy Markdown
Member

Core Meeting Decision

We do this and don't do #10198
This is a higher level requirement.

@manuelmeister manuelmeister removed the Meeting Discuss Am nächsten Core-Meeting besprechen label Jul 2, 2026
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.

2 participants