Description
libschrift through 0.10.2 contains a divide by zero vulnerability that allows attackers to crash applications by supplying a font with unitsPerEm of 0 in the head table. Attackers can provide a crafted TrueType font whose NaN glyph coordinates bypass clip_points(), causing an out-of-bounds raster read in draw_line() during sft_render() and crashing the process.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| tomolt | libschrift | ≤ 0.10.2 | — |
References
- https://github.com/tomolt/libschrift/issues/46 issue-tracking
- https://hackmd.io/@haind-pwn/libschrift-unitsperem-zero-oob third-party-advisory
- https://github.com/tomolt/libschrift/blob/v0.10.2/schrift.c#L542 technical-description
- https://github.com/tomolt/libschrift/blob/v0.10.2/schrift.c#L1422-L1503 technical-description
- VulnCheck Advisory: libschrift through 0.10.2 Divide by Zero via unitsPerEm in draw_line third-party-advisory