CVE-2022-31163
published 2022-07-22CVE-2022-31163: TZInfo is a Ruby library that provides access to time zone data and allows times to be converted using time zone rules. Versions prior to 0.36.1, as well as…
PriorityP353high8.1CVSS 3.1
AVNACHPRNUINSUCHIHAH
EPSS
2.23%
81.0th percentile
TZInfo is a Ruby library that provides access to time zone data and allows times to be converted using time zone rules. Versions prior to 0.36.1, as well as those prior to 1.2.10 when used with the Ruby data source tzinfo-data, are vulnerable to relative path traversal. With the Ruby data source, time zones are defined in Ruby files. There is one file per time zone. Time zone files are loaded with `require` on demand. In the affected versions, `TZInfo::Timezone.get` fails to validate time zone identifiers correctly, allowing a new line character within the identifier. With Ruby version 1.9.3 and later, `TZInfo::Timezone.get` can be made to load unintended files with `require`, executing them within the Ruby process. Versions 0.3.61 and 1.2.10 include fixes to correctly validate time zone identifiers. Versions 2.0.0 and later are not vulnerable. 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/definition` within a directory in the load path. Applications should ensure that untrusted files are not placed in a directory on the load path. As a workaround, the time zone identifier can be validated before passing to `TZInfo::Timezone.get` by ensuring it matches the regular expression `\A[A-Za-z0-9+\-_]+(?:\/[A-Za-z0-9+\-_]+)*\z`.
Affected
8 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| debian | debian_linux | — | — |
| debian | ruby-tzinfo | < ruby-tzinfo 2.0.4-2 (bookworm) | ruby-tzinfo 2.0.4-2 (bookworm) |
| tzinfo | tzinfo | < 0.3.61 | 0.3.61 |
| tzinfo | tzinfo | — | — |
| tzinfo | tzinfo | >= 0 < 0.3.61 | 0.3.61 |
| tzinfo | tzinfo | >= 1.0.0 < 1.2.10 | 1.2.10 |
| tzinfo_project | tzinfo | < 0.3.61 | 0.3.61 |
| tzinfo_project | tzinfo | >= 1.0.0 < 1.2.10 | 1.2.10 |
CVSS provenance
nvdv3.18.1HIGHCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
osv8.1HIGH
vendor_debian7.5HIGH
vendor_redhat7.5HIGH
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
OSV
CVE-2022-31163: TZInfo is a Ruby library that provides access to time zone data and allows times to be converted using time zone rules
osv·2022-07-22·CVSS 8.1
CVE-2022-31163 [HIGH] CVE-2022-31163: TZInfo is a Ruby library that provides access to time zone data and allows times to be converted using time zone rules
TZInfo is a Ruby library that provides access to time zone data and allows times to be converted using time zone rules. Versions prior to 0.36.1, as well as those prior to 1.2.10 when used with the Ruby data source tzinfo-data, are vulnerable to relative path traversal. With the Ruby data source, time zones are defined in Ruby files. There is one file per time zone. Time zone files are loaded with `require` on demand. In the affected versions, `TZInfo::Timezone.get` fails to validate time zone identifiers correctly, allowing a new line character within the identifier. With Ruby version 1.9.3 and later, `TZInfo::Timezone.get` can be made to load unintended files with `require`, executing them within the Ruby process. Versions 0.3.61 and 1.2.10 include fixes to correctly validate time zone i
OSV
TZInfo relative path traversal vulnerability allows loading of arbitrary files
osv·2022-07-21
CVE-2022-31163 [HIGH] TZInfo relative path traversal vulnerability allows loading of arbitrary files
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 `require` on demand. In the affected versions, `TZInfo::Timezone.get` fails to validate time zone identifiers correctly, allowing a new line character within the identifier. With Ruby version 1.9.3 and later, `TZInfo::Timezone.get` can be made to load unintended files with `require`, executing them within the Ruby process.
For example, with version 1
GHSA
TZInfo relative path traversal vulnerability allows loading of arbitrary files
ghsa·2022-07-21
CVE-2022-31163 [HIGH] CWE-22 TZInfo relative path traversal vulnerability allows loading of arbitrary files
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 `require` on demand. In the affected versions, `TZInfo::Timezone.get` fails to validate time zone identifiers correctly, allowing a new line character within the identifier. With Ruby version 1.9.3 and later, `TZInfo::Timezone.get` can be made to load unintended files with `require`, executing them within the Ruby process.
For example, with version 1
Red Hat
rubygem-tzinfo: arbitrary code execution
vendor_redhat·2022-07-22·CVSS 7.5
CVE-2022-31163 [HIGH] CWE-22 rubygem-tzinfo: arbitrary code execution
rubygem-tzinfo: arbitrary code execution
TZInfo is a Ruby library that provides access to time zone data and allows times to be converted using time zone rules. Versions prior to 0.36.1, as well as those prior to 1.2.10 when used with the Ruby data source tzinfo-data, are vulnerable to relative path traversal. With the Ruby data source, time zones are defined in Ruby files. There is one file per time zone. Time zone files are loaded with `require` on demand. In the affected versions, `TZInfo::Timezone.get` fails to validate time zone identifiers correctly, allowing a new line character within the identifier. With Ruby version 1.9.3 and later, `TZInfo::Timezone.get` can be made to load unintended files with `require`, executing them within the Ruby process. Versions 0.3.61 and 1.2.10 inclu
Debian
CVE-2022-31163: ruby-tzinfo - TZInfo is a Ruby library that provides access to time zone data and allows times...
vendor_debian·2022·CVSS 7.5
CVE-2022-31163 [HIGH] CVE-2022-31163: ruby-tzinfo - TZInfo is a Ruby library that provides access to time zone data and allows times...
TZInfo is a Ruby library that provides access to time zone data and allows times to be converted using time zone rules. Versions prior to 0.36.1, as well as those prior to 1.2.10 when used with the Ruby data source tzinfo-data, are vulnerable to relative path traversal. With the Ruby data source, time zones are defined in Ruby files. There is one file per time zone. Time zone files are loaded with `require` on demand. In the affected versions, `TZInfo::Timezone.get` fails to validate time zone identifiers correctly, allowing a new line character within the identifier. With Ruby version 1.9.3 and later, `TZInfo::Timezone.get` can be made to load unintended files with `require`, executing them within the Ruby process. Versions 0.3.61 and 1.2.10 include fixes to correctly validate time zone i
No detection rules found.
No public exploits indexed.
No writeups or analysis indexed.
https://github.com/tzinfo/tzinfo/commit/9905ca93abf7bf3e387bd592406e403cd18334c7https://github.com/tzinfo/tzinfo/commit/9eddbb5c0e682736f61d0dd803b6031a5db9eadfhttps://github.com/tzinfo/tzinfo/releases/tag/v0.3.61https://github.com/tzinfo/tzinfo/releases/tag/v1.2.10https://github.com/tzinfo/tzinfo/security/advisories/GHSA-5cm2-9h8c-rvfxhttps://lists.debian.org/debian-lts-announce/2022/08/msg00009.htmlhttps://github.com/tzinfo/tzinfo/commit/9905ca93abf7bf3e387bd592406e403cd18334c7https://github.com/tzinfo/tzinfo/commit/9eddbb5c0e682736f61d0dd803b6031a5db9eadfhttps://github.com/tzinfo/tzinfo/releases/tag/v0.3.61https://github.com/tzinfo/tzinfo/releases/tag/v1.2.10https://github.com/tzinfo/tzinfo/security/advisories/GHSA-5cm2-9h8c-rvfxhttps://lists.debian.org/debian-lts-announce/2022/08/msg00009.htmlhttps://lists.debian.org/debian-lts-announce/2024/09/msg00008.html
2022-07-22
Published