CVE-2023-45815 is a medium-severity (CVSS 6.4) Cross-site Scripting (XSS) vulnerability in archivebox. 1 public exploit or proof-of-concept reference is indexed, so weaponization risk is real. A fix is available for archivebox — see the affected versions and patch details below.
ArchiveBox: Viewing wget extractor output while logged in as an admin allows archived JS to execute in the admins context
Exploitation Status
Proof-of-concept exploit code exists
- CISA’s SSVC triage found public proof-of-concept exploit code for this CVE, though no confirmed active exploitation.
- A successful exploit gives an attacker total control of the affected component, not partial access.
Exploitation and automatability from CISA’s SSVC triage for CVE-2023-45815.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
archiveboxReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects PyPI packages — download data is not available via public APIs for these ecosystems.
Description
Related issue & discussion:
- https://github.com/ArchiveBox/ArchiveBox/issues/239
- https://github.com/ArchiveBox/ArchiveBox/wiki/Security-Overview#publishing
- https://github.com/ArchiveBox/ArchiveBox/wiki/Publishing-Your-Archive#security-concerns
Impact
Any users who save untrusted URLs and view the content they output.
The impact is potentially severe if you are logged in to the ArchiveBox admin site in the same browser session and view an archived malicious page designed to target your ArchiveBox instance. Malicious JS could potentially act using your logged-in admin credentials and add/remove/modify snapshots, add/remove/modify ArchiveBox users, and generally do anything an admin user could do.
The impact is less severe for non-logged-in users, as malicious JS cannot modify any archives, but it can still read all the other archived content by fetching the snapshot index and iterating through it.
Because all of ArchiveBox's archived content is served from the same host and port as the admin panel with 0 XSS protections, when archived pages are viewed the JS executes in the same context as all the other archived pages (and the admin panel), defeating most of the browser's usual CORS/CSRF security protections and leading to this issue.
Patches
Follow here for progress on mitigating this issue: https://github.com/ArchiveBox/ArchiveBox/issues/239
Workarounds
Disable the risky extractors by setting archivebox config --set SAVE_WGET=False SAVE_DOM=False, ensure you are always logged out, or serve only a static HTML version of your archive.
References
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐍PyPI | archivebox | all versions | 0.9.0pip install --upgrade 'archivebox==0.9.0' |
Affected Products
archiveboxarchiveboxResearch use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for archivebox, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update archivebox to 0.9.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2023-45815 is resolved across your whole dependency graph.
Workarounds
Escape or sanitise the affected output on the server side rather than relying on client-side filtering, and add a Content-Security-Policy that blocks inline script execution so injected markup cannot run even if it reaches the page.
Frequently Asked Questions
Is CVE-2023-45815 in your dependencies?
Find it across PyPI, including transitive dependencies.