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

[3.12] [CVE-2023-27043] gh-102988: Reject malformed addresses in email.parseaddr() (GH-111116) #123766

Merged
merged 1 commit into from
Sep 6, 2024

Conversation

encukou
Copy link
Member

@encukou encukou commented Sep 6, 2024

Detect email address parsing errors and return empty tuple to indicate the parsing error (old API). Add an optional 'strict' parameter to getaddresses() and parseaddr() functions. Patch by Thomas Dwyer.

Co-Authored-By: Thomas Dwyer [email protected]
(cherry picked from commit 4a153a1)


📚 Documentation preview 📚: https://cpython-previews--123766.org.readthedocs.build/

…n email.parseaddr() (pythonGH-111116)

Detect email address parsing errors and return empty tuple to
indicate the parsing error (old API). Add an optional 'strict'
parameter to getaddresses() and parseaddr() functions. Patch by
Thomas Dwyer.

Co-Authored-By: Thomas Dwyer <[email protected]>
(cherry picked from commit 4a153a1)
@encukou encukou requested a review from a team as a code owner September 6, 2024 09:45
@bedevere-app bedevere-app bot added type-bug An unexpected behavior, bug, or error type-security A security issue labels Sep 6, 2024
@ambv ambv merged commit 1506824 into python:3.12 Sep 6, 2024
32 checks passed
miketheman added a commit to miketheman/warehouse that referenced this pull request Sep 12, 2024
Now that Python validates the addresses more strictly, we won't hit the
condition any longer.

If we wish to preserve this condition, we could also pass `strict=False`
to `getaddresses()`, but that seems to be counter to our desire of
having a valid email address.

Refs: python/cpython#123766

Signed-off-by: Mike Fiedler <[email protected]>
ewdurbin pushed a commit to pypi/warehouse that referenced this pull request Sep 13, 2024
* chore: update Python 3.12.6

Refs: https://www.python.org/downloads/release/python-3126/

Signed-off-by: Mike Fiedler <[email protected]>

* chore: remove unreachable condition

Now that Python validates the addresses more strictly, we won't hit the
condition any longer.

If we wish to preserve this condition, we could also pass `strict=False`
to `getaddresses()`, but that seems to be counter to our desire of
having a valid email address.

Refs: python/cpython#123766

Signed-off-by: Mike Fiedler <[email protected]>

* test: refactor test case to parametrize

Extract test cases from inline to make it clearer which permutations are
being tested.

Signed-off-by: Mike Fiedler <[email protected]>

---------

Signed-off-by: Mike Fiedler <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type-bug An unexpected behavior, bug, or error type-security A security issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants