Severity by source
CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network vector with high complexity reflects the race timing requirement; PR:L for required authenticated session; no confidentiality impact per VC:N in source vector.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
3DescriptionCVE.org
A vulnerability was identified in awesto django-shop up to 1.2.4. Affected is an unknown function of the file shop/models/inventory.py of the component Purchase Stock Handler. The manipulation leads to race condition. The attack is possible to be carried out remotely. The attack is considered to have high complexity. The exploitability is told to be difficult. The exploit is publicly available and might be used. The project was informed of the problem early through an issue report but has not responded yet.
AnalysisAI
Race condition in awesto django-shop's Purchase Stock Handler allows a remotely authenticated attacker with low privileges to manipulate inventory data by triggering concurrent purchase requests. Affected versions span all releases up to and including 1.2.4. A publicly available proof-of-concept exists in the project's GitHub issue tracker, and the vendor has not responded to responsible disclosure - no patch has been released. EPSS data is absent, but the CVSS 4.0 score of 2.3 reflects the high attack complexity and limited impact scope.
Technical ContextAI
django-shop (CPE: cpe:2.3:a:awesto:django-shop:*:*:*:*:*:*:*:*) is a Python/Django-based e-commerce framework. The flaw resides in shop/models/inventory.py, specifically within the Purchase Stock Handler, which manages stock reservation and decrement during checkout. CWE-362 (Concurrent Execution Using Shared Resource with Improper Synchronization) identifies the root cause: the handler does not use atomic database operations or advisory locks to guard the read-modify-write sequence on inventory quantities, creating a classic time-of-check to time-of-use (TOCTOU) window. In a concurrent web environment served by multiple Django workers or threads, two simultaneous requests can both read the same stock quantity, both pass the availability check, and both decrement, resulting in oversold inventory or corrupted stock counts.
RemediationAI
No vendor-released patch has been identified at time of analysis - the maintainer has not responded to the disclosure. As a primary compensating control, wrap stock decrement operations in database-level atomic transactions using Django's select_for_update() on the inventory queryset inside a transaction.atomic() block, which acquires a row-level lock and eliminates the TOCTOU window; this requires no framework changes and can be applied as a local patch. Alternatively, implement application-level distributed locking (e.g., Redis-based locks via django-redis) around the purchase stock handler to serialize concurrent requests for the same product. Restricting checkout concurrency via rate-limiting authenticated requests per user per product (e.g., using django-ratelimit on the purchase endpoint) reduces exploitation surface at the cost of degraded user experience under legitimate high load. Consider pinning to the most recently functional version and monitoring the upstream repository at https://github.com/awesto/django-shop/ for any future patch release.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
Cross-user flow execution in Langflow (< 1.9.1) lets any authenticated API-key holder run another user's flow by passing
Same weakness CWE-362 – Race Condition
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-45423
GHSA-5982-pmj5-rx9v