Update dependency fonttools to v4.43.0 [SECURITY] #70
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==4.40.0
->==4.43.0
GitHub Vulnerability Alerts
CVE-2023-45139
Summary
As of
fonttools>=4.28.2
the subsetting module has a XML External Entity Injection (XXE) vulnerability which allows an attacker to resolve arbitrary entities when a candidate font (OT-SVG fonts), which contains a SVG table, is parsed.This allows attackers to include arbitrary files from the filesystem fontTools is running on or make web requests from the host system.
PoC
The vulnerability can be reproduced following the bellow steps on a unix based system.
/etc/passwd
for our POC file to include and modified an existing subset integration test to build the POC font - see bellow.fonttools==4.42.1
andfonttools==4.28.2
- using the following flags (which just ensure the malicious glyph is mapped by the font and not discard in the subsetting process):ttx -t SVG poc-payload.subset.ttf && cat poc-payload.subset.ttx
Observed the included contents of the
/etc/passwd
file.Impact
Note the final severity is dependant on the environment fontTools is running in.
Possible Mitigations
There may be other ways to mitigate the issue, but some suggestions:
resolve_entities=False
flag on parsing methodsRelease Notes
fonttools/fonttools (fonttools)
v4.43.0
Compare Source
XMLParser(resolve_entities=False)
when parsing OT-SVG documents to prevent XML External Entity (XXE) attacks (9f61271
): https://codeql.github.com/codeql-query-help/python/py-xxe/iup_delta_optimize
that was leading to IUP tolerance being incorrectly initialised, resulting in sub-optimal deltas (6012643
, cython/cython#5732).fonttools varLib.avar
to add anavar
table to an existing VF from axes mappings in a .designspace file (0a3360e
).v4.42.1
Compare Source
457f11c
).addMultilingualName
andttFont
parameter was not passed on tofindMultilingualName
(#3253).v4.42.0
Compare Source
v4.41.1
Compare Source
NameRecordVisitor
only visit tables that do contain nameID references (#3213, #3214).CursivePos
masters (#3209).v4.41.0
Compare Source
removeUnusedNameRecords
in the user range (#3185)._add_avar()
call site (#3183).voltLib.voltToFea
submodule (originally Tiro Typeworks' "Volto") for converting VOLT OpenType Layout sources to FEA format (#3164).Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.