Read the docs
TI-2026-39485 Aliases CVE-2026-54659GHSA-2xmw-f8j8-wfxc

Pagy I18n locale option is not validated before being used in a file path

Priority LOW 37CWE-200Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
None
Impact type
Information disclosure
Confidentiality · integrity · availability
Low · None · None
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-200.

Summary

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.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00369 30th percentileScored 2026-11-07
Fix Fixed pagy (ddnexus): 43.5.6pagy (RubyGems): 43.5.6

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
ddnexuspagy43.0.0 to before 43.5.643.5.6Patch availableCNA
—pagy (RubyGems)43.0.0 to before 43.5.643.5.6Patch availableGHSA-2xmw-f8j8-wfxc
  • pagy Vendorddnexus Affected 43.0.0 to before 43.5.6 Fixed in 43.5.6 Patch available CNA
  • pagy (RubyGems) Vendor— Affected 43.0.0 to before 43.5.6 Fixed in 43.5.6 Patch available GHSA-2xmw-f8j8-wfxc

Remediation

  • Fix · CNA pagy (ddnexus) Fixed in 43.5.6
  • Fix · GHSA-2xmw-f8j8-wfxc pagy (RubyGems) Fixed in 43.5.6 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-54659
  2. 2026-10-03 Alias added: GHSA-2xmw-f8j8-wfxc

References

Sources