Gentoo: GLSA-202408-24: Ruby on Rails: Remote Code ExecutionSecurity Advisory Updates
Summary
Multiple vulnerabilities have been discovered in Ruby on Rails. Please
review the CVE identifiers referenced below for details.
Resolution
All Ruby on Rails users should upgrade to the latest version:
# emerge --sync
# emerge --ask --oneshot --verbose ">=dev-ruby/rails-6.1.6.1:6.1"
# emerge --ask --oneshot --verbose ">=dev-ruby/rails-7.0.3.1:7.0"
References
[ 1 ] CVE-2022-32224
https://nvd.nist.gov/vuln/detail/CVE-2022-32224
Availability
This GLSA and any updates to it are available for viewing at
the Gentoo Security Website:
https://security.gentoo.org/glsa/202408-24
Concerns
Security is a primary focus of Gentoo Linux and ensuring the
confidentiality and security of our users' machines is of utmost
importance to us. Any security concerns should be addressed to
security@gentoo.org or alternatively, you may file a bug at
https://bugs.gentoo.org.
Synopsis
A vulnerability has been discovered in Ruby on Rails, which can lead to
remote code execution via serialization of data.
Background
Ruby on Rails is a free web framework used to develop database-driven
web applications.
Affected Packages
Package Vulnerable Unaffected
-------------- ------------- --------------
dev-ruby/rails < 6.1.6.1:6.1 >= 6.1.6.1:6.1
< 7.0.3.1:7.0 >= 7.0.3.1:7.0
Impact
When serialized columns that use YAML (the default) are deserialized,
Rails uses YAML.unsafe_load to convert the YAML data in to Ruby objects.
If an attacker can manipulate data in the database (via means like SQL
injection), then it may be possible for the attacker to escalate to an
RCE.
class User < ApplicationRecord
serialize :options # Vulnerable: Uses YAML for serialization
serialize :values, Array # Vulnerable: Uses YAML for serialization
serialize :values, JSON # Not vulnerable
end
The released versions change the default YAML deserializer to use
YAML.safe_load, which prevents deserialization of possibly dangerous
objects. This may introduce backwards compatibility issues with existing
data.
Workaround
There is no known workaround at this time.