Vulnerability · Published Jul 28, 2026 · Assigned by GitHub_M

CVE-2026-54659Pagy I18n locale option is not validated before being used in a file path

Medium 6.9

In plain English

A medium-severity path traversal in pagy from ddnexus. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.4% (higher than 31% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 4.0)6.9Medium
Exploit odds (30 days)0.4%top 69.1% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

Official description

Pagy is agnostic pagination in plain Ruby. From 43.0.0 until 43.5.6, Pagy::I18n.locale= in gem/lib/pagy/modules/i18n/i18n.rb stored locale values verbatim and later used them as <locale>.yml path components, allowing untrusted params[:locale] values with absolute paths or ../ sequences to create a file existence and readability oracle for YAML files. This issue is fixed in version 43.5.6.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
RubyGemspagy43.5.6GHSA-2xmw-f8j8-wfxc
Ubuntu:26.10ruby-pagyno fix listedUBUNTU-CVE-2026-54659

Affected products (as reported)

VendorProductVersions
ddnexus pagy >= 43.0.0, < 43.5.6

Weakness: CWE-22, CWE-200 · Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

References