{"id":"CVE-2026-104024","revision":null,"records":[{"revision":"2d63b4aec4b64fe9b3ef1c9eb1876a16","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-104024","aliases":[],"title":"Incomplete dangerous-extension list in PeaZip object open allows execution of a program or command from a crafted archive entry without confirmation","description":"Incomplete List of Disallowed Inputs (CWE-184) in the dangerous-extension confirmation of the archive object viewer (peach.pas, grid_obj_open) in PeaZip 10.5.0 through 11.2.0 on Windows allows an attacker who convinces a victim to open an entry of a crafted archive to execute a program, or an arbitrary command, with no confirmation dialog. The prompt (Do you want to run this file?) is gated by SECEXTCONST, a hard-coded list of seven extensions (exe cmd msi bat ps1 vbs reg); the check is an exact string comparison of the entry extension against that list, so it answers only whether the extension is one of the seven and never whether the shell will execute the file. Shell-executable and scripting-host types that Windows runs through ShellExecuteW are absent from the list, among them .url and .lnk. An archived Windows Internet Shortcut (.url) whose URL line is attacker-controlled is launched with no prompt, while the byte-identical content in an entry named .bat does raise the warning in the same session. A .lnk entry raises the ceiling from launching a program to running a command line, because a Windows shortcut carries arguments: a proof-of-concept shortcut targeting cmd.exe with an attacker-chosen command line executed with no prompt. The shortcut target is not confined to the local disk; the shell also resolved an attacker-named UNC path (fetching a remote payload was only attempted, not demonstrated). No privilege escalation; everything runs as the user who opened the archive.","state":0,"publishedAt":"2026-10-15T13:30:13.885+00:00","modifiedAt":"2026-10-16T18:47:51.852+00:00","affected":[{"ecosystem":"https://github.com/peazip/PeaZip/releases","name":"PeaZip","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"PeaZip\",\n                    \"product\": \"PeaZip\",\n                    \"platforms\": [\n                        \"Windows\"\n                    ],\n                    \"collectionURL\": \"https://github.com/peazip/PeaZip/releases\",\n                    \"repo\": \"https://github.com/peazip/PeaZip\",\n                    \"modules\": [\n                        \"archive object open/preview (grid_obj_open in peach.pas)\"\n                    ],\n                    \"programFiles\": [\n                        \"peazip-sources/dev/peach.pas\"\n                    ],\n                    \"programRoutines\": [\n                        {\n                            \"name\": \"grid_obj_open\"\n                        }\n                    ],\n                    \"versions\": [\n                        {\n                            \"status\": \"affected\",\n                            \"version\": \"10.5.0\",\n                            \"lessThan\": \"11.3.0\",\n                            \"versionType\": \"semver\"\n                        }\n                    ],\n                    \"defaultStatus\": \"unaffected\",\n                    \"cpes\": [\n                        \"cpe:2.3:a:peazip:peazip:*:*:*:*:*:*:windows:*:*\"\n                    ]\n                }"}],"metrics":[{"system":"CVSS 4.0","vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","score":4.6,"severity":"MEDIUM"}],"references":["https://github.com/peazip/PeaZip/commit/90ddbaee0945a4d8ffa4d972d43711bbfb9576ba","https://secur0.com/en/cna/cve-list/cve-2026-104024-incomplete-extension-list-in-peazip"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-104024","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-104024","identifiers":["CVE-2026-104024"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-11-09T09:04:02.9162191+00:00","complete":true,"records":1769,"lastAttemptAt":"2026-11-09T09:04:02.9162191+00:00","lastSuccessAt":"2026-11-09T09:04:03.0760313+00:00","error":null,"lastVerifiedAt":"2026-11-09T09:04:03.0760345+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-24e6fde7b744113daefb8f6135035fb8a5c69c9617c9c0d40574a0376532ffd3-0ea295a9c399a04b3ab57ccec2161d0d1cc039ee9ab5c4d8b6299048bd56b277","complete":true,"records":421333,"lastAttemptAt":"2026-11-09T09:02:14.7013141+00:00","lastSuccessAt":"2026-11-09T09:02:14.6291653+00:00","error":null,"lastVerifiedAt":"2026-11-09T09:02:14.7013141+00:00","snapshotPublishedAt":"2026-11-09T08:31:17+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-f975b42a7c2d46f6899c3d764d777217","complete":false,"records":13654,"lastAttemptAt":"2026-11-09T09:16:12.2541949+00:00","lastSuccessAt":"2026-11-09T09:16:12.249+00:00","error":"7 identifier lookups failed; latest failures include HTTP 403. Other identifiers were checked independently.","lastVerifiedAt":"2026-11-09T09:16:12.249+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13699,"expectedIdentifiers":13706,"failedIdentifiers":7},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-11-09T09:04:02.9162191+00:00","complete":true,"records":1096,"lastAttemptAt":"2026-11-09T09:04:02.9162191+00:00","lastSuccessAt":"2026-11-09T09:04:03.197028+00:00","error":null,"lastVerifiedAt":"2026-11-09T09:04:03.1970284+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-156d67f0b09643159ff4bd684ee896db","complete":true,"records":13666,"lastAttemptAt":"2026-11-09T09:04:03.6692263+00:00","lastSuccessAt":"2026-11-09T07:04:26.209+00:00","error":null,"lastVerifiedAt":"2026-11-09T07:04:26.209+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13706,"expectedIdentifiers":13706,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-980593e6977a6d1b4fb1eed5a1ffe88a468736f89f0a06f710924ad59132c023","complete":true,"records":9914,"lastAttemptAt":"2026-11-09T09:04:02.7750454+00:00","lastSuccessAt":"2026-11-08T11:07:07.068788+00:00","error":null,"lastVerifiedAt":"2026-11-09T09:04:02.7750454+00:00","snapshotPublishedAt":"2026-11-08T11:02:46+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-fde804134ecdda0ddd5ff5c26ee1fff5a6fa659311f7ef2e51c6ad54964db0e2","complete":true,"records":1971,"lastAttemptAt":"2026-11-09T09:02:14.7586225+00:00","lastSuccessAt":"2026-11-06T19:03:17.0399903+00:00","error":null,"lastVerifiedAt":"2026-11-09T09:02:14.7586225+00:00","snapshotPublishedAt":"2026-11-06T18:17:57+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-f6d341f4320a5a0c059c28102ee651c3dd06abc87b84d2bafa4e2a823ec07d35","complete":true,"records":3056,"lastAttemptAt":"2026-11-09T09:04:02.8843128+00:00","lastSuccessAt":"2026-11-09T05:02:23.1539412+00:00","error":null,"lastVerifiedAt":"2026-11-09T09:04:02.8843128+00:00","snapshotPublishedAt":"2026-11-09T04:47:48+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-d0592215f99679f1cc533698c7c7cf50c306057d38021110cecb15015dc78137","complete":true,"records":231297,"lastAttemptAt":"2026-11-09T09:04:02.4970329+00:00","lastSuccessAt":"2026-11-09T09:04:00.7848047+00:00","error":null,"lastVerifiedAt":"2026-11-09T09:04:02.4970329+00:00","snapshotPublishedAt":"2026-11-09T08:33:22+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}