{"id":"GHSA-96c2-h667-9fxp","summary":"nova-tiptap has Unauthenticated Arbitrary File Upload Vulnerability","details":"A vulnerability was discovered in the marshmallow-packages/nova-tiptap Laravel Nova package that allows unauthenticated users to upload arbitrary files to any Laravel disk configured in the application.\n\nThe vulnerability is due to:\n\t•\tMissing authentication middleware (Nova and Nova.Auth) on the /nova-tiptap/api/file upload endpoint\n\t•\tLack of validation on uploaded files (no MIME/type or extension restrictions)\n\t•\tAbility for an attacker to choose the disk parameter dynamically\n\nThis means an attacker can craft a custom form and send a POST request to /nova-tiptap/api/file, supplying a valid CSRF token, and upload executable or malicious files (e.g., .php, binaries) to public disks such as local, public, or s3. If a publicly accessible storage path is used (e.g. S3 with public access, or Laravel’s public disk), the attacker may gain the ability to execute or distribute arbitrary files — amounting to a potential Remote Code Execution (RCE) vector in some environments.","aliases":["CVE-2025-54082"],"modified":"2025-07-22T16:38:46.297457Z","published":"2025-07-21T19:09:21Z","database_specific":{"cwe_ids":["CWE-434"],"severity":"CRITICAL","github_reviewed":true,"github_reviewed_at":"2025-07-21T19:09:21Z","nvd_published_at":"2025-07-21T17:15:37Z"},"references":[{"type":"WEB","url":"https://github.com/marshmallow-packages/nova-tiptap/security/advisories/GHSA-96c2-h667-9fxp"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-54082"},{"type":"WEB","url":"https://github.com/marshmallow-packages/nova-tiptap/commit/fed42d2f8ebb9e3c74f1ee262c9db33567030756"},{"type":"PACKAGE","url":"https://github.com/marshmallow-packages/nova-tiptap"}],"affected":[{"package":{"name":"marshmallow/nova-tiptap","ecosystem":"Packagist","purl":"pkg:composer/marshmallow/nova-tiptap"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.7.0"}]}],"versions":["5.0.0","5.1.0","5.2.0","5.2.1","5.2.2","5.3.0","5.4.0","5.5.0","5.6.0"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2025/07/GHSA-96c2-h667-9fxp/GHSA-96c2-h667-9fxp.json"}},{"package":{"name":"manogi/nova-tiptap","ecosystem":"Packagist","purl":"pkg:composer/manogi/nova-tiptap"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"3.2.6"}]}],"versions":["0.0.1","0.0.2","0.1.0","0.1.1","0.2.0","0.2.1","0.2.2","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.3.5","0.3.6","0.3.7","0.3.8","0.3.9","0.4.0","0.5.0","2.6.0","v0.5.1","v0.6.0","v0.6.1","v1.0","v1.0.1","v1.1.0","v1.1.1","v1.1.2","v1.1.3","v1.2.0","v1.2.1","v1.3.0","v1.3.1","v1.3.2","v1.4.0","v1.4.1","v2.0-alpha","v2.0-beta","v2.0-beta-2","v2.0-beta-3","v2.0-beta-4","v2.0.0","v2.0.1","v2.0.2","v2.0.3","v2.1.0","v2.1.1","v2.1.2","v2.1.3","v2.1.4","v2.2.0","v2.2.1","v2.3.0","v2.3.1","v2.4.0","v2.4.1","v2.5.0","v2.5.1","v2.5.2","v2.5.3","v2.5.4","v2.6.1","v2.6.2","v2.6.3","v2.7.0","v2.7.1","v2.7.2","v2.7.3","v2.7.4","v2.7.5","v2.7.6","v2.8.0","v2.8.1","v2.8.2","v2.8.3","v2.9.0","v3.0.0","v3.0.1","v3.0.2","v3.0.3","v3.0.4","v3.0.5","v3.0.6","v3.0.7","v3.1.0","v3.1.1","v3.1.2","v3.1.3","v3.2.0","v3.2.1","v3.2.2","v3.2.3","v3.2.4","v3.2.5","v3.2.6"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2025/07/GHSA-96c2-h667-9fxp/GHSA-96c2-h667-9fxp.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"}]}