Vulnerability · Published Oct 19, 2023 · Assigned by GitHub_M
CVE-2023-45815ArchiveBox: Viewing wget extractor output while logged in as an admin allows archived JS to execute in the admins context
Medium 6.4
In plain English
A medium-severity cross-site scripting in ArchiveBox from ArchiveBox. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.8% (higher than 57% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
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.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| PyPI | archivebox | 0.9.0 | GHSA-cr45-98w9-gwqx |
| PyPI | archivebox | 0.7.0 | PYSEC-2023-229 |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| ArchiveBox | ArchiveBox | < 0.9.0 |
Weakness: CWE-79 · Vector: CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:N
References
- https://github.com/ArchiveBox/ArchiveBox/security/advisories/GHSA-cr45-98w9-gwqx x_refsource_CONFIRM
- https://github.com/ArchiveBox/ArchiveBox/issues/239 x_refsource_MISC
- https://github.com/ArchiveBox/ArchiveBox/pull/1773 x_refsource_MISC
- https://github.com/ArchiveBox/ArchiveBox/commit/a6548df8d0aae1d3d326deb1191b128232708166 x_refsource_MISC
- https://en.wikipedia.org/wiki/Cross-site_request_forgery x_refsource_MISC
- https://github.com/ArchiveBox/ArchiveBox#caveats x_refsource_MISC
- https://github.com/ArchiveBox/ArchiveBox/wiki/Configuration#save_wget x_refsource_MISC
- https://github.com/ArchiveBox/ArchiveBox/wiki/Publishing-Your-Archive#2-export-and-host-it-as-static-html x_refsource_MISC
- https://github.com/ArchiveBox/ArchiveBox/wiki/Publishing-Your-Archive#security-concerns x_refsource_MISC
- https://github.com/ArchiveBox/ArchiveBox/wiki/Security-Overview x_refsource_MISC
- https://github.com/pypa/advisory-database/tree/main/vulns/archivebox/PYSEC-2023-229.yaml x_refsource_MISC