GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — gh-121284: Fix email address header folding with parsed encoded-word by medmunds · Pull Request #122754 · python/cpython

Conversation

@medmunds

@medmunds medmunds commented Aug 6, 2024 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Fixes #121284.

[This fixes a #security-issue. PSRT instructed me to handle the fix publicly.]

Email generators using email.policy.default may convert an RFC 2047 encoded-word to unencoded form during header refolding. In a structured header, this could allow 'specials' chars outside a quoted-string, leading to invalid address headers and enabling spoofing. This change ensures a parsed encoded-word that contains specials is kept as an encoded-word while the header is refolded.

The issue is very similar to PR #122753 (and has the same security implications), but this PR involves refolding an encoded-word; the other PR involves refolding a quoted-string. The fixes required are different.

  • Issue: email: invalid RFC 2047 address header after refolding with email.policy.default  #121284

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@medmunds
pythongh-121284: Fix email address header folding with parsed encoded…
c540c9f
…-word

Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.
@medmunds
medmunds requested a review from a team as a code owner August 6, 2024 19:50
@bedevere-app bedevere-app Bot mentioned this pull request Aug 6, 2024
email: invalid RFC 2047 address header after refolding with email.policy.default #121284
Closed
@bedevere-app bedevere-app Bot added the awaiting review label Aug 6, 2024
@sethmlarson sethmlarson added type-security A security issue topic-email labels Aug 7, 2024
@medmunds

medmunds commented Sep 9, 2024

Copy link
Copy Markdown
Contributor Author

Requesting a review from @serhiy-storchaka, who recently reviewed a similar security fix around encoded words in email headers (#122233).

And pinging @bitdancer, who probably knows the most about this section of the code.

(Also hoping both of you might be able to review PR #122753, which tries to fix a related security issue first reported 5 years ago.)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@picnixz
picnixz requested a review from serhiy-storchaka September 9, 2024 19:01
@medmunds
Merge branch 'main' into fix-issue-121284
9c05613
@medmunds medmunds mentioned this pull request Oct 29, 2024
gh-80222: Fix email address header folding with long quoted-string #122753
Merged
medmunds added 2 commits January 18, 2025 14:06
@medmunds
Merge branch 'main' into fix-issue-121284
a8d23d2
@medmunds
Be more specific in news
45159cd
@medmunds

medmunds commented Jan 18, 2025

Copy link
Copy Markdown
Contributor Author

(A nicer fix would be to decide separately whether each refolded segment needs rfc2047 encoding, quoted-string handling, or no special treatment. But that would require giving _refold_parse_tree() info about whether it's working in a structured or unstructured header, which seems too involved for a security patch.)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@medmunds

medmunds commented Jan 19, 2025 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor Author

Btw, although this may seem like it's too obscure to matter much, it's actually pretty easy to stumble into vulnerable code. E.g., calling email.utils.formataddr() (correctly!) with user-supplied content can generate exactly the sort of (valid) encoded-word that gets mishandled by email.policy.default.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

encukou
encukou approved these changes Feb 27, 2025
View reviewed changes

@encukou encukou left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

By my reading of the code, this is correct.
I'd appreciate an additional review from an email expert, but, if there are no objections I plat to merge this next week.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

medmunds and sethmlarson reacted with thumbs up emoji
All reactions
  • 👍 2 reactions
@bedevere-app bedevere-app Bot added awaiting merge and removed awaiting review labels Feb 27, 2025
@bitdancer

bitdancer commented Mar 4, 2025

Copy link
Copy Markdown
Member

Please give me another day to look at this before you merge. I think it's fine, but there are a couple things I want to check.

medmunds and encukou reacted with thumbs up emoji
All reactions
  • 👍 2 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bitdancer

bitdancer commented Mar 5, 2025

Copy link
Copy Markdown
Member

OK, there is actually a pretty straightforward solution to this problem, and the functionality is better:

diff --git a/Lib/email/_header_value_parser.py b/Lib/email/_header_value_parser.py
index c0e856306d3..9a51b943733 100644
--- a/Lib/email/_header_value_parser.py
+++ b/Lib/email/_header_value_parser.py
@@ -1053,7 +1053,7 @@ def get_fws(value):
     fws = WhiteSpaceTerminal(value[:len(value)-len(newvalue)], 'fws')
     return fws, newvalue
 
-def get_encoded_word(value):
+def get_encoded_word(value, terminal_type='vtext'):
     """ encoded-word = "=?" charset "?" encoding "?" encoded-text "?="
 
     """
@@ -1092,7 +1092,7 @@ def get_encoded_word(value):
             ew.append(token)
             continue
         chars, *remainder = _wsp_splitter(text, 1)
-        vtext = ValueTerminal(chars, 'vtext')
+        vtext = ValueTerminal(chars, terminal_type)
         _validate_xtext(vtext)
         ew.append(vtext)
         text = ''.join(remainder)
@@ -1134,7 +1134,7 @@ def get_unstructured(value):
         valid_ew = True
         if value.startswith('=?'):
             try:
-                token, value = get_encoded_word(value)
+                token, value = get_encoded_word(value, 'utext')
             except _InvalidEwError:
                 valid_ew = False
             except errors.HeaderParseError:
@@ -1163,7 +1163,7 @@ def get_unstructured(value):
         # the parser to go in an infinite loop.
         if valid_ew and rfc2047_matcher.search(tok):
             tok, *remainder = value.partition('=?')
-        vtext = ValueTerminal(tok, 'vtext')
+        vtext = ValueTerminal(tok, 'utext')
         _validate_xtext(vtext)
         unstructured.append(vtext)
         value = ''.join(remainder)
@@ -2813,7 +2813,7 @@ def _refold_parse_tree(parse_tree, *, policy):
             continue
         tstr = str(part)
         if not want_encoding:
-            if part.token_type == 'ptext':
+            if part.token_type in ('ptext', 'vtext'):
                 # Encode if tstr contains special characters.
                 want_encoding = not SPECIALSNL.isdisjoint(tstr)
             else:

At this point I no longer remember what 'vtext' was supposed to stand for, but 'utext' is obviously 'unstructured text token' ;) The documentation of these bits of the code could use some improvement (not to mention the code itself!), but this fixes the problem pretty much in the way the original code was intended to work, if we imagine that the failure to check whether or not we were dealing with structured text was a bug as opposed to me forgetting about the distinction ;)

medmunds reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

medmunds and others added 2 commits March 5, 2025 10:32
@medmunds
Merge branch 'main' into fix-issue-121284
e63ec20
@medmunds @bitdancer
squash! pythongh-121284: Fix email address header folding with parsed…
c249511
… encoded-word

[Better fix from @bitdancer.]

Co-authored-by: R David Murray <[email protected]>
@medmunds

medmunds commented Mar 5, 2025

Copy link
Copy Markdown
Contributor Author

Nice! That feels much better, and allows unencoding encoded-words in refolding when it's safe. I've updated the PR with your change.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

bitdancer
bitdancer approved these changes Mar 6, 2025
View reviewed changes

@bitdancer bitdancer left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

LGTM

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@encukou
Merge branch 'main' into fix-issue-121284
1da1d57
@bitdancer bitdancer added needs backport to 3.9 needs backport to 3.11 only security fixes needs backport to 3.12 only security fixes needs backport to 3.13 only security fixes labels Mar 17, 2025
@bitdancer
Merge branch 'main' into fix-issue-121284
ede0ce8
miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Mar 18, 2025
@medmunds @bitdancer
@encukou @miss-islington
pythongh-121284: Fix email address header folding with parsed encoded…
e346147
…-word (pythonGH-122754)

Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.

[Better fix from @bitdancer.]

---------
(cherry picked from commit 295b53d)

Co-authored-by: Mike Edmunds <[email protected]>
Co-authored-by: R David Murray <[email protected]>
Co-authored-by: Petr Viktorin <[email protected]>
@bedevere-app

bedevere-app Bot commented Mar 18, 2025

Copy link
Copy Markdown

GH-131403 is a backport of this pull request to the 3.13 branch.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-app bedevere-app Bot removed the needs backport to 3.13 only security fixes label Mar 18, 2025
miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Mar 18, 2025
@medmunds @bitdancer
@encukou @miss-islington
pythongh-121284: Fix email address header folding with parsed encoded…
88af7b8
…-word (pythonGH-122754)

Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.

[Better fix from @bitdancer.]

---------
(cherry picked from commit 295b53d)

Co-authored-by: Mike Edmunds <[email protected]>
Co-authored-by: R David Murray <[email protected]>
Co-authored-by: Petr Viktorin <[email protected]>
@bedevere-app

bedevere-app Bot commented Mar 18, 2025

Copy link
Copy Markdown

GH-131404 is a backport of this pull request to the 3.12 branch.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-app bedevere-app Bot removed the needs backport to 3.12 only security fixes label Mar 18, 2025
miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Mar 18, 2025
@medmunds @bitdancer
@encukou @miss-islington
pythongh-121284: Fix email address header folding with parsed encoded…
9b5115f
…-word (pythonGH-122754)

Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.

[Better fix from @bitdancer.]

---------
(cherry picked from commit 295b53d)

Co-authored-by: Mike Edmunds <[email protected]>
Co-authored-by: R David Murray <[email protected]>
Co-authored-by: Petr Viktorin <[email protected]>
@miss-islington-app

miss-islington-app Bot commented Mar 18, 2025

Copy link
Copy Markdown

Sorry, @medmunds and @encukou, I could not cleanly backport this to 3.10 due to a conflict.
Please backport using cherry_picker on command line.

cherry_picker 295b53df2aa18deb625a7da41f7e4babfe6ef34b 3.10
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-app

bedevere-app Bot commented Mar 18, 2025

Copy link
Copy Markdown

GH-131405 is a backport of this pull request to the 3.11 branch.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@miss-islington-app miss-islington-app Bot assigned encukou Mar 18, 2025
@bedevere-app bedevere-app Bot removed the needs backport to 3.11 only security fixes label Mar 18, 2025
@miss-islington-app

miss-islington-app Bot commented Mar 18, 2025

Copy link
Copy Markdown

Sorry, @medmunds and @encukou, I could not cleanly backport this to 3.9 due to a conflict.
Please backport using cherry_picker on command line.

cherry_picker 295b53df2aa18deb625a7da41f7e4babfe6ef34b 3.9
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

encukou added a commit to encukou/cpython that referenced this pull request Mar 18, 2025
@medmunds @bitdancer @encukou
[3.10] pythongh-121284: Fix email address header folding with parsed …
2d98d49
…encoded-word (pythonGH-122754)

Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.

[Better fix from @bitdancer.]

---------
(cherry picked from commit 295b53d)

Co-authored-by: Mike Edmunds <[email protected]>
Co-authored-by: R David Murray <[email protected]>
Co-authored-by: Petr Viktorin <[email protected]>
encukou added a commit to encukou/cpython that referenced this pull request Mar 18, 2025
@encukou @medmunds @bitdancer
[3.10] pythongh-121284: Fix email address header folding with parsed …
94caf67
…encoded-word (pythonGH-122754)

Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.

[Better fix from @bitdancer.]

---------
(cherry picked from commit 295b53d)

Co-authored-by: Mike Edmunds <[email protected]>
Co-authored-by: R David Murray <[email protected]>
Co-authored-by: Petr Viktorin <[email protected]>
@bedevere-app

bedevere-app Bot commented Mar 18, 2025

Copy link
Copy Markdown

GH-131411 is a backport of this pull request to the 3.10 branch.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-app bedevere-app Bot removed the needs backport to 3.10 label Mar 18, 2025
encukou added a commit to encukou/cpython that referenced this pull request Mar 18, 2025
@medmunds @bitdancer @encukou
[3.9] pythongh-121284: Fix email address header folding with parsed e…
521fa7e
…ncoded-word (pythonGH-122754)

Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.

[Better fix from @bitdancer.]

---------
(cherry picked from commit 295b53d)

Co-authored-by: Mike Edmunds <[email protected]>
Co-authored-by: R David Murray <[email protected]>
Co-authored-by: Petr Viktorin <[email protected]>
encukou added a commit to encukou/cpython that referenced this pull request Mar 18, 2025
@encukou @medmunds @bitdancer
[3.9] pythongh-121284: Fix email address header folding with parsed e…
d62e09b
…ncoded-word (pythonGH-122754)

Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.

[Better fix from @bitdancer.]

---------
(cherry picked from commit 295b53d)

Co-authored-by: Mike Edmunds <[email protected]>
Co-authored-by: R David Murray <[email protected]>
Co-authored-by: Petr Viktorin <[email protected]>
encukou added a commit to encukou/cpython that referenced this pull request Mar 18, 2025
@encukou @medmunds @bitdancer
[3.9] pythongh-121284: Fix email address header folding with parsed e…
f6a03b8
…ncoded-word (pythonGH-122754)

Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.

[Better fix from @bitdancer.]

---------
(cherry picked from commit 295b53d)

Co-authored-by: Mike Edmunds <[email protected]>
Co-authored-by: R David Murray <[email protected]>
Co-authored-by: Petr Viktorin <[email protected]>
@bedevere-app

bedevere-app Bot commented Mar 18, 2025

Copy link
Copy Markdown

GH-131412 is a backport of this pull request to the 3.9 branch.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-app bedevere-app Bot removed the needs backport to 3.9 label Mar 18, 2025
bitdancer added a commit that referenced this pull request Mar 18, 2025
@miss-islington @medmunds
@bitdancer @encukou
[3.13] gh-121284: Fix email address header folding with parsed encode…
31767e6
…d-word (GH-122754) (#131403)

gh-121284: Fix email address header folding with parsed encoded-word (GH-122754)

Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.

[Better fix from @bitdancer.]

---------
(cherry picked from commit 295b53d)

Co-authored-by: Mike Edmunds <[email protected]>
Co-authored-by: R David Murray <[email protected]>
Co-authored-by: Petr Viktorin <[email protected]>
bitdancer added a commit that referenced this pull request Mar 18, 2025
@miss-islington @medmunds
@bitdancer @encukou
[3.12] gh-121284: Fix email address header folding with parsed encode…
5dfb5e6
…d-word (GH-122754) (#131404)

gh-121284: Fix email address header folding with parsed encoded-word (GH-122754)

Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.

[Better fix from @bitdancer.]

---------
(cherry picked from commit 295b53d)

Co-authored-by: Mike Edmunds <[email protected]>
Co-authored-by: R David Murray <[email protected]>
Co-authored-by: Petr Viktorin <[email protected]>
colesbury pushed a commit to colesbury/cpython that referenced this pull request Mar 20, 2025
@medmunds @bitdancer
@encukou @colesbury
pythongh-121284: Fix email address header folding with parsed encoded…
026913a
…-word (pythonGH-122754)

Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.

[Better fix from @bitdancer.]

---------

Co-authored-by: R David Murray <[email protected]>
Co-authored-by: Petr Viktorin <[email protected]>
ambv pushed a commit that referenced this pull request Apr 3, 2025
@miss-islington @medmunds
@bitdancer @encukou
[3.11] gh-121284: Fix email address header folding with parsed encode…
0a66052
…d-word (GH-122754) (GH-131405)

Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.

[Better fix from @bitdancer.]

(cherry picked from commit 295b53d)

Co-authored-by: Mike Edmunds <[email protected]>
Co-authored-by: R David Murray <[email protected]>
Co-authored-by: Petr Viktorin <[email protected]>
ambv pushed a commit that referenced this pull request Apr 3, 2025
@encukou @medmunds @bitdancer
[3.10] gh-121284: Fix email address header folding with parsed encode…
cfaee20
…d-word (GH-122754) (GH-131411)

Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.

[Better fix from @bitdancer.]

(cherry picked from commit 295b53d)

Co-authored-by: Mike Edmunds <[email protected]>
Co-authored-by: R David Murray <[email protected]>
ambv pushed a commit that referenced this pull request Apr 3, 2025
@encukou @medmunds @bitdancer
[3.9] gh-121284: Fix email address header folding with parsed encoded…
9a31386
…-word (GH-122754) (GH-131412)

Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.

[Better fix from @bitdancer.]

(cherry picked from commit 295b53d)

Co-authored-by: Mike Edmunds <[email protected]>
Co-authored-by: R David Murray <[email protected]>
gentoo-bot pushed a commit to gentoo/cpython that referenced this pull request Apr 9, 2025
@encukou @medmunds
@bitdancer @mgorny
[3.9] pythongh-121284: Fix email address header folding with parsed e…
2a2752a
…ncoded-word (pythonGH-122754) (pythonGH-131412)

Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.

[Better fix from @bitdancer.]

(cherry picked from commit 295b53d)

Co-authored-by: Mike Edmunds <[email protected]>
Co-authored-by: R David Murray <[email protected]>
@medmunds medmunds mentioned this pull request May 6, 2025
EmailMessage objects break when folding malformed header #132105
Closed
bitdancer added a commit to bitdancer/cpython that referenced this pull request Jul 19, 2026
@bitdancer
Improve bare_quoted_string tests.
b7bc1ce
And a small bugfux:

BUGFIX: pythongh-121284/pythonGH-122754 introduced the ability to specify the
terminal type in get_encoded_word, but only the get_unstructured calls
were updated to use it.  It remained the case that a quoted string ended
up with a mixture of 'ptext' and 'vtext' tokens.  The folder teats these
the same, so that did not cause any problems.  The parser now correctly
makes all terminal tokens in quoted string content be of type 'ptext'.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@encukou encukou encukou approved these changes
@bitdancer bitdancer bitdancer approved these changes
@serhiy-storchaka serhiy-storchaka Awaiting requested review from serhiy-storchaka

Uh oh!

There was an error while loading. Please reload this page.

Assignees

@encukou encukou

Labels

topic-email type-security A security issue

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

email: invalid RFC 2047 address header after refolding with email.policy.default

Uh oh!

There was an error while loading. Please reload this page.

4 participants

@medmunds @bitdancer @encukou @sethmlarson
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.