CVE-2021-41124 Splash authentication credentials potentially leaked to target websites in scrapy-splash
Scrapy-splash users relying on HttpAuthMiddleware for Splash authentication may leak credentials to target websites during non-Splash requests like robots.txt.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2021-41124?
CVE-2021-41124 is a high-severity vulnerability in scrapy-plugins scrapy-splash, published on 5 Oct 2021. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Official description
Scrapy-splash is a library which provides Scrapy and JavaScript integration. In affected versions users who use [`HttpAuthMiddleware`](http://doc.scrapy.org/en/latest/topics/downloader-middleware.html#module-scrapy.downloadermiddlewares.httpauth) (i.e. the `http_user` and `http_pass` spider attributes) for Splash authentication will have any non-Splash request expose your credentials to the request target. This includes `robots.txt` requests sent by Scrapy when the `ROBOTSTXT_OBEY` setting is set to `True`. Upgrade to scrapy-splash 0.8.0 and use the new `SPLASH_USER` and `SPLASH_PASS` settings instead to set your Splash authentication credentials safely. If you cannot upgrade, set your Splash request credentials on a per-request basis, [using the `splash_headers` request parameter](https://github.com/scrapy-plugins/scrapy-splash/tree/0.8.x#http-basic-auth), instead of defining them globally using the [`HttpAuthMiddleware`](http://doc.scrapy.org/en/latest/topics/downloader-middleware.html#module-scrapy.downloadermiddlewares.httpauth). Alternatively, make sure all your requests go through Splash. That includes disabling the [robots.txt middleware](https://docs.scrapy.org/en/latest/topics/downloader-middleware.html#topics-dlmw-robots).
Weakness: CWE-200
Which versions are affected by CVE-2021-41124?
3 open source packages ship an affected version, including scrapy-splash. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
scrapy-splash PyPI | All versions | 0.8.0 |
scrapy-splash PyPI | All versions | 0.8.0 |
scrapy-splash PyPI | All versions | 0.8.0 |
Products include Zyte Scrapy-Splash.
How do I fix CVE-2021-41124?
Upgrade scrapy-splash to 0.8.0 or later.
Is CVE-2021-41124 being exploited?
There is no known exploitation of CVE-2021-41124 in the wild and no public exploit code.
Sources
Also known as GHSA-823f-cwm9-4g74, PYSEC-2021-364.