POJIA破甲
地图 / Memory exhaustion (DoS) via unbounded file read in `EncodingDiscovery.detect_encoding()`

Memory exhaustion (DoS) via unbounded file read in `EncodingDiscovery.detect_encoding()`

拒绝服务 / 资源消耗失控 / #4028616

厂商
Weblate
严重程度
低危
赏金
—
弱点
资源消耗失控
研究员
@sumit-sabhaya
披露日期
2026-10-16
资产
https://github.com/WeblateOrg/translation-finder
CVE
—

该报告还没有中文解读。

原文摘录

摘自原文(4742 字符中的一小部分)
`EncodingDiscovery.detect_encoding()` in `translation_finder/discovery/base.py` passes the raw file handle to `charset_normalizer.from_fp()`, which internally does `from_bytes(fp.read())` — the **entire file is loaded into memory**, with no size cap. Every other sniffing path in this codebase is …
原文中的代码
446  for path in chain(*matches):
447      if not isinstance(path, Path):
448          continue
449      with self.finder.open(path, "rb") as handle:
451          detection_result = from_fp(handle).best()   # <-- fp.read() whole file

默认不展示报告全文。以上为简短摘录,完整复现过程请阅读原文。版权归研究员与 Weblate 所有。

时间线

  • 报告提交
  • 公开披露
阅读 HackerOne 原文 ↗作者 @sumit-sabhaya · 版权归作者与 Weblate 所有

同类报告

DoS on PayPal via web cache poisoningPayPal · 2019-10-23 · $9,700profile-picture name parameter with large value lead to DoS for other users and programs on the platformHackerOne · 2020-03-25Denial of service to WP-JSON API by cache poisoning the CORS allow origin headerAutomattic · 2020-04-16[Urgent] Invalidating OAuth2 Bearer token makes TweetDeck unavailableX / xAI · 2019-04-25Oracle Webcenter Sites administrative and hi-privilege access available directly from the internet (/cs/Satellite)LocalTapiola · — · $18,000Denial of service via cache poisoningHackerOne · 2018-12-22 · $2,500