title: STLDoctor output: index.html controls: false -- -- # STLDoctor 💉 -- ### Index 🗄️ - Service recap - Optimization - ENOWARS 5 - Reflection -- ### Refreshing Memories 💾 - Plaintext service written in C - Users upload STL files for parsing - Private and public storage (2 flagstores) - 1. Vuln: Deserialization - 2. Vuln: Hash preimage -- ### Since Last Meeting ⏩ - Performance improvements - Added service fluff -- ### Issues 😒 - Slow search / list operations - Enochecker memory leak without patch - Engine error on worker restart with patch - Logs not showing up in ELK -- ### Solutions 💡 - Index files with locks for directory listing - Refactored checker for asyncio - Condensed checker functionality - Increase docker-compose log size -- # ENOWARS 5 -- ### OSError 💢 - Checker throws `INTERNAL_ERROR` on bad connection - Fixed in c97789ad.. of enochecker3 -- ### Checker Overload 💥 - Checker tasks being aborted for every team -- ### Checker Overload 💥 -- ### Anomaly 👽 -- ### Feedback 🤔 - 1. flagstore exploited after ~4h (R190) - 2. flagstore not exploited -- ### Conclusion 🎉 - Relatively good uptime - Not too easy / hard - Users found vulns interesting - No (known) unintended vuln - Had a lot of fun -- -- ### Slow IO 🐌 - Enumerating files in a directory is expensive - Index file per directory containing file names - File locks to ensure exclusive writes -- ### Investigating `readdir(..)` 🔍 `__readdir(..)`: -- ### Investigating `readdir(..)` 🔍 `__get_dir_entries(..)`: -- ### Checker Overload -- ### Checker Overload --