CVE-2022-31163

TZInfo relative path traversal vulnerability allows loading of arbitrary files

HIGH
8.1
CVSS Score
Published: July 21, 2022 at 01:30 PM UTC
Updated: June 17, 2026 at 04:44 AM UTC
3 products affected across 3 vendorsDebian LinuxTzinfoTZInfo

Using tzinfo by tzinfo?

Get instant alerts when new vulnerabilities affect tzinfo - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH8.1
Exploit prediction
EPSS 2%
SSVC
PoC

Description

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

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

v < 0.3.611.0.0 ≤ v < 1.2.10
Affected range stops below 0.3.61, so it looks safe — our inference, not a vendor statement
Affected range stops below 1.2.10, so it looks safe — our inference, not a vendor statement
v < 0.3.61v < 1.2.10
Affected range stops below 0.3.61, so it looks safe — our inference, not a vendor statement
Affected range stops below 1.2.10, so it looks safe — our inference, not a vendor statement

Remediation

No guide yet

No remediation guidance has been written for this CVE yet. What the record does show:

SSVC — Action Prioritization

SSVCPoCNot automatableTotal impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

Attack Vector
NETWORK
Complexity
HIGH
Privileges
NONE
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
HIGH
Integrity
HIGH
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-22CWE-23

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card