Search
Find a vulnerability
Search criteria
ⓘ
Use this form to refine search results.
Full-text search supports keyword queries with ranking and filtering.
You can combine vendor, product, and sources to narrow results.
Enable “Apply ordering” to sort by date instead of relevance.
2 vulnerabilities by ddnexus
CVE-2026-54659 (GCVE-0-2026-54659)
Vulnerability from nvd – Published: 2026-07-28 22:25 – Updated: 2026-07-29 13:06
VLAI
EPSS
VEX
Title
Pagy I18n locale option is not validated before being used in a file path
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.
Severity
SSVC
Exploitation: none
Automatable: yes
Technical Impact: partial
CISA Coordinator (v2.0.3)
CWE
Assigner
References
4 references
| URL | Tags |
|---|---|
| https://github.com/ddnexus/pagy/security/advisori… | x_refsource_CONFIRM |
| https://github.com/ddnexus/pagy/pull/908 | x_refsource_MISC |
| https://github.com/ddnexus/pagy/commit/efcf09690e… | x_refsource_MISC |
| https://github.com/ddnexus/pagy/releases/tag/43.5.6 | x_refsource_MISC |
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-54659",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-07-29T13:06:55.587193Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-07-29T13:06:59.870Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"references": [
{
"tags": [
"exploit"
],
"url": "https://github.com/ddnexus/pagy/security/advisories/GHSA-2xmw-f8j8-wfxc"
}
],
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "pagy",
"vendor": "ddnexus",
"versions": [
{
"status": "affected",
"version": "\u003e= 43.0.0, \u003c 43.5.6"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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 \u003clocale\u003e.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."
}
],
"metrics": [
{
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "NETWORK",
"baseScore": 6.9,
"baseSeverity": "MEDIUM",
"privilegesRequired": "NONE",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "NONE",
"vectorString": "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",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "LOW",
"vulnIntegrityImpact": "NONE"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-22",
"description": "CWE-22: Improper Limitation of a Pathname to a Restricted Directory (\u0027Path Traversal\u0027)",
"lang": "en",
"type": "CWE"
}
]
},
{
"descriptions": [
{
"cweId": "CWE-200",
"description": "CWE-200: Exposure of Sensitive Information to an Unauthorized Actor",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-07-28T22:25:35.231Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/ddnexus/pagy/security/advisories/GHSA-2xmw-f8j8-wfxc",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/ddnexus/pagy/security/advisories/GHSA-2xmw-f8j8-wfxc"
},
{
"name": "https://github.com/ddnexus/pagy/pull/908",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/ddnexus/pagy/pull/908"
},
{
"name": "https://github.com/ddnexus/pagy/commit/efcf09690e9fa7d7abdfb987b785a55f87e287df",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/ddnexus/pagy/commit/efcf09690e9fa7d7abdfb987b785a55f87e287df"
},
{
"name": "https://github.com/ddnexus/pagy/releases/tag/43.5.6",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/ddnexus/pagy/releases/tag/43.5.6"
}
],
"source": {
"advisory": "GHSA-2xmw-f8j8-wfxc",
"discovery": "UNKNOWN"
},
"title": "Pagy I18n locale option is not validated before being used in a file path"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-54659",
"datePublished": "2026-07-28T22:25:35.231Z",
"dateReserved": "2026-06-15T20:16:46.199Z",
"dateUpdated": "2026-07-29T13:06:59.870Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-54659 (GCVE-0-2026-54659)
Vulnerability from cvelistv5 – Published: 2026-07-28 22:25 – Updated: 2026-07-29 13:06
VLAI
EPSS
VEX
Title
Pagy I18n locale option is not validated before being used in a file path
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.
Severity
SSVC
Exploitation: none
Automatable: yes
Technical Impact: partial
CISA Coordinator (v2.0.3)
CWE
Assigner
References
4 references
| URL | Tags |
|---|---|
| https://github.com/ddnexus/pagy/security/advisori… | x_refsource_CONFIRM |
| https://github.com/ddnexus/pagy/pull/908 | x_refsource_MISC |
| https://github.com/ddnexus/pagy/commit/efcf09690e… | x_refsource_MISC |
| https://github.com/ddnexus/pagy/releases/tag/43.5.6 | x_refsource_MISC |
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-54659",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-07-29T13:06:55.587193Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-07-29T13:06:59.870Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"references": [
{
"tags": [
"exploit"
],
"url": "https://github.com/ddnexus/pagy/security/advisories/GHSA-2xmw-f8j8-wfxc"
}
],
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "pagy",
"vendor": "ddnexus",
"versions": [
{
"status": "affected",
"version": "\u003e= 43.0.0, \u003c 43.5.6"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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 \u003clocale\u003e.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."
}
],
"metrics": [
{
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "NETWORK",
"baseScore": 6.9,
"baseSeverity": "MEDIUM",
"privilegesRequired": "NONE",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "NONE",
"vectorString": "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",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "LOW",
"vulnIntegrityImpact": "NONE"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-22",
"description": "CWE-22: Improper Limitation of a Pathname to a Restricted Directory (\u0027Path Traversal\u0027)",
"lang": "en",
"type": "CWE"
}
]
},
{
"descriptions": [
{
"cweId": "CWE-200",
"description": "CWE-200: Exposure of Sensitive Information to an Unauthorized Actor",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-07-28T22:25:35.231Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/ddnexus/pagy/security/advisories/GHSA-2xmw-f8j8-wfxc",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/ddnexus/pagy/security/advisories/GHSA-2xmw-f8j8-wfxc"
},
{
"name": "https://github.com/ddnexus/pagy/pull/908",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/ddnexus/pagy/pull/908"
},
{
"name": "https://github.com/ddnexus/pagy/commit/efcf09690e9fa7d7abdfb987b785a55f87e287df",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/ddnexus/pagy/commit/efcf09690e9fa7d7abdfb987b785a55f87e287df"
},
{
"name": "https://github.com/ddnexus/pagy/releases/tag/43.5.6",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/ddnexus/pagy/releases/tag/43.5.6"
}
],
"source": {
"advisory": "GHSA-2xmw-f8j8-wfxc",
"discovery": "UNKNOWN"
},
"title": "Pagy I18n locale option is not validated before being used in a file path"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-54659",
"datePublished": "2026-07-28T22:25:35.231Z",
"dateReserved": "2026-06-15T20:16:46.199Z",
"dateUpdated": "2026-07-29T13:06:59.870Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}