CVE-2023-45815 json
ArchiveBox: Viewing wget extractor output while logged in as an admin allows archived JS to execute in the admins context
published 2023-10-19 3 y ago modified 2026-07-07 4 mo ago also GHSA-cr45-98w9-gwqx , PYSEC-2023-229 , EUVD-2023-0044
- cvss
- 6.4
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.8%
- EPSS 0.8% chance of exploitation in 30 days, percentile 57%
- public exploits
- 0
- none known
Summary
ArchiveBox is an open source self-hosted web archiving system. Any users who are using the `wget` extractor and view the content it outputs. 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 Javascript 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 Javascript 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, 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. Version 0.9.0 contains a patch. As a mitigation for this issue would be to disable the wget extractor by setting `archivebox config --set SAVE_WGET=False`, ensure you are always logged out, or serve only a [static HTML version](https://github.com/ArchiveBox/ArchiveBox/wiki/Publishing-Your-Archive#2-export-and-host-it-as-static-html) of your archive.
Patch / fix
- pypi archivebox 0.7.0, 0.9.0
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- total
- Assessed
- 2 y ago
Exploit prediction
0.81% chance of exploitation in the next 30 days, higher than 57% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/ArchiveBox/ArchiveBox/issues/239 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.4 | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:N |
| NVD | 3.1 | 5.4 | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N |
| GitHub | 3.1 | 6.4 | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:N |
| OSV | 3.1 | 5.4 | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | archivebox | <0.9.0 <0.7.0 |
0.9.0 0.7.0 |
Affected products
- ArchiveBox ArchiveBox
Classification
- Weakness
-
- CWE-79 Improper Neutralization of Input During Web Page Generation
References
-
github.com
/ArchiveBox/ArchiveBox/pull/1773
web
-
github.com
/ArchiveBox/ArchiveBox/commit/a6548df8d0aae1d3d326deb1191b128232708166
web
-
github.com
/ArchiveBox/ArchiveBox/security/advisories/GHSA-cr45-98w9-gwqx
web, patch, vendor-advisory, advisory
-
github.com
/ArchiveBox/ArchiveBox/issues/239
web, exploit, issue-tracking, report
-
en.wikipedia.org
/wiki/Cross-site_request_forgery
web
-
github.com
/ArchiveBox/ArchiveBox#caveats
web
-
github.com
/ArchiveBox/ArchiveBox/wiki/Configuration#save_wget
web
-
github.com
/ArchiveBox/ArchiveBox/wiki/Publishing-Your-Archive#2-export-and-host-it-as-static-html
web
-
github.com
/ArchiveBox/ArchiveBox/wiki/Publishing-Your-Archive#security-concerns
web
-
github.com
/ArchiveBox/ArchiveBox/wiki/Security-Overview
web
-
github.com
/pypa/advisory-database/tree/main/vulns/archivebox/PYSEC-2023-229.yaml
web
-
nvd.nist.gov
/vuln/detail/CVE-2023-45815
advisory
-
github.com
/ArchiveBox/ArchiveBox
package
Sources
- CVE List CVE-2023-45815
- GitHub Advisory GHSA-cr45-98w9-gwqx
- NVD CVE-2023-45815
- OSV PYSEC-2023-229
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.