Config::IniFiles versions before 3.001000 for Perl allow OS command injection and file overwrite via a 2-arg open() of the -file argument in _make_filehandle
Config::IniFiles versions before 3.001000 for Perl allow OS command injection and file overwrite via a 2-arg open() of the -file argument in _make_filehandle. Config::IniFiles::_make_filehandle opens a filename argument with Perl's 2-arg open(), so a filename that begins or ends with a pipe ("| cmd", "cmd |") or begins with a redirect ("> path", ">> path") is run as a command or redirect rather than opened as a file. The helper is the open path behind the documented -file argument: new(-file => $thing) reaches it through ReadConfig. An in-memory scalar reference (-file => \$text) does not open a path and is unaffected. Any caller that forwards untrusted input to the -file argument can run an arbitrary command or truncate a file under the process UID.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-11527
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 6 Nov 2026, 04:42 UTC · Revision 1
Source evidence
Config::IniFiles versions before 3.001000 for Perl allow OS command injection and file overwrite via a 2-arg open() of the -file argument in _make_filehandle
core-osv · Original sourcePublished 14 Jun 2026, 11:40 UTC
Config::IniFiles versions before 3.001000 for Perl allow OS command injection and file overwrite via a 2-arg open() of the -file argument in _make_filehandle. Config::IniFiles::_make_filehandle opens a filename argument with Perl's 2-arg open(), so a filename that begins or ends with a pipe ("| cmd", "cmd |") or begins with a redirect ("> path", ">> path") is run as a command or redirect rather than opened as a file. The helper is the open path behind the documented -file argument: new(-file => $thing) reaches it through ReadConfig. An in-memory scalar reference (-file => \$text) does not open a path and is unaffected. Any caller that forwards untrusted input to the -file argument can run an arbitrary command or truncate a file under the process UID.
osv:CVE-2026-11527
Complete source record
{
"id": "0d3038e663d8e94bd05495882ca6f260bc57c814aa1061b8a099b5f6f236d94f",
"url": "https://osv.dev/vulnerability/CVE-2026-11527",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Config::IniFiles versions before 3.001000 for Perl allow OS command injection and file overwrite via a 2-arg open() of the -file argument in _make_filehandle",
"summary": "Config::IniFiles versions before 3.001000 for Perl allow OS command injection and file overwrite via a 2-arg open() of the -file argument in _make_filehandle. Config::IniFiles::_make_filehandle opens a filename argument with Perl's 2-arg open(), so a filename that begins or ends with a pipe (\"| cmd\", \"cmd |\") or begins with a redirect (\"> path\", \">> path\") is run as a command or redirect rather than opened as a file. The helper is the open path behind the documented -file argument: new(-file => $thing) reaches it through ReadConfig. An in-memory scalar reference (-file => \\$text) does not open a path and is unaffected. Any caller that forwards untrusted input to the -file argument can run an arbitrary command or truncate a file under the process UID.",
"evidence": "osv:CVE-2026-11527",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-11527",
"aliases": [
"CVE-2026-11527"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/shlomif/perl-config-inifiles",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "7040f46c00fade6ed81af18589c0de9b8d2f667a"
},
{
"fixed": "3e48f9627fbba4dae5de35be1f735cdeb7e47fb8"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "3.001000"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"fixed": "3e48f9627fbba4dae5de35be1f735cdeb7e47fb8"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"releases/3.000003",
"releases/3.000002",
"releases/3.000001",
"releases/3.000000",
"releases/2.99",
"releases/2.98",
"releases/2.97",
"releases/2.96",
"releases/2.95",
"releases/2.94",
"releases/2.93",
"releases/2.92",
"releases/2.91",
"releases/2.90",
"releases/2.89",
"releases/2.88",
"releases/2.87",
"releases/2.86",
"releases/2.85",
"releases/2.84",
"releases/2.83",
"releases/2.82",
"releases/2.81",
"releases/2.80"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-11527.json"
}
}
],
"modified": "2026-10-28T02:30:46.384140309Z",
"provider": "osv",
"references": [
"https://cpan.org/modules",
"https://lists.debian.org/debian-lts-announce/2026/06/msg00026.html",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/11xxx/CVE-2026-11527.json",
"https://metacpan.org/release/SHLOMIF/Config-IniFiles-3.001000/changes",
"https://nvd.nist.gov/vuln/detail/CVE-2026-11527",
"https://github.com/shlomif/perl-Config-IniFiles/commit/3e48f9627fbba4dae5de35be1f735cdeb7e47fb8.patch",
"https://github.com/shlomif/perl-Config-IniFiles"
],
"provider_metadata": {
"cwe_ids": [
"CWE-73",
"CWE-78"
],
"cna_assigner": "CPANSec",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/11xxx/CVE-2026-11527.json"
}
},
"related_cves": [
{
"value": "CVE-2026-11527",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 514633,
"published_at": "2026-06-14T11:40:45.634+00:00"
}