Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
R
rusttype
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 22
    • Issues 22
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 1
    • Merge Requests 1
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • redox-os
  • rusttype
  • Issues
  • #3

Closed
Open
Opened Feb 07, 2016 by Jeremy Soller@jackpot51Owner

Dealing with malformed/hostile fonts

Created by: SimonSapin

Quoting the README on https://github.com/khaledhosny/ots/:

The CSS font-face property[1] is great for web typography. Having to use images in order to get the correct typeface is a great sadness; one should be able to use vectors.

However, the TrueType renderers on many platforms have never been part of the attack surface before and putting them on the front line is a scary proposition. Esp on platforms like Windows where it's a closed-source blob running with high privilege.

Thus, the OpenType Sanitiser (OTS) is designed to parse and serialise OpenType files, validating them and sanitising them as it goes.

I imagine that “a scary proposition” refers to potential security vulnerabilities in FreeType and similar libraries that could be triggered by a specially-crafted font.

How do you feel about using RustType with untrusted fonts? Using a memory-safe language helps, but it’s still good to be mindful of unexpected input in e.g. parsing code.

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: redox-os/rusttype#3