Unauthenticated ?q= search query causes exponential pyparsing backtracking under a process-global lock in Weblate
该报告还没有中文解读。
原文摘录
摘自原文(5098 字符中的一小部分)
Weblate's search-query grammar (`weblate/utils/search.py:174-227`) is built with `pyparsing.infix_notation` over a term rule that is ambiguous at every position, and packrat memoization is never enabled. Parsing a query with nested parentheses therefore backtracks exponentially: cost grows ~4× per …
原文中的代码
git clone https://github.com/WeblateOrg/weblate cd weblate && git checkout e3952598329d1e4f5e765260948e0c8384ddabe9 python3 -m venv venv && venv/bin/pip install 'pyparsing==3.3.2' # pyproject.toml:190 venv/bin/python poc.py
默认不展示报告全文。以上为简短摘录,完整复现过程请阅读原文。版权归研究员与 Weblate 所有。
时间线
- 报告提交
- 公开披露
阅读 HackerOne 原文 ↗作者 @type5afe · 版权归作者与 Weblate 所有