CVE-2020-18703
Description
XML External Entities (XXE) in Quokka v0.4.0 allows remote attackers to execute arbitrary code via the component 'quokka/utils/atom.py'.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
quokkaPyPI | <= 0.4.0 | — |
Affected products
2- Quokka/Quokkadescription
Patches
Vulnerability mechanics
Root cause
"Missing sanitization of `authors` and `title` fields before embedding them into XML output in `quokka/utils/atom.py` and `quokka/core/content/views.py`."
Attack vector
An attacker first creates an article via the admin interface and inserts an XML External Entity payload into the `title` or `authors` field [ref_id=2]. When a victim or automated parser accesses the RSS or Atom feed endpoints — e.g., `/author/{author}/index.rss` or `/author/{author}/index.atom` — the unsanitized payload is embedded into the XML output [ref_id=2]. An XML parser processing that feed may then resolve the external entity, leading to file disclosure, SSRF, or other impacts [CWE-611].
Affected code
The vulnerability exists in `quokka/utils/atom.py` (line 157) and `quokka/core/content/views.py` (line 94) [ref_id=2]. These files construct XML output without filtering or sanitizing the `authors` and `title` fields, allowing attacker-controlled content to be placed directly into the generated XML document [ref_id=2].
What the fix does
No patch is available in the bundle; the repository was archived on October 1, 2020 and is now read-only [ref_id=2]. The advisory recommends filtering the `authors` and `title` fields before they are inserted into XML output [ref_id=2]. Without a fix, any XML parser consuming the generated RSS or Atom feeds remains vulnerable to XXE attacks [CWE-611].
Preconditions
- authAttacker must have access to create or edit articles (e.g., via the admin interface)
- inputA victim or automated system must parse the generated RSS or Atom feed with an XML parser that resolves external entities
- configThe application must be running with a version of Quokka prior to the (unpublished) fix
Reproduction
1. Log in to the Quokka admin interface and create a new article. 2. In the `title` or `authors` field, insert an XXE payload such as `&xxe;` (after defining the entity in the XML prolog if possible, or using a payload that the XML parser will interpret). 3. Save the article. 4. Visit the RSS or Atom feed URL, e.g., `http://192.168.100.8:8000/author/{author}/index.rss` or `http://192.168.100.8:8000/author/{author}/index.atom` [ref_id=2]. 5. Observe that the injected XML entity is present in the feed output, confirming the XXE vulnerability [ref_id=2].
Generated on May 27, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
4- github.com/advisories/GHSA-3xg5-6c3j-vp8xghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2020-18703ghsaADVISORY
- github.com/pypa/advisory-database/tree/main/vulns/quokka/PYSEC-2021-144.yamlghsaWEB
- github.com/rochacbruno/quokka/issues/676ghsax_refsource_MISCWEB
News mentions
0No linked articles in our index yet.