CVE-2026-13048
Received Received - Intake

Path Traversal in Data::MuForm::Localizer

Vulnerability report for CVE-2026-13048, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-13

Last updated on: 2026-08-13

Assigner: CPANSec

Description

Data::MuForm::Localizer versions through 0.05 for Perl execute Perl from a message catalog header, reached at an arbitrary path because load_lexicon interpolates the language attribute into the catalog filename. load_lexicon builds the catalog path by appending `Messages/$lang.po` to the directory holding Localizer.pm, where $lang is the language attribute, with no check that it names a bare locale tag. A value holding `../` segments walks out of the message directory, so any readable path with a `.po` suffix is loaded. While parsing the catalog, extract_header_msgstr takes the `Plural-Forms:` header, prefixes `$` to the bare words nplurals, plural and n, and passes the rest verbatim into a string that is evaluated: the nplurals form evaluates the header expression immediately, and the plural_code form compiles it into a subroutine whose body runs when a plural message is localized. A header of `nplurals=2; plural=(system('...'),0);` therefore runs that command as the catalog loads. The evaluation inherits strict, so an expression that assigns to an undeclared variable fails to compile, while one built from calls alone does not. An application that sets the language attribute from request data, an Accept-Language header or a locale parameter, and an attacker who can place a file with a `.po` suffix and chosen contents at a readable path, together give code execution as the application user. The message expansion path is not affected: expand_named substitutes only the placeholder names the caller supplies, and _mangle_value returns the value unchanged.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-13
Last Modified
2026-08-13
Generated
2026-08-13
AI Q&A
2026-08-13
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Currently, no data is known.

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-22 The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.
CWE-95 The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes code syntax before using the input in a dynamic evaluation call (e.g. "eval").

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in Data::MuForm::Localizer for Perl allows arbitrary code execution due to unsafe path handling and Perl code evaluation. The load_lexicon function builds file paths using user-controlled language attributes without validation, enabling path traversal to load malicious .po files from any readable location. Additionally, the Plural-Forms header parser evaluates user-controlled input as Perl code, allowing commands like system('...') to execute when the catalog loads.

Detection Guidance

Check Perl applications using Data::MuForm::Localizer for suspicious .po files in unexpected directories. Inspect Accept-Language headers or locale parameters for path traversal sequences like ../. Use grep to search for load_lexicon calls in application logs or code.

Impact Analysis

An attacker can exploit this by setting the language attribute to a path traversal value and placing a malicious .po file at a readable location. If the application uses user-controlled language settings, this leads to code execution as the application user. The attacker gains the same privileges as the running application, potentially accessing sensitive data or performing unauthorized actions.

Compliance Impact

This vulnerability could lead to unauthorized code execution, potentially exposing sensitive data regulated by GDPR or HIPAA. A breach may result in non-compliance due to unauthorized access to personal or health information, triggering legal penalties and reputational damage for affected organizations.

Mitigation Strategies

Upgrade Data::MuForm::Localizer to version 0.05 or later. Validate all language attributes to ensure they only contain allowed characters. Remove any .po files from untrusted locations. Restrict file permissions to prevent unauthorized file creation.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-13048. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart