CVE-2021-3987 Improper Access Control in janeczku/calibre-web
Users without public shelf permissions can create public shelves due to missing authorization checks in Calibre Web.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2021-3987?
CVE-2021-3987 is a medium-severity missing authorization vulnerability in janeczku/calibre-web, published on 15 Nov 2024. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
An improper access control vulnerability exists in janeczku/calibre-web. The affected version allows users without public shelf permissions to create public shelves. The vulnerability is due to the `create_shelf` method in `shelf.py` not verifying if the user has the necessary permissions to create a public shelf. This issue can lead to unauthorized actions being performed by users.
Which versions are affected by CVE-2021-3987?
3 open source packages ship an affected version, including calibreweb. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
calibreweb PyPI | All versions | 0.6.15 |
calibreweb PyPI | All versions | 0.6.15 |
calibreweb PyPI | All versions | 0.6.15 |
Products include Janeczku Calibre-Web.
How do I fix CVE-2021-3987?
Upgrade calibreweb to 0.6.15 or later.
Upgrade, and check permissions on every request on the server, not only in the interface. More about Missing authorization.
Is CVE-2021-3987 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2021-3987 exists.
Other vulnerabilities in janeczku/calibre-web
- CVE-2022-30765 SQL injection in calibreweb
- CVE-2020-12627 Hardcoded credentials in n/a
- CVE-2022-0990 Server-Side Request Forgery (SSRF) in janeczku/calibre-web
- CVE-2022-0767 Server-Side Request Forgery (SSRF) in janeczku/calibre-web
- CVE-2022-0939 Server-Side Request Forgery (SSRF) in janeczku/calibre-web
Sources
Also known as GHSA-fj5v-w2jp-wqvj, PYSEC-2026-1229.