{"answers":{"affected":"5 open source packages ship an affected version, including scrapy and Scrapy. It affects 2 products.","exploited":"There is no known exploitation of CVE-2021-41125 in the wild and no public exploit code.","fix":"Upgrade scrapy to a fixed version for your release line: 1.8.1 or 2.5.1.","what":"CVE-2021-41125 is a medium-severity vulnerability in Debian Debian Linux, published on 6 Oct 2021. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link."},"fix_prompt":"Check this codebase for CVE-2021-41125 and fix it if it is affected.\n\nWhat it is: CVE-2021-41125 is a medium-severity vulnerability in Debian Debian Linux, published on 6 Oct 2021. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.\nExploitation: There is no known exploitation of CVE-2021-41125 in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- scrapy (PyPI): affected all versions; fixed in 1.8.1, 2.5.1\n- scrapy (PyPI): affected all versions; fixed in 1.8.1\n- scrapy (PyPI): affected from 2.0.0; fixed in 2.5.1\n- Scrapy (PyPI): affected all versions; fixed in 1.8.1\n- Scrapy (PyPI): affected from 2.0.0; fixed in 2.5.1\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-2021-41125/ (Markdown: https://insights.sbomify.com/CVE-2021-41125/index.md)","id":"CVE-2021-41125","markdown":"https://insights.sbomify.com/CVE-2021-41125/index.md","name":"CVE-2021-41125","record":{"aliases":["DEBIAN-CVE-2021-41125","GHSA-jwqp-28gf-p498","PYSEC-2021-363","UBUNTU-CVE-2021-41125","openSUSE-SU-2024:11558-1"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["data_read"],"network_reachable":"yes","non_default_config":true,"product_category":"Python web scraping library","requires_auth":"low_privilege","summary":"Scrapy leaks HTTP authentication credentials to all request targets, including redirects and robots.txt, when using global HttpAuthMiddleware.","user_interaction":"required","vuln_class":"information_disclosure"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[{"product":"debian_linux","vendor":"debian"},{"product":"scrapy","vendor":"scrapy"}],"cvss":{"score":5.7,"severity":"medium","source":"cna","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N","version":"3.1"},"cwes":[{"id":"CWE-522","name":"Insufficiently Protected Credentials"},{"id":"CWE-200","name":"Exposure of Sensitive Information to an Unauthorized Actor"}],"description":"Scrapy is a high-level web crawling and scraping framework for Python. If you use `HttpAuthMiddleware` (i.e. the `http_user` and `http_pass` spider attributes) for HTTP authentication, all requests will expose your credentials to the request target. This includes requests generated by Scrapy components, such as `robots.txt` requests sent by Scrapy when the `ROBOTSTXT_OBEY` setting is set to `True`, or as requests reached through redirects. Upgrade to Scrapy 2.5.1 and use the new `http_auth_domain` spider attribute to control which domains are allowed to receive the configured HTTP authentication credentials. If you are using Scrapy 1.8 or a lower version, and upgrading to Scrapy 2.5.1 is not an option, you may upgrade to Scrapy 1.8.1 instead. If you cannot upgrade, set your HTTP authentication credentials on a per-request basis, using for example the `w3lib.http.basic_auth_header` function to convert your credentials into a value that you can assign to the `Authorization` header of your request, instead of defining your credentials globally using `HttpAuthMiddleware`.","ecosystems":["PyPI","openSUSE:Tumbleweed"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"HTTP authentication credential leak to target websites in scrapy","id":"CVE-2021-41125","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"PyPI","product":"debian:debian_linux","products":["debian:debian_linux"],"type":"information_disclosure","year":"2021"},"n_packages":6,"n_references":5,"next":{"headline":"Deleted Admin Can Sign In to Admin Interface","id":"CVE-2021-41126"},"packages":[{"ecosystem":"PyPI","fixed":["1.8.1"],"introduced":["0"],"last_affected":[],"package":"Scrapy","purl":null,"source":"GHSA-jwqp-28gf-p498"},{"ecosystem":"PyPI","fixed":["2.5.1"],"introduced":["2.0.0"],"last_affected":[],"package":"Scrapy","purl":null,"source":"GHSA-jwqp-28gf-p498"},{"ecosystem":"PyPI","fixed":["1.8.1","2.5.1"],"introduced":["0","2.0.0"],"last_affected":[],"package":"scrapy","purl":"pkg:pypi/scrapy","source":"PYSEC-2021-363"},{"ecosystem":"PyPI","fixed":["1.8.1"],"introduced":["0"],"last_affected":[],"package":"scrapy","purl":"pkg:pypi/scrapy","source":"GHSA-jwqp-28gf-p498"},{"ecosystem":"PyPI","fixed":["2.5.1"],"introduced":["2.0.0"],"last_affected":[],"package":"scrapy","purl":"pkg:pypi/scrapy","source":"GHSA-jwqp-28gf-p498"},{"ecosystem":"openSUSE:Tumbleweed","fixed":["2.5.1-1.1"],"introduced":["0"],"last_affected":[],"package":"python-Scrapy","purl":"pkg:rpm/opensuse/python-Scrapy\u0026distro=openSUSE%20Tumbleweed","source":"openSUSE-SU-2024:11558-1"}],"prev":{"headline":"Splash authentication credentials potentially leaked to target websites in scrapy-splash","id":"CVE-2021-41124"},"products":["scrapy"],"published":"2021-10-06","related":[{"cvss_score":10,"headline":"ProFTPD Improper Access Control","id":"CVE-2015-3306","kev_date_added":"2026-10-08","published":"2015-05-18"},{"cvss_score":9.9,"headline":"RoundCube Webmail Deserialization of Untrusted Data","id":"CVE-2025-49113","kev_date_added":"2026-02-20","published":"2025-06-02"},{"cvss_score":9.8,"headline":"GNU InetUtils Argument Injection","id":"CVE-2026-24061","kev_date_added":"2026-01-26","published":"2026-01-21"},{"cvss_score":9.8,"headline":"Linux Kernel Improper Check for Unusual or Exceptional Conditions","id":"CVE-2025-39682","kev_date_added":"2026-09-18","published":"2025-09-05"},{"cvss_score":9.8,"headline":"Mozilla Firefox Use-After-Free","id":"CVE-2024-9680","kev_date_added":"2024-10-15","published":"2024-10-09"},{"cvss_score":9.8,"headline":"RARLAB UnRAR Directory Traversal","id":"CVE-2022-30333","kev_date_added":"2022-08-09","published":"2022-05-09"},{"cvss_score":9.8,"headline":"Roundcube Webmail SQL Injection","id":"CVE-2021-44026","kev_date_added":"2023-06-22","published":"2021-11-19"}],"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":"CC BY 4.0","name":"SUSE","prefix":"openSUSE"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":"PUBLISHED","updated":"2024-08-04","vendors":["scrapy"]},"summary":"Scrapy leaks HTTP authentication credentials to all request targets, including redirects and robots.txt, when using global HttpAuthMiddleware.","url":"https://insights.sbomify.com/CVE-2021-41125/"}