{"id":"CVE-2023-40024","aliases":["GHSA-6xcx-gx7r-rccj","PYSEC-2026-1905"],"url":"https://o3.security/vulnerability/CVE-2023-40024","summary":"Reflected Cross-Site Scripting (XSS) in scancode.io license endpoint","details":"### Summary\nIn the `/license/` endpoint, the detailed view key is not properly validated and sanitized, which can result in a potential cross-site scripting (XSS) vulnerability when attempting to access a detailed license view that does not exist.\n\n### Details\nIn the `/license/` endpoint, the `license_details_view` function is vulnerable to a potential cross-site scripting (XSS) attack due to inadequate validation and sanitization of the `key` parameter. This vulnerability arises when attempting to access a key with malicious javascript.\n\n```python\ndef license_details_view(request, key):\n    \"\"\"\n    Display all available information about a given license `key` followed by\n    the full license text.\n    \"\"\"\n    licenses = get_licenses()\n    try:\n        data = saneyaml.dump(licenses[key].to_dict())\n        text = licenses[key].text\n    except KeyError:\n        return HttpResponseNotFound(f\"License {key} not found.\") # Leads to cross-site scripting when key is malicious javascript\n    return HttpResponse(f\"<pre>{data}</pre><hr><pre>{text}</pre>\")\n```\n\n\n### PoC\n1. Access following endpoint on scancode.io instance: http://localhost/license/%3Cscript%3Ealert(document.cookie);%3C/script%3E/\n\n### Impact\nAttackers can exploit the vulnerability to inject malicious scripts into the response generated by the `license_details_view` function. When unsuspecting users visit the page, their browsers will execute the injected scripts, leading to unauthorized actions, session hijacking, or stealing sensitive information.\n","published":"2023-08-14T19:53:24.808Z","modified":"2026-08-27T03:57:01.413797222Z","cvss":{"score":5.4,"severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N"},"epss":null,"cisaKev":null,"exploitsKnown":1,"affectedPackages":[{"ecosystem":"PyPI","name":"scancodeio","fixedVersion":"32.5.2"}],"fix":null,"references":[{"type":"WEB","url":"https://github.com/nexB/scancode.io/blob/dd7769fbc97c84545579cebf1dc4838214098a11/CHANGELOG.rst#v3252-2023-08-14"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/40xxx/CVE-2023-40024.json"},{"type":"ADVISORY","url":"https://github.com/nexB/scancode.io/security/advisories/GHSA-6xcx-gx7r-rccj"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2023-40024"},{"type":"PACKAGE","url":"https://github.com/nexB/scancode.io"},{"type":"WEB","url":"https://github.com/nexB/scancode.io/releases/tag/v32.5.2"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-08-27T03:57:01.413797222Z"}}