{"id":"CVE-2023-41330","summary":"Unsafe deserialization in knplabs/knp-snappy","details":"knplabs/knp-snappy is a PHP library allowing thumbnail, snapshot or PDF generation from a url or a html page.\n## Issue\n\nOn March 17th the vulnerability CVE-2023-28115 was disclosed, allowing an attacker to gain remote code execution through PHAR deserialization. Version 1.4.2 added a check `if (\\strpos($filename, 'phar://') === 0)` in the `prepareOutput` function to resolve this CVE, however if the user is able to control the second parameter of the `generateFromHtml()` function of Snappy, it will then be passed as the `$filename` parameter in the `prepareOutput()` function. In the original vulnerability, a file name with a `phar://` wrapper could be sent to the `fileExists()` function, equivalent to the `file_exists()` PHP function. This allowed users to trigger a deserialization on arbitrary PHAR files. To fix this issue, the string is now passed to the `strpos()` function and if it starts with `phar://`, an exception is raised. However, PHP wrappers being case insensitive, this patch can be bypassed using `PHAR://` instead of `phar://`. A successful exploitation of this vulnerability allows executing arbitrary code and accessing the underlying filesystem. The attacker must be able to upload a file and the server must be running a PHP version prior to 8. This issue has been addressed in commit `d3b742d61a` which has been included in version 1.4.3. Users are advised to upgrade. Users unable to upgrade should ensure that only trusted users may submit data to the `AbstractGenerator-\u003egenerate(...)` function.\n","aliases":["GHSA-92rv-4j2h-8mjj"],"modified":"2026-08-12T03:51:17.345029050Z","published":"2023-09-06T17:33:21.098Z","related":["CGA-p649-38jm-g3j3","GHSA-92rv-4j2h-8mjj","GHSA-gq6w-q6wh-jggc"],"database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-502"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/41xxx/CVE-2023-41330.json"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/41xxx/CVE-2023-41330.json"},{"type":"ADVISORY","url":"https://github.com/KnpLabs/snappy/security/advisories/GHSA-92rv-4j2h-8mjj"},{"type":"ADVISORY","url":"https://github.com/KnpLabs/snappy/security/advisories/GHSA-gq6w-q6wh-jggc"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2023-41330"},{"type":"FIX","url":"https://github.com/KnpLabs/snappy/commit/d3b742d61a68bf93866032c2c0a7f1486128b67e"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/knplabs/snappy","events":[{"introduced":"0"},{"fixed":"d3b742d61a68bf93866032c2c0a7f1486128b67e"}],"database_specific":{"source":["AFFECTED_FIELD","CPE_RANGE","REFERENCES"],"cpe":"cpe:2.3:a:knplabs:snappy:*:*:*:*:*:*:*:*","extracted_events":[{"introduced":"0"},{"fixed":"1.4.3"}]}}],"versions":["v1.4.2","v1.4.1","v1.4.0","v1.3.1","v1.3.0","v1.2.1","v1.2.0","v1.1.0","v1.0.4","v1.0.3","v1.0.2","v1.0.1","v1.0","v0.5.0","0.4.3","0.4.2","0.4.1","0.4","0.3.4","0.3.3","0.3.2","0.3.1","0.3.0","0.2.1","0.2.0","0.1.2","0.1.1","0.1.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-41330.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}