{"answers":{"affected":"3 open source packages ship an affected version, including publify_core and publify. It affects 1 product.","exploited":"It is not confirmed as exploited in the wild, but public exploit code for CVE-2021-25975 exists.","fix":"Upgrade publify_core to 9.2.5 or later.","what":"CVE-2021-25975 is a medium-severity cross-site scripting vulnerability in publify_core, published on 10 Nov 2021. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link."},"fix_prompt":"Check this codebase for CVE-2021-25975 and fix it if it is affected.\n\nWhat it is: CVE-2021-25975 is a medium-severity cross-site scripting vulnerability in publify_core, published on 10 Nov 2021. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.\nExploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2021-25975 exists.\n\nAffected packages and fixed versions:\n- publify_core (RubyGems): affected from 8.0; fixed in 9.2.5\n- publify_core (RubyGems): affected from 8.0; fixed in 9.2.5\n- publify (Bitnami): affected from 8.0.0; fixed in 9.2.4\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2021-25975/ (Markdown: https://insights.sbomify.com/CVE-2021-25975/index.md)","id":"CVE-2021-25975","markdown":"https://insights.sbomify.com/CVE-2021-25975/index.md","name":"CVE-2021-25975","record":{"aliases":["BIT-publify-2021-25975","GHSA-3h7v-wqw7-ff28"],"analysis":{"component_type":"web_application","fix_type":"upgrade","impacts":["code_execution"],"network_reachable":"yes","non_default_config":false,"product_category":"Publify blog engine","requires_auth":"low_privilege","summary":"A publisher can inject malicious JavaScript via unrestricted file upload, leading to stored XSS attacks against other users.","user_interaction":"required","vuln_class":"xss"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"Mend","cpe":[{"product":"publify","vendor":"publify_project"}],"cvss":{"score":5.4,"severity":"medium","source":"cna","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","version":"3.1"},"cwes":[{"id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation"}],"description":"In publify, versions v8.0 to v9.2.4 are vulnerable to stored XSS as a result of an unrestricted file upload. This issue allows a user with “publisher” role to inject malicious JavaScript via the uploaded html file.","ecosystems":["Bitnami","RubyGems"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"weaponised"},"has_fix":true,"headline":"Publify - Stored Cross-Site Scripting (XSS) due to Unrestricted File Upload","id":"CVE-2021-25975","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"Bitnami","product":null,"products":[],"type":"xss","year":"2021"},"n_packages":3,"n_references":2,"next":{"headline":"Piranha CMS - Site-wide Cross-Site Request Forgery (CSRF)","id":"CVE-2021-25976"},"packages":[{"ecosystem":"Bitnami","fixed":["9.2.4"],"introduced":["8.0.0"],"last_affected":[],"package":"publify","purl":"pkg:bitnami/publify","source":"BIT-publify-2021-25975"},{"ecosystem":"RubyGems","fixed":["9.2.5"],"introduced":["8.0"],"last_affected":[],"package":"publify_core","purl":null,"source":"GHSA-3h7v-wqw7-ff28"},{"ecosystem":"RubyGems","fixed":["9.2.5"],"introduced":["8.0"],"last_affected":[],"package":"publify_core","purl":"pkg:gem/publify_core","source":"GHSA-3h7v-wqw7-ff28"}],"prev":{"headline":"Publify - Stored Cross-Site Scripting (XSS) in Editor","id":"CVE-2021-25974"},"products":["publify_core"],"published":"2021-11-10","related":[{"cvss_score":9.9,"headline":"Authorization Bypass Through User-Controlled Key in publify/publify","id":"CVE-2022-1810","kev_date_added":null,"published":"2022-05-23"},{"cvss_score":9.1,"headline":"Unrestricted Upload of File with Dangerous Type in publify/publify","id":"CVE-2022-1811","kev_date_added":null,"published":"2022-05-23"},{"cvss_score":8.8,"headline":"Leaking password protected articles content due to improper access control in publify/publify","id":"CVE-2022-1553","kev_date_added":null,"published":"2022-05-16"},{"cvss_score":8.4,"headline":"Improper Input Validation in publify/publify","id":"CVE-2023-0299","kev_date_added":null,"published":"2023-01-14"},{"cvss_score":8.1,"headline":"Weak Password Requirements in publify/publify","id":"CVE-2023-0569","kev_date_added":null,"published":"2023-01-29"},{"cvss_score":7.6,"headline":"Integer Overflow or Wraparound in publify/publify","id":"CVE-2022-1812","kev_date_added":null,"published":"2023-01-14"},{"cvss_score":6.5,"headline":"Business Logic Errors in publify/publify","id":"CVE-2022-0524","kev_date_added":null,"published":"2022-02-08"}],"sources":[{"class":"attribution","licence":"Apache-2.0","name":"Bitnami","prefix":"BIT"},{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"poc","technical_impact":"partial"},"state":"PUBLISHED","updated":"2025-04-30","vendors":["publify_core"]},"summary":"A publisher can inject malicious JavaScript via unrestricted file upload, leading to stored XSS attacks against other users.","url":"https://insights.sbomify.com/CVE-2021-25975/"}