{"answers":{"affected":"3 open source packages ship an affected version, including kolibri.","exploited":"It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-48053 exists.","fix":"Upgrade kolibri to 0.19.4 or later.","what":"CVE-2026-48053 is a medium-severity server-side request forgery vulnerability in learningequality kolibri, published on 17 Aug 2026. An attacker can exploit it over the internet without logging in, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-48053 and fix it if it is affected.\n\nWhat it is: CVE-2026-48053 is a medium-severity server-side request forgery vulnerability in learningequality kolibri, published on 17 Aug 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.\nExploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-48053 exists.\n\nAffected packages and fixed versions:\n- kolibri (PyPI): affected all versions; fixed in 0.19.4\n- kolibri (PyPI): affected all versions; fixed in 0.19.4\n- kolibri (PyPI): affected all versions; fixed in 0.19.4\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-48053/ (Markdown: https://insights.sbomify.com/CVE-2026-48053/index.md)","id":"CVE-2026-48053","markdown":"https://insights.sbomify.com/CVE-2026-48053/index.md","name":"CVE-2026-48053","record":{"aliases":["GHSA-4mj9-pf4r-cqrc","PYSEC-2026-2554"],"analysis":{"component_type":"web_application","fix_type":"upgrade","impacts":["data_read","security_bypass"],"network_reachable":"yes","non_default_config":false,"product_category":"Kolibri education platform","requires_auth":"none","summary":"Unauthenticated attackers can exploit SSRF in Kolibri to fetch arbitrary URLs and read response data via vulnerable API endpoints.","user_interaction":"not_required","vuln_class":"ssrf"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[],"cvss":{"score":5.8,"severity":"medium","source":"cna","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N","version":"3.1"},"cwes":[{"id":"CWE-918","name":"Server-Side Request Forgery"}],"description":"Kolibri is an offline-first education platform. Prior to version 0.19.4, several Kolibri API endpoints accept an unvalidated `baseurl` parameter and fetch attacker-controlled URLs from the Kolibri server, reflecting the response body back to the caller. The original report identified two endpoints on the `RemoteFacilityUser*` viewsets; remediation review found two further reflection points on the same pattern. The GET endpoint was unauthenticated. Version 0.19.4 fixes the vulnerability.","ecosystems":["PyPI"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"weaponised"},"has_fix":true,"headline":"Kolibri has Unauthenticated Server-Side Request Forgery (SSRF) in RemoteFacilityUserViewset","id":"CVE-2026-48053","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"PyPI","product":null,"products":[],"type":"ssrf","year":"2026"},"n_packages":3,"n_references":3,"next":{"headline":"OpenZeppelin Contracts Wizard has Code Injection in Generated Hardhat and Foundry Tests via Unsanitized opts.name / opts.uri","id":"CVE-2026-48054"},"packages":[{"ecosystem":"PyPI","fixed":["0.19.4"],"introduced":["0"],"last_affected":[],"package":"kolibri","purl":null,"source":"GHSA-4mj9-pf4r-cqrc"},{"ecosystem":"PyPI","fixed":["0.19.4"],"introduced":["0"],"last_affected":[],"package":"kolibri","purl":"pkg:pypi/kolibri","source":"GHSA-4mj9-pf4r-cqrc"},{"ecosystem":"PyPI","fixed":["0.19.4"],"introduced":["0"],"last_affected":[],"package":"kolibri","purl":"pkg:pypi/kolibri","source":"PYSEC-2026-2554"}],"prev":{"headline":"Papra: Cross-organization tag deletion and modification via authenticated cross-tenant request","id":"CVE-2026-48052"},"products":["kolibri"],"published":"2026-08-17","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"CC BY 4.0","name":"PyPA Advisory Database","prefix":"PYSEC"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"yes","exploitation":"poc","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-08-17","vendors":["learningequality"]},"summary":"Unauthenticated attackers can exploit SSRF in Kolibri to fetch arbitrary URLs and read response data via vulnerable API endpoints.","url":"https://insights.sbomify.com/CVE-2026-48053/"}