| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| juice-shop-20.0.0_node24_win32_x64.zip | 2026-05-12 | 163.4 MB | |
| juice-shop-20.0.0_node24_win32_x64.zip.md5 | 2026-05-12 | 32 Bytes | |
| juice-shop-20.0.0_node22_win32_x64.zip | 2026-05-12 | 163.1 MB | |
| juice-shop-20.0.0_node22_win32_x64.zip.md5 | 2026-05-12 | 32 Bytes | |
| juice-shop-20.0.0_node24_darwin_x64.zip | 2026-05-12 | 156.5 MB | |
| juice-shop-20.0.0_node24_darwin_x64.zip.md5 | 2026-05-12 | 32 Bytes | |
| juice-shop-20.0.0_node22_darwin_x64.zip | 2026-05-12 | 156.4 MB | |
| juice-shop-20.0.0_node22_darwin_x64.zip.md5 | 2026-05-12 | 32 Bytes | |
| juice-shop-20.0.0_node24_linux_x64.tgz | 2026-05-12 | 121.9 MB | |
| juice-shop-20.0.0_node24_linux_x64.tgz.md5 | 2026-05-12 | 32 Bytes | |
| juice-shop-20.0.0_node22_linux_x64.tgz | 2026-05-12 | 121.9 MB | |
| juice-shop-20.0.0_node22_linux_x64.tgz.md5 | 2026-05-12 | 32 Bytes | |
| README.md | 2026-05-12 | 3.7 kB | |
| v20.0.0 source code.tar.gz | 2026-05-12 | 35.5 MB | |
| v20.0.0 source code.zip | 2026-05-12 | 36.1 MB | |
| Totals: 15 Items | 954.8 MB | 157 | |
This release brings significant changes to existing challenges (β‘) which might break canned CTF setups as well as solution guides made for previous versions of OWASP Juice Shop! It also contains technical breaking changes or renamings (β οΈ) which might require migrating to a newer Node.js version or updating existing customization files.
π Runtime
- Removed support for Node.js 20.x (β οΈ)
π― Challenges
- Added several β¨AIβ¨ challenges (Require a configured LLM/AI endpoint to work)
- "Chatbot Prompt Injection" ββ-challenge
- "Greedy Chatbot Manipulation" βββ-challenge
- "AI Debugging" ββ-challenge
- Remove existing NLP-based chatbot implementation and corresponding challenges "Bully Chatbot" and "Kill Chatbot" (β‘)
- Renamed and broadened scope of
Internet Traffictag intoExternal Dependencytag - Challenges "Mint the Honeypot" and "Wallet Depletion" now require an
ALCHEMY_API_KEYin order to function (β οΈ)
πΌοΈ User Interface
- [#3145]: Changed product overview into more compact and modern grid layout (kudos to @bogminic)
- Redesigned Coding Challenge View to it's own separate page with a more intuitive flow and more modern code highlighters.
- [#3197]: Guest basket support for anonymous users with merge-on-login (kudos to @bogminic)
- [#3154]: Proper mobile scroll behavior (kudos to @btechwala03)
- [#3317]: Various UI and layout fixes (kudos to @bogminic)
- Apply blur effect and enhanced grid view also for photo wall
- [#3310]: Added new
neon-firetheme (kudos to @VibhorGautam) - Added new
lime-greentheme - Set
neon-fireas default theme forctfconfiguration
π °οΈ Frontend
- [#3146]: Updated frontend to Angular 21.x
- Migrate Angular Material themes from legacy M2 to M3
- Apply custom theme now also to Data Erasure Request view
π³ Docker
- Optimized container image size to the smallest it has been since Juice Shop v8, over 7 years and many sizable additions ago
π Performance
- Optimized startup time to start ~30% faster, by lazy-loading heavy dependencies and batching startup database inserts
- Split out pages with heavier dependencies for faster initial load
- Converted Easter egg planet textures and images to
.avifformat for better performance
πΊ Monitoring
- 2d8ba61: Added prometheus metrics to track LLM token usage and tool calls. Note: needs to be supported by the LLM endpoint.
π€₯ Cheat Detection
- 6f0e4f9: Added support for loosely coupled challenges to not trigger cheat scoring independent of timing
- e260c74: Now treating direct access to tracking pixels as guaranteed cheating
π§ Configuration
- Added strict enum validation for several configuration options (e.g.,
codingChallengesEnabled,hintPlaybackSpeed,showCountryDetailsInNotifications)
π Shop
- Added 10 new products (kudos to @bogminic for some of the new drink options)
- Added 1 new customer user
basil
π§βπ§ Maintenance
- Migrated API test suite from Jest & Frisby to Node.js test runner & Supertest
- Migrated frontend test suite from Karma to Vitest
- [#3187]: Added unit tests for conversation storage service (kudos to @btechwala03)
- [#3294]: Improved stability for last login IP test (kudos to @sushantkhemalapure)
- [#3150]: Introduced force-clicks to improve Cypress test reliability (kudos to @btechwala03)
- Added PR compliance & spam check workflow
- Removed CommonJS exemption for
jwt-decode
π Internationalization
- Expanded π«π·, π©πͺ, π³π΄, π©π°, π―π΅, π¨π³, π΅π± and many other translations