This is a security release to address a denial of service vulnerability in the Table extension and a raw HTML filtering bypass in the DisallowedRawHtml extension.
Changed
- Improved performance of parsing table delimiter rows and splitting table rows into cells by scanning bytes directly instead of stepping a
Cursor(roughly 4x faster for delimiter rows and 6x for cell splitting, and more on multibyte rows)
Fixed
- Fixed
DisallowedRawHtmlRenderernot blocking raw HTML that ends with a disallowed tag name, such as a line containing only<script(GHSA-97jj-33gv-5xf9) - Fixed quadratic-time parsing of long paragraphs when the
Tableextension is enabled (GHSA-3q6v-r5mr-hxv8) - Fixed table detection to match the GFM spec and reference implementation:
- Header rows no longer require a
|character - Header rows must now have the same number of cells as the delimiter row (previously, fewer cells were accepted)
- Header rows no longer require a
Full Changelog: 2.10.1...2.10.2