-
Notifications
You must be signed in to change notification settings - Fork 2
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 Rust crate regex to 1.5.5 [SECURITY] #67
Open
renovate
wants to merge
1
commit into
master
Choose a base branch
from
renovate/crate-regex-vulnerability
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
renovate
bot
force-pushed
the
renovate/crate-regex-vulnerability
branch
from
October 9, 2024 11:05
dff02bb
to
3f4d339
Compare
renovate
bot
changed the title
Update Rust crate regex to 1.5.5 [SECURITY]
Update Rust crate regex to 1.11.0 [SECURITY]
Oct 9, 2024
renovate
bot
force-pushed
the
renovate/crate-regex-vulnerability
branch
from
October 9, 2024 13:03
3f4d339
to
0dff61c
Compare
renovate
bot
changed the title
Update Rust crate regex to 1.11.0 [SECURITY]
Update Rust crate regex to 1.5.5 [SECURITY]
Oct 9, 2024
renovate
bot
force-pushed
the
renovate/crate-regex-vulnerability
branch
from
October 28, 2024 14:15
0dff61c
to
673dd64
Compare
renovate
bot
changed the title
Update Rust crate regex to 1.5.5 [SECURITY]
Update Rust crate regex to 1.11.1 [SECURITY]
Oct 28, 2024
renovate
bot
force-pushed
the
renovate/crate-regex-vulnerability
branch
from
October 28, 2024 15:58
673dd64
to
4445c29
Compare
renovate
bot
changed the title
Update Rust crate regex to 1.11.1 [SECURITY]
Update Rust crate regex to 1.5.5 [SECURITY]
Oct 28, 2024
renovate
bot
force-pushed
the
renovate/crate-regex-vulnerability
branch
from
October 30, 2024 10:45
4445c29
to
949ebb5
Compare
renovate
bot
changed the title
Update Rust crate regex to 1.5.5 [SECURITY]
Update Rust crate regex to 1.11.1 [SECURITY]
Oct 30, 2024
renovate
bot
force-pushed
the
renovate/crate-regex-vulnerability
branch
from
October 30, 2024 14:10
949ebb5
to
a60e697
Compare
renovate
bot
changed the title
Update Rust crate regex to 1.11.1 [SECURITY]
Update Rust crate regex to 1.5.5 [SECURITY]
Oct 30, 2024
renovate
bot
force-pushed
the
renovate/crate-regex-vulnerability
branch
from
November 17, 2024 16:31
a60e697
to
76caf21
Compare
renovate
bot
changed the title
Update Rust crate regex to 1.5.5 [SECURITY]
Update Rust crate regex to 1.11.1 [SECURITY]
Nov 17, 2024
renovate
bot
force-pushed
the
renovate/crate-regex-vulnerability
branch
from
November 17, 2024 19:39
76caf21
to
6144851
Compare
renovate
bot
changed the title
Update Rust crate regex to 1.11.1 [SECURITY]
Update Rust crate regex to 1.5.5 [SECURITY]
Nov 17, 2024
renovate
bot
force-pushed
the
renovate/crate-regex-vulnerability
branch
from
December 2, 2024 10:04
6144851
to
d721f80
Compare
renovate
bot
changed the title
Update Rust crate regex to 1.5.5 [SECURITY]
Update Rust crate regex to 1.11.1 [SECURITY]
Dec 2, 2024
renovate
bot
force-pushed
the
renovate/crate-regex-vulnerability
branch
from
December 2, 2024 14:51
d721f80
to
0edc158
Compare
renovate
bot
changed the title
Update Rust crate regex to 1.11.1 [SECURITY]
Update Rust crate regex to 1.5.5 [SECURITY]
Dec 2, 2024
renovate
bot
force-pushed
the
renovate/crate-regex-vulnerability
branch
from
December 17, 2024 21:28
0edc158
to
1e11382
Compare
renovate
bot
changed the title
Update Rust crate regex to 1.5.5 [SECURITY]
Update Rust crate regex to 1.11.1 [SECURITY]
Dec 17, 2024
renovate
bot
force-pushed
the
renovate/crate-regex-vulnerability
branch
from
December 18, 2024 00:43
1e11382
to
63bb22a
Compare
renovate
bot
changed the title
Update Rust crate regex to 1.11.1 [SECURITY]
Update Rust crate regex to 1.5.5 [SECURITY]
Dec 18, 2024
renovate
bot
force-pushed
the
renovate/crate-regex-vulnerability
branch
from
December 22, 2024 15:56
63bb22a
to
80a2731
Compare
renovate
bot
changed the title
Update Rust crate regex to 1.5.5 [SECURITY]
Update Rust crate regex to 1.11.1 [SECURITY]
Dec 22, 2024
renovate
bot
force-pushed
the
renovate/crate-regex-vulnerability
branch
from
December 22, 2024 19:24
80a2731
to
a69cb02
Compare
renovate
bot
changed the title
Update Rust crate regex to 1.11.1 [SECURITY]
Update Rust crate regex to 1.5.5 [SECURITY]
Dec 22, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
None yet
0 participants
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.
This PR contains the following updates:
1.0
->1.5.5
GitHub Vulnerability Alerts
CVE-2022-24713
The Rust Security Response WG was notified that the
regex
crate did not properly limit the complexity of the regular expressions (regex) it parses. An attacker could use this security issue to perform a denial of service, by sending a specially crafted regex to a service accepting untrusted regexes. No known vulnerability is present when parsing untrusted input with trusted regexes.This issue has been assigned CVE-2022-24713. The severity of this vulnerability is "high" when the
regex
crate is used to parse untrusted regexes. Other uses of theregex
crate are not affected by this vulnerability.Overview
The
regex
crate features built-in mitigations to prevent denial of service attacks caused by untrusted regexes, or untrusted input matched by trusted regexes. Those (tunable) mitigations already provide sane defaults to prevent attacks. This guarantee is documented and it's considered part of the crate's API.Unfortunately a bug was discovered in the mitigations designed to prevent untrusted regexes to take an arbitrary amount of time during parsing, and it's possible to craft regexes that bypass such mitigations. This makes it possible to perform denial of service attacks by sending specially crafted regexes to services accepting user-controlled, untrusted regexes.
Affected versions
All versions of the
regex
crate before or equal to 1.5.4 are affected by this issue. The fix is include starting fromregex
1.5.5.Mitigations
We recommend everyone accepting user-controlled regexes to upgrade immediately to the latest version of the
regex
crate.Unfortunately there is no fixed set of problematic regexes, as there are practically infinite regexes that could be crafted to exploit this vulnerability. Because of this, we do not recommend denying known problematic regexes.
Acknowledgements
We want to thank Addison Crump for responsibly disclosing this to us according to the Rust security policy, and for helping review the fix.
We also want to thank Andrew Gallant for developing the fix, and Pietro Albini for coordinating the disclosure and writing this advisory.
Release Notes
rust-lang/regex (regex)
v1.5.5
Compare Source
==================
This releases fixes a security bug in the regex compiler. This bug permits a
vector for a denial-of-service attack in cases where the regex being compiled
is untrusted. There are no known problems where the regex is itself trusted,
including in cases of untrusted haystacks.
Fixes a bug in the regex compiler where empty sub-expressions subverted the
existing mitigations in place to enforce a size limit on compiled regexes.
The Rust Security Response WG published an advisory about this:
https://groups.google.com/g/rustlang-security-announcements/c/NcNNL1Jq7Yw
v1.5.4
Compare Source
==================
This release fixes another compilation failure when building regex. This time,
the fix is for when the
pattern
feature is enabled, which only works onnightly Rust. CI has been updated to test this case.
Fix build when
pattern
feature is enabled.v1.5.3
Compare Source
==================
This releases fixes a bug when building regex with only the
unicode-perl
feature. It turns out that while CI was building this configuration, it wasn't
actually failing the overall build on a failed compilation.
Fix build in
regex-syntax
when only theunicode-perl
feature is enabled.v1.5.2
Compare Source
==================
This release fixes a performance bug when Unicode word boundaries are used.
Namely, for certain regexes on certain inputs, it's possible for the lazy DFA
to stop searching (causing a fallback to a slower engine) when it doesn't
actually need to.
PR #768 fixes the bug, which was
originally reported in
ripgrep#1860.
v1.5.1
Compare Source
==================
This is a patch release that fixes a compilation error when the
perf-literal
feature is not enabled.
v1.5.0
Compare Source
==================
This release primarily updates to Rust 2018 (finally) and bumps the MSRV to
Rust 1.41 (from Rust 1.28). Rust 1.41 was chosen because it's still reasonably
old, and is what's in Debian stable at the time of writing.
This release also drops this crate's own bespoke substring search algorithms
in favor of a new
memmem
implementation provided by thememchr
crate.This will change the performance profile of some regexes, sometimes getting a
little worse, and hopefully more frequently, getting a lot better. Please
report any serious performance regressions if you find them.
v1.4.6
Compare Source
==================
This is a small patch release that fixes the compiler's size check on how much
heap memory a regex uses. Previously, the compiler did not account for the
heap usage of Unicode character classes. Now it does. It's possible that this
may make some regexes fail to compile that previously did compile. If that
happens, please file an issue.
Some regexes can use more heap memory than one would expect.
v1.4.5
Compare Source
==================
This is a small patch release that fixes a regression in the size of a
Regex
in the 1.4.4 release. Prior to 1.4.4, a
Regex
was 552 bytes. In the 1.4.4release, it was 856 bytes due to internal changes. In this release, a
Regex
is now 16 bytes. In general, the size of a
Regex
was never something that wason my radar, but this increased size in the 1.4.4 release seems to have crossed
a threshold and resulted in stack overflows in some programs.
Fixes stack overflows seemingly caused by a large
Regex
size by decreasingits size.
v1.4.4
Compare Source
==================
This is a small patch release that contains some bug fixes. Notably, it also
drops the
thread_local
(andlazy_static
, via transitivity) dependencies.Bug fixes:
Memory leaks caused by an internal caching strategy should now be fixed.
All regex types now implement
UnwindSafe
andRefUnwindSafe
.Add missing
Replacer
impls forVec<u8>
,String
,Cow
, etc.v1.4.3
Compare Source
==================
This is a small patch release that adds some missing standard trait
implementations for some types in the public API.
Bug fixes:
Add
FusedIterator
andExactSizeIterator
impls to iterator types.Add missing
Debug
impls to public API types.v1.4.2
Compare Source
==================
This is a small bug fix release that bans
\P{any}
. We previously banned emptyclasses like
[^\w\W]
, but missed the\P{any}
case. In the future, we hopeto permit empty classes.
Ban
\P{any}
to avoid a panic in the regex compiler. Found by OSS-Fuzz.v1.4.1
Compare Source
==================
This is a small bug fix release that makes
\p{cf}
work. Previously, it wouldreport "property not found" even though
cf
is a valid abbreviation for theFormat
general category.Fixes bug that prevented
\p{cf}
from working.v1.4.0
Compare Source
==================
This releases has a few minor documentation fixes as well as some very minor
API additions. The MSRV remains at Rust 1.28 for now, but this is intended to
increase to at least Rust 1.41.1 soon.
This release also adds support for OSS-Fuzz. Kudos to
@DavidKorczynski
for doing the heavy lifting for that!
New features:
Support
[
,]
and.
in capture group names.Add
is_empty
predicate toRegexSet
.Implement
Clone
forSubCaptureMatches
.Add
empty
constructor toRegexSet
for convenience.Bug fixes:
Fix doc example for
Replacer::replace_append
.Clarify docs for
s
flag when using abytes::Regex
.Clarify
is_match
docs to indicate that it can match anywhere in string.v1.3.9
Compare Source
==================
This release fixes a MSRV (Minimum Support Rust Version) regression in the
1.3.8 release. Namely, while 1.3.8 compiles on Rust 1.28, it actually does not
compile on other Rust versions, such as Rust 1.39.
Bug fixes:
Remove use of
doc_comment
crate, which cannot be used before Rust 1.43.v1.3.8
Compare Source
==================
This release contains a couple of important bug fixes driven
by better support for empty-subexpressions in regexes. For
example, regexes like
b|
are now allowed. Major thanks to@sliquister for implementing support for this
in #677.
Bug fixes:
Add note to documentation that spaces can be escaped in
x
mode.Add support for empty sub-expressions, including empty alternations.
Fix match bug caused by an empty sub-expression miscompilation.
v1.3.7
Compare Source
==================
This release contains a small bug fix that fixes how
regex
forwards cratefeatures to
regex-syntax
. In particular, this will reduce recompilations insome cases.
Bug fixes:
Fix feature forwarding to
regex-syntax
.v1.3.6
Compare Source
==================
This release contains a sizable (~30%) performance improvement when compiling
some kinds of large regular expressions.
Performance improvements:
Improvement performance of compiling large regular expressions.
v1.3.5
Compare Source
==================
This release updates this crate to Unicode 13.
New features:
Update
regex-syntax
to Unicode 13.v1.3.4
Compare Source
==================
This is a small bug fix release that fixes a bug related to the scoping of
flags in a regex. Namely, before this fix, a regex like
((?i)a)b)
wouldmatch
aB
despite the fact thatb
should not be matched case insensitively.Bug fixes:
Fix bug related to the scoping of flags in a regex.
v1.3.3
Compare Source
==================
This is a small maintenance release that upgrades the dependency on
thread_local
from0.3
to1.0
. The minimum supported Rust version remainsat Rust 1.28.
v1.3.2
Compare Source
==================
This is a small maintenance release with some house cleaning and bug fixes.
New features:
Add a
Match::range
method an aFrom<Match> for Range
impl.Bug fixes:
Corrects
/-/.splitn("a", 2)
to return["a"]
instead of["a", ""]
.Improve error reporting when writing
\p\
.Corrects
/-/.split("a-")
to return["a", ""]
instead of["a"]
.Squash deprecation warnings for the
std::error::Error::description
method.v1.3.1
Compare Source
==================
This is a maintenance release with no changes in order to try to work-around
a docs.rs/Cargo issue.
v1.3.0
Compare Source
==================
This release adds a plethora of new crate features that permit users of regex
to shrink its size considerably, in exchange for giving up either functionality
(such as Unicode support) or runtime performance. When all such features are
disabled, the dependency tree for
regex
shrinks to exactly 1 crate(
regex-syntax
). More information about the new crate features can befound in the docs.
Note that while this is a new minor version release, the minimum supported
Rust version for this crate remains at
1.28.0
.New features:
The
use_std
feature has been deprecated in favor of thestd
feature.The
use_std
feature will be removed in regex 2. Until then,use_std
willremain as an alias for the
std
feature.Add a substantial number of crate features shrinking
regex
.v1.2.1
Compare Source
==================
This release does a bit of house cleaning. Namely:
Rust project.
regex
crate, and is now part of theaho-corasick
crate.See
aho-corasick
's newpacked
sub-module for details.utf8-ranges
crate has been deprecated, with its functionality movinginto the
utf8
sub-module ofregex-syntax
.ucd-util
dependency has been dropped, in favor of implementing whatlittle we need inside of
regex-syntax
itself.In general, this is part of an ongoing (long term) effort to make optimizations
in the regex engine easier to reason about. The current code is too convoluted
and thus it is very easy to introduce new bugs. This simplification effort is
the primary motivation behind re-working the
aho-corasick
crate to not onlybundle algorithms like Teddy, but to also provide regex-like match semantics
automatically.
Moving forward, the plan is to join up with the
bstr
andregex-automata
crates, with the former providing more sophisticated substring search
algorithms (thereby deleting existing code in
regex
) and the latter providingahead-of-time compiled DFAs for cases where they are inexpensive to compute.
v1.2.0
Compare Source
==================
This release updates regex's minimum supported Rust version to 1.28, which was
release almost 1 year ago. This release also updates regex's Unicode data
tables to 12.1.0.
v1.1.9
Compare Source
==================
This release contains a bug fix that caused regex's tests to fail, due to a
dependency on an unreleased behavior in regex-syntax.
Move an integration-style test on error messages into regex-syntax.
v1.1.8
Compare Source
==================
This release contains a few small internal refactorings. One of which fixes
an instance of undefined behavior in a part of the SIMD code.
Bug fixes:
Improves error messages when a repetition operator is used without a number.
Removes use of a repr(Rust) union used for type punning in the Teddy matcher.
Update docs for running benchmarks and improve failure modes.
v1.1.7
Compare Source
==================
This release fixes up a few warnings as a result of recent deprecations.
v1.1.6
Compare Source
==================
This release fixes a regression introduced by a bug fix (for
BUG #557) which could cause
the regex engine to enter an infinite loop. This bug was originally
reported against ripgrep.
v1.1.5
Compare Source
==================
This release fixes a bug in regex's dependency specification where it requires
a newer version of regex-syntax, but this wasn't communicated correctly in the
Cargo.toml. This would have been caught by a minimal version check, but this
check was disabled because the
rand
crate itself advertises incorrectdependency specifications.
Bug fixes:
Fix regex-syntax minimal version.
v1.1.4
Compare Source
==================
This release fixes a backwards compatibility regression where Regex was no
longer UnwindSafe. This was caused by the upgrade to aho-corasick 0.7, whose
AhoCorasick type was itself not UnwindSafe. This has been fixed in aho-corasick
0.7.4, which we now require.
Bug fixes:
Fix an API regression where Regex was no longer UnwindSafe.
v1.1.3
Compare Source
==================
This releases fixes a few bugs and adds a performance improvement when a regex
is a simple alternation of literals.
Performance improvements:
Upgrades
aho-corasick
to 0.7 and uses it forfoo|bar|...|quux
regexes.Bug fixes:
Fix a bug where the parser would panic on patterns like
((?x))
.Fix a bug where the parser would panic on patterns like
(?m){1,1}
.Fix a bug where captures could lead to an incorrect match.
v1.1.2
Compare Source
==================
This release fixes a bug found in the fix introduced in 1.1.1.
Bug fixes:
Fix bug introduced in reverse suffix literal matcher in the 1.1.1 release.
v1.1.1
Compare Source
==================
This is a small release with one fix for a bug caused by literal optimizations.
Bug fixes:
Fixes a bug in the reverse suffix literal optimization. This was originally
reported
against ripgrep.
v1.1.0
Compare Source
==================
This is a small release with a couple small enhancements. This release also
increases the minimal supported Rust version (MSRV) to 1.24.1 (from 1.20.0). In
accordance with this crate's MSRV policy, this release bumps the minor version
number.
Performance improvements:
OPT #540:
Improve lazy DFA construction for large regex sets.
New features:
Add Emoji and "break" Unicode properties. See UNICODE.md.
Bug fixes:
Add Unicode license (for data tables).
v1.0.6
Compare Source
==================
This is a small release.
Performance improvements:
Improve performance of compiling large Unicode classes by 8-10%.
Bug fixes:
Fix definition of
[[:blank:]]
class that regressed inregex-syntax 0.5
.v1.0.5
Compare Source
==================
This is a small release with an API enhancement.
New features:
Generalize impls of the
Replacer
trait.v1.0.4
Compare Source
==================
This is a small release that bumps the quickcheck dependency.
v1.0.3
Compare Source
==================
This is a small bug fix release.
Bug fixes:
Fix for Cargo's "minimal version" support.
Fix doc examples for byte regexes.
v1.0.2
Compare Source
==================
This release exposes some new lower level APIs on
Regex
that permitamortizing allocation and controlling the location at which a search is
performed in a more granular way. Most users of the regex crate will not
need or want to use these APIs.
New features:
Add a few lower level APIs for amortizing allocation and more fine grained
searching.
Bug fixes:
Correct outdated documentation on
RegexBuilder::dot_matches_new_line
.Correct outdated documentation on
Parser::allow_invalid_utf8
in theregex-syntax
crate.Fix a bug in the HIR printer where it wouldn't correctly escape meta
characters in character classes.
v1.0.1
Compare Source
==================
This release upgrades regex's Unicode tables to Unicode 11, and enables SIMD
optimizations automatically on Rust stable (1.27 or newer).
New features:
Implement
size_hint
onRegexSet
match iterators.Update Unicode tables for Unicode 11.
SIMD optimizations are now enabled automatically in Rust stable, for versions
1.27 and up. No compilation flags or features need to be set. CPU support
SIMD is detected automatically at runtime.
Bug fixes:
Present a better compilation error when the
use_std
feature isn't used.Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.