{"api_version":"1","generated_at":"2026-04-22T23:31:52+00:00","cve":"CVE-2026-4851","urls":{"html":"https://cve.report/CVE-2026-4851","api":"https://cve.report/api/cve/CVE-2026-4851.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-4851","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-4851"},"summary":{"title":"GRID::Machine versions through 0.127 for Perl allows arbitrary code execution via unsafe deserialization","description":"GRID::Machine versions through 0.127 for Perl allows arbitrary code execution via unsafe deserialization.\n\nGRID::Machine provides Remote Procedure Calls (RPC) over SSH for Perl. The client connects to remote hosts to execute code on them. A compromised or malicious remote host can execute arbitrary code back on the client through unsafe deserialization in the RPC protocol.\n\nread_operation() in lib/GRID/Machine/Message.pm deserialises values from the remote side using eval()\n\n  $arg .= '$VAR1';\n  my $val = eval \"no strict; $arg\"; # line 40-41\n\n$arg is raw bytes from the protocol pipe. A compromised remote host can embed arbitrary perl in the Dumper-formatted response:\n\n  $VAR1 = do { system(\"...\"); };\n\nThis executes on the client silently on every RPC call, as the return values remain correct.\n\nThis functionality is by design but the trust requirement for the remote host is not documented in the distribution.","state":"PUBLISHED","assigner":"CPANSec","published_at":"2026-03-29 01:15:56","updated_at":"2026-04-01 15:23:23"},"problem_types":["CWE-95","CWE-502","CWE-502 CWE-502 Deserialization of Untrusted Data","CWE-95 CWE-95 Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection')"],"metrics":[{"version":"3.1","source":"nvd@nist.gov","type":"Primary","score":"9.8","severity":"CRITICAL","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":9.8,"baseSeverity":"CRITICAL","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"}},{"version":"3.1","source":"ADP","type":"DECLARED","score":"9.8","severity":"CRITICAL","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","data":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"HIGH","baseScore":9.8,"baseSeverity":"CRITICAL","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","version":"3.1"}},{"version":"3.1","source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","type":"Secondary","score":"9.8","severity":"CRITICAL","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":9.8,"baseSeverity":"CRITICAL","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"}}],"references":[{"url":"https://www.openwall.com/lists/oss-security/2026/03/26/6","name":"https://www.openwall.com/lists/oss-security/2026/03/26/6","refsource":"9b29abf9-4ab0-4765-b253-1875cd9b441e","tags":["Mailing List"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"http://www.openwall.com/lists/oss-security/2026/03/26/6","name":"http://www.openwall.com/lists/oss-security/2026/03/26/6","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":["Mailing List"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-4851","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-4851","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"CASIANO","product":"GRID::Machine","version":"affected 0.127 custom","platforms":[]}],"timeline":[{"source":"CNA","time":"2026-03-24T00:00:00.000Z","lang":"en","value":"Vulnerability reported to module author and CPANSec"},{"source":"CNA","time":"2026-03-25T00:00:00.000Z","lang":"en","value":"CVE assigned by CPANSec"},{"source":"CNA","time":"2026-03-26T00:00:00.000Z","lang":"en","value":"Author confirmed module is unmaintained, no fix available"},{"source":"CNA","time":"2026-03-26T00:00:00.000Z","lang":"en","value":"Disclosed on oss-security mailing list"}],"solutions":[],"workarounds":[{"source":"CNA","title":"","value":"There is no fix available. If used, only connect to trusted remote hosts.","time":"","lang":"en"}],"exploits":[],"credits":[{"source":"CNA","value":"Pied Crow crow@cpan.org","lang":"en"}],"nvd_cpes":[{"cve_year":"2026","cve_id":"4851","vulnerable":"1","versionEndIncluding":"0.127","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"casiano","cpe5":"grid\\","cpe6":"\\","cpe7":"machine","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"perl"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"4851","cve":"CVE-2026-4851","epss":"0.000880000","percentile":"0.250780000","score_date":"2026-04-21","updated_at":"2026-04-22 00:07:43"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"providerMetadata":{"dateUpdated":"2026-03-29T00:23:56.336Z","orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE"},"references":[{"url":"http://www.openwall.com/lists/oss-security/2026/03/26/6"}],"title":"CVE Program Container"},{"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"HIGH","baseScore":9.8,"baseSeverity":"CRITICAL","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","version":"3.1"}},{"other":{"content":{"id":"CVE-2026-4851","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"total"}],"role":"CISA Coordinator","timestamp":"2026-04-01T14:17:04.307893Z","version":"2.0.3"},"type":"ssvc"}}],"providerMetadata":{"dateUpdated":"2026-04-01T14:17:48.164Z","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP"},"title":"CISA ADP Vulnrichment"}],"cna":{"affected":[{"collectionURL":"https://cpan.org/modules","defaultStatus":"unaffected","packageName":"GRID-Machine","product":"GRID::Machine","programFiles":["lib/GRID/Machine/Message.pm"],"programRoutines":[{"name":"GRID::Machine::read_operation()"}],"vendor":"CASIANO","versions":[{"lessThanOrEqual":"0.127","status":"affected","version":"0","versionType":"custom"}]}],"credits":[{"lang":"en","type":"finder","value":"Pied Crow crow@cpan.org"}],"descriptions":[{"lang":"en","value":"GRID::Machine versions through 0.127 for Perl allows arbitrary code execution via unsafe deserialization.\n\nGRID::Machine provides Remote Procedure Calls (RPC) over SSH for Perl. The client connects to remote hosts to execute code on them. A compromised or malicious remote host can execute arbitrary code back on the client through unsafe deserialization in the RPC protocol.\n\nread_operation() in lib/GRID/Machine/Message.pm deserialises values from the remote side using eval()\n\n  $arg .= '$VAR1';\n  my $val = eval \"no strict; $arg\"; # line 40-41\n\n$arg is raw bytes from the protocol pipe. A compromised remote host can embed arbitrary perl in the Dumper-formatted response:\n\n  $VAR1 = do { system(\"...\"); };\n\nThis executes on the client silently on every RPC call, as the return values remain correct.\n\nThis functionality is by design but the trust requirement for the remote host is not documented in the distribution."}],"impacts":[{"capecId":"CAPEC-586","descriptions":[{"lang":"en","value":"CAPEC-586 Object Injection"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-502","description":"CWE-502 Deserialization of Untrusted Data","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-95","description":"CWE-95 Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection')","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-03-29T00:22:22.578Z","orgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","shortName":"CPANSec"},"references":[{"tags":["third-party-advisory"],"url":"https://www.openwall.com/lists/oss-security/2026/03/26/6"}],"source":{"discovery":"UNKNOWN"},"timeline":[{"lang":"en","time":"2026-03-24T00:00:00.000Z","value":"Vulnerability reported to module author and CPANSec"},{"lang":"en","time":"2026-03-25T00:00:00.000Z","value":"CVE assigned by CPANSec"},{"lang":"en","time":"2026-03-26T00:00:00.000Z","value":"Author confirmed module is unmaintained, no fix available"},{"lang":"en","time":"2026-03-26T00:00:00.000Z","value":"Disclosed on oss-security mailing list"}],"title":"GRID::Machine versions through 0.127 for Perl allows arbitrary code execution via unsafe deserialization","workarounds":[{"lang":"en","value":"There is no fix available. If used, only connect to trusted remote hosts."}],"x_generator":{"engine":"cpansec-cna-tool 0.1"}}},"cveMetadata":{"assignerOrgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","assignerShortName":"CPANSec","cveId":"CVE-2026-4851","datePublished":"2026-03-29T00:22:22.578Z","dateReserved":"2026-03-25T14:56:47.454Z","dateUpdated":"2026-04-01T14:17:48.164Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-03-29 01:15:56","lastModifiedDate":"2026-04-01 15:23:23","problem_types":["CWE-95","CWE-502","CWE-502 CWE-502 Deserialization of Untrusted Data","CWE-95 CWE-95 Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection')"],"metrics":{"cvssMetricV31":[{"source":"nvd@nist.gov","type":"Primary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":9.8,"baseSeverity":"CRITICAL","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"},"exploitabilityScore":3.9,"impactScore":5.9},{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":9.8,"baseSeverity":"CRITICAL","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"},"exploitabilityScore":3.9,"impactScore":5.9}]},"configurations":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:casiano:grid\\:\\:machine:*:*:*:*:*:perl:*:*","versionEndIncluding":"0.127","matchCriteriaId":"B3148991-8DC2-4D2F-8EC2-0DCB0E5B6A63"}]}]}]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"4851","Ordinal":"1","Title":"GRID::Machine versions through 0.127 for Perl allows arbitrary c","CVE":"CVE-2026-4851","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"4851","Ordinal":"1","NoteData":"GRID::Machine versions through 0.127 for Perl allows arbitrary code execution via unsafe deserialization.\n\nGRID::Machine provides Remote Procedure Calls (RPC) over SSH for Perl. The client connects to remote hosts to execute code on them. A compromised or malicious remote host can execute arbitrary code back on the client through unsafe deserialization in the RPC protocol.\n\nread_operation() in lib/GRID/Machine/Message.pm deserialises values from the remote side using eval()\n\n  $arg .= '$VAR1';\n  my $val = eval \"no strict; $arg\"; # line 40-41\n\n$arg is raw bytes from the protocol pipe. A compromised remote host can embed arbitrary perl in the Dumper-formatted response:\n\n  $VAR1 = do { system(\"...\"); };\n\nThis executes on the client silently on every RPC call, as the return values remain correct.\n\nThis functionality is by design but the trust requirement for the remote host is not documented in the distribution.","Type":"Description","Title":"GRID::Machine versions through 0.127 for Perl allows arbitrary c"}]}}}