v0.6.4 #668
nevans
announced in
Announcements
v0.6.4
#668
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
What's Changed
🔒 Security
This release contains fixes for multiple vulnerabilities concerning
STARTTLSstripping, argument validation, and denial of service attacks.Warning
Without #664, a man-in-the-middle attacker can cause
Net::IMAP#starttlsto return "successfully", without starting TLS.Important
Argument validation is significantly improved. Several command injection vulnerabilities have been fixed:
#657 fixes a CRLF/command injection vulnerability for Symbol arguments.
#658 fixes a CRLF/command injection vulnerability for the
attrargument to#store/#uid_store.#659 fixes a CRLF/command injection vulnerability for the
storage_limitargument to#setquota.#660 fixes a CRLF/command injection vulnerability for
RawData, which is used by:#searchand#uid_searchsendcriteriaas raw data, when it is a String#fetchand#uid_fetchsendattras raw data, when it is a String.When
attris an Array, its String members are sent as raw data.Caution
RawDatadoes not defend against other forms of argument injection! It is an intentionally low-level API.Note
Two denial of service vectors have been addressed. These should only be relevant when connecting to an untrusted hostile server (or without TLS).
#642 fixes quadratic time complexity when reading large responses containing many string literals.
#654 adds a configurable
max_iterationscount forSCRAM-*authentication.Warning
The default
ScramAuthenticator#max_iterationsis2**31 - 1(max 32-bit signed int), which was already OpenSSL's maximum value. It provides no protection against hostile servers. It must be explicitly configured by the user.Breaking Changes
ResponseReadermemoizesConfig#max_response_sizein ⚡ Much faster ResponseReader performance #642.Changes to
#max_response_sizetake effect once per response, rather than once perIO#read.NOTE: It is not expected that this will affect any current usage. See the PR for details.
Added
BINARYextention to#append(RFC3516) by @nevans in ✨ SupportBINARYextention to#append(RFC3516) #616LITERAL+andLITERAL-non-synchronizing literals (RFC7888) by @nevans in ✨ SupportLITERAL+andLITERAL-non-synchronizing literals (RFC7888) #649ScramAuthenticator#max_iterationsby @nevans in 🔒 AddScramAuthenticator#max_iterations#654number64andnz-number64to NumValidator by @nevans in 🏷️ Add number64 and nz-number64 to NumValidator #625MailboxQuota#quota_rootalias by @nevans in 📚️ Fix QUOTA documentation, ✅ Test#setquota, ♻️ AddMailboxQuota#quota_rootalias #636Net::IMAP#inspectwith basic state by @nevans in 🔍 Simplify Net::IMAP#inspect with basic state #612ResponseParseError#parser_methods(and override#==) by @nevans in 🥅 AddResponseParseError#parser_methods(and override#==) #615Fixed
attras anatomin 🔒️ Validate and send STOREattras anatom#658#setquotastorage limit argument in 🔒 Validate#setquotastorage limit argument #659ScramAuthenticator#max_iterationsin 🔒 AddScramAuthenticator#max_iterations#654, reported by @MasamuneeeSSLContext#setupinstead of#freezeby @idahomst in Fix JRuby SSL connection failure: use SSLContext#setup instead of freeze #627#get_tagged_responseby @nevans in 🐛 Fix InvalidResponseError in#get_tagged_response#633SearchResult#to_sequence_setin 🐛 Fix emptySearchResult#to_sequence_set#644, reported by @QuintasanDocumentation
.documentand.rdoc_optionsfiles, where possible by @nevans in 📚 Use.documentand.rdoc_optionsfiles, where possible #619#setquota, ♻️ AddMailboxQuota#quota_rootalias #636Other Changes
Miscellaneous
#setquotaby @nevans in 📚️ Fix QUOTA documentation, ✅ Test#setquota, ♻️ AddMailboxQuota#quota_rootalias #636New Contributors
Full Changelog: v0.6.3...v0.6.4
This discussion was created from the release v0.6.4.
Beta Was this translation helpful? Give feedback.
All reactions